1 ///////////////////////////////////////////////////////////////////////////// 2 // Name: wx/gtk/toplevel.h 3 // Purpose: 4 // Author: Robert Roebling 5 // Id: $Id: toplevel.h 43846 2006-12-07 05:50:54Z PC $ 6 // Copyright: (c) 1998 Robert Roebling, Julian Smart 7 // Licence: wxWindows licence 8 ///////////////////////////////////////////////////////////////////////////// 9 10 #ifndef _WX_GTK_TOPLEVEL_H_ 11 #define _WX_GTK_TOPLEVEL_H_ 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 EnableCloseButton(bool enable = true); 55 56 virtual bool ShowFullScreen(bool show, long style = wxFULLSCREEN_ALL); IsFullScreen()57 virtual bool IsFullScreen() const { return m_fsIsShowing; }; 58 59 virtual bool SetShape(const wxRegion& region); 60 61 virtual void RequestUserAttention(int flags = wxUSER_ATTENTION_INFO); 62 63 virtual void SetWindowStyleFlag( long style ); 64 65 virtual bool Show(bool show = true); 66 67 virtual void Raise(); 68 69 virtual bool IsActive(); 70 71 virtual void SetTitle( const wxString &title ); GetTitle()72 virtual wxString GetTitle() const { return m_title; } 73 74 virtual bool SetTransparent(wxByte alpha); 75 virtual bool CanSetTransparent(); 76 77 // Experimental, to allow help windows to be 78 // viewable from within modal dialogs 79 virtual void AddGrab(); 80 virtual void RemoveGrab(); IsGrabbed()81 virtual bool IsGrabbed() const { return m_grabbed; } 82 83 // implementation from now on 84 // -------------------------- 85 86 // GTK callbacks 87 virtual void GtkOnSize(); 88 virtual void OnInternalIdle(); 89 90 // do *not* call this to iconize the frame, this is a private function! 91 void SetIconizeState(bool iconic); 92 93 int m_miniEdge, 94 m_miniTitle; 95 GtkWidget *m_mainWidget; 96 bool m_insertInClientArea; /* not from within OnCreateXXX */ 97 98 bool m_fsIsShowing; /* full screen */ 99 long m_fsSaveGdkFunc, m_fsSaveGdkDecor; 100 long m_fsSaveFlag; 101 wxRect m_fsSaveFrame; 102 103 // m_windowStyle translated to GDK's terms 104 long m_gdkFunc, 105 m_gdkDecor; 106 107 // private gtk_timeout_add result for mimicing wxUSER_ATTENTION_INFO and 108 // wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle. 109 int m_urgency_hint; 110 111 // give hints to the Window Manager for how the size 112 // of the TLW can be changed by dragging 113 virtual void DoSetSizeHints( int minW, int minH, 114 int maxW = wxDefaultCoord, int maxH = wxDefaultCoord, 115 int incW = wxDefaultCoord, int incH = wxDefaultCoord ); 116 117 protected: 118 // common part of all ctors 119 void Init(); 120 121 // move the window to the specified location and resize it: this is called 122 // from both DoSetSize() and DoSetClientSize() 123 virtual void DoMoveWindow(int x, int y, int width, int height); 124 125 // override wxWindow methods to take into account tool/menu/statusbars 126 virtual void DoSetSize(int x, int y, 127 int width, int height, 128 int sizeFlags = wxSIZE_AUTO); 129 130 virtual void DoSetClientSize(int width, int height); 131 virtual void DoGetClientSize( int *width, int *height ) const; 132 133 wxString m_title; 134 135 // is the frame currently iconized? 136 bool m_isIconized; 137 // is the frame currently grabbed explicitly 138 // by the application? 139 bool m_grabbed; 140 }; 141 142 #endif // _WX_GTK_TOPLEVEL_H_ 143