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