1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/gtk1/toplevel.h 3 // Purpose: 4 // Author: Robert Roebling 5 // Id: $Id: toplevel.h 37065 2006-01-23 02:28:01Z MR $ 6 // Copyright: (c) 1998 Robert Roebling, Julian Smart 7 // Licence: wxWindows licence 8 ///////////////////////////////////////////////////////////////////////////// 9 10 #ifndef __GTKTOPLEVELH__ 11 #define __GTKTOPLEVELH__ 12 13 //----------------------------------------------------------------------------- 14 // wxTopLevelWindowGTK 15 //----------------------------------------------------------------------------- 16 17 class WXDLLIMPEXP_CORE wxTopLevelWindowGTK : public wxTopLevelWindowBase 18 { 19 public: 20 // construction wxTopLevelWindowGTK()21 wxTopLevelWindowGTK() { Init(); } 22 wxTopLevelWindowGTK(wxWindow *parent, 23 wxWindowID id, 24 const wxString& title, 25 const wxPoint& pos = wxDefaultPosition, 26 const wxSize& size = wxDefaultSize, 27 long style = wxDEFAULT_FRAME_STYLE, 28 const wxString& name = wxFrameNameStr) 29 { 30 Init(); 31 32 Create(parent, id, title, pos, size, style, name); 33 } 34 35 bool Create(wxWindow *parent, 36 wxWindowID id, 37 const wxString& title, 38 const wxPoint& pos = wxDefaultPosition, 39 const wxSize& size = wxDefaultSize, 40 long style = wxDEFAULT_FRAME_STYLE, 41 const wxString& name = wxFrameNameStr); 42 43 virtual ~wxTopLevelWindowGTK(); 44 45 // implement base class pure virtuals 46 virtual void Maximize(bool maximize = true); 47 virtual bool IsMaximized() const; 48 virtual void Iconize(bool iconize = true); 49 virtual bool IsIconized() const; 50 virtual void SetIcon(const wxIcon& icon); 51 virtual void SetIcons(const wxIconBundle& icons); 52 virtual void Restore(); 53 54 virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); IsFullScreen()55 virtual bool IsFullScreen() const { return m_fsIsShowing; }; 56 57 virtual bool SetShape(const wxRegion& region); 58 59 virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO); 60 61 virtual void SetWindowStyleFlag( long style ); 62 63 virtual bool Show(bool show = true); 64 65 virtual void Raise(); 66 67 virtual bool IsActive(); 68 69 virtual void SetTitle( const wxString &title ); GetTitle()70 virtual wxString GetTitle() const { return m_title; } 71 72 // Experimental, to allow help windows to be 73 // viewable from within modal dialogs 74 virtual void AddGrab(); 75 virtual void RemoveGrab(); IsGrabbed()76 virtual bool IsGrabbed() const { return m_grabbed; } 77 78 // implementation from now on 79 // -------------------------- 80 81 // move the window to the specified location and resize it: this is called 82 // from both DoSetSize() and DoSetClientSize() 83 virtual void DoMoveWindow(int x, int y, int width, int height); 84 85 // GTK callbacks 86 virtual void GtkOnSize( int x, int y, int width, int height ); 87 virtual void OnInternalIdle(); 88 89 // do *not* call this to iconize the frame, this is a private function! 90 void SetIconizeState(bool iconic); 91 92 int m_miniEdge, 93 m_miniTitle; 94 GtkWidget *m_mainWidget; 95 bool m_insertInClientArea; /* not from within OnCreateXXX */ 96 97 bool m_fsIsShowing; /* full screen */ 98 long m_fsSaveGdkFunc, m_fsSaveGdkDecor; 99 long m_fsSaveFlag; 100 wxRect m_fsSaveFrame; 101 102 // m_windowStyle translated to GDK's terms 103 long m_gdkFunc, 104 m_gdkDecor; 105 106 // private gtk_timeout_add result for mimicing wxUSER_ATTENTION_INFO and 107 // wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle. 108 int m_urgency_hint; 109 110 protected: 111 // common part of all ctors 112 void Init(); 113 114 // override wxWindow methods to take into account tool/menu/statusbars 115 virtual void DoSetSize(int x, int y, 116 int width, int height, 117 int sizeFlags = wxSIZE_AUTO); 118 119 virtual void DoSetClientSize(int width, int height); 120 virtual void DoGetClientSize( int *width, int *height ) const; 121 122 wxString m_title; 123 124 // is the frame currently iconized? 125 bool m_isIconized; 126 // is the frame currently grabbed explicitly 127 // by the application? 128 bool m_grabbed; 129 }; 130 131 #endif // __GTKTOPLEVELH__ 132