X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1529bc41dc2ce5d35cbcc19ca0d1f8b2f68d7010..6bc7b9138db63cd4ea58b00877d45acae44b6055:/include/wx/gtk/toplevel.h diff --git a/include/wx/gtk/toplevel.h b/include/wx/gtk/toplevel.h index 8b01a82e9e..463537c387 100644 --- a/include/wx/gtk/toplevel.h +++ b/include/wx/gtk/toplevel.h @@ -16,6 +16,7 @@ class WXDLLIMPEXP_CORE wxTopLevelWindowGTK : public wxTopLevelWindowBase { + DECLARE_EVENT_TABLE() public: // construction wxTopLevelWindowGTK() { Init(); } @@ -83,42 +84,47 @@ public: // -------------------------- // GTK callbacks - virtual void GtkOnSize(); virtual void OnInternalIdle(); + // Respond to system colour change + void OnSysColourChanged(wxSysColourChangedEvent& event); + // do *not* call this to iconize the frame, this is a private function! void SetIconizeState(bool iconic); - int m_miniEdge, - m_miniTitle; GtkWidget *m_mainWidget; + bool m_deferShow; + bool m_fsIsShowing; /* full screen */ - long m_fsSaveGdkFunc, m_fsSaveGdkDecor; + int m_fsSaveGdkFunc, m_fsSaveGdkDecor; wxRect m_fsSaveFrame; // m_windowStyle translated to GDK's terms - long m_gdkFunc, + int m_gdkFunc, m_gdkDecor; - bool m_sizeSet; + // size of WM decorations + wxSize m_decorSize; + + // shape of the frame + wxRegion m_shape; // private gtk_timeout_add result for mimicing wxUSER_ATTENTION_INFO and // wxUSER_ATTENTION_ERROR difference, -2 for no hint, -1 for ERROR hint, rest for GtkTimeout handle. int m_urgency_hint; - // give hints to the Window Manager for how the size - // of the TLW can be changed by dragging - virtual void DoSetSizeHints( int minW, int minH, - int maxW = wxDefaultCoord, int maxH = wxDefaultCoord, - int incW = wxDefaultCoord, int incH = wxDefaultCoord ); - - // return the full size of the window without WM decorations + // return the size of the window without WM decorations void GTKDoGetSize(int *width, int *height) const; - void GtkUpdateSize() { m_sizeSet = false; } + void GTKUpdateDecorSize(const wxSize& decorSize); protected: + // give hints to the Window Manager for how the size + // of the TLW can be changed by dragging + virtual void DoSetSizeHints( int minW, int minH, + int maxW, int maxH, + int incW, int incH); // common part of all ctors void Init(); @@ -126,22 +132,19 @@ protected: virtual void DoMoveWindow(int x, int y, int width, int height); // take into account WM decorations here - virtual void DoGetSize(int *width, int *height) const; virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO); - // override these methods to take into account tool/menu/statusbars + virtual void DoSetClientSize(int width, int height); virtual void DoGetClientSize(int *width, int *height) const; - // this method takes the size of the window not taking account of - // decorations - void GTKDoSetSize(int width, int height); - - // string shown in the title bar wxString m_title; +private: + wxSize& GetCachedDecorSize(); + // is the frame currently iconized? bool m_isIconized;