X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2e992e06a71d90f1df597441af36f69ef390089a..781130bf6070ea8b93981ea95c1a786eefc2842e:/include/wx/gtk/window.h diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index 9761331c2c..5bcfb26b5c 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -61,14 +61,14 @@ public: virtual void Lower(); virtual bool Show( bool show = true ); - virtual bool Enable( bool enable = true ); + virtual void DoEnable( bool enable ); virtual void SetWindowStyleFlag( long style ); virtual bool IsRetained() const; virtual void SetFocus(); - virtual bool AcceptsFocus() const; + virtual void SetCanFocus(bool canFocus); virtual bool Reparent( wxWindowBase *newParent ); @@ -141,11 +141,6 @@ public: // For compatibility across platforms (not in event table) void OnIdle(wxIdleEvent& WXUNUSED(event)) {} - // wxGTK-specific: called recursively by Enable, - // to give widgets an opportunity to correct their colours after they - // have been changed by Enable - virtual void OnParentEnable( bool WXUNUSED(enable) ) {} - // Used by all window classes in the widget creation process. bool PreCreation( wxWindowGTK *parent, const wxPoint &pos, const wxSize &size ); void PostCreation(); @@ -186,9 +181,14 @@ public: static wxLayoutDirection GTKGetLayout(GtkWidget *widget); static void GTKSetLayout(GtkWidget *widget, wxLayoutDirection dir); + // return true if this window must have a non-NULL parent, false if it can + // be created without parent (normally only top level windows but in wxGTK + // there is also the exception of wxMenuBar) + virtual bool GTKNeedsParent() const { return !IsTopLevel(); } + protected: // Override GTKWidgetNeedsMnemonic and return true if your - // needs to set its mnemonic widget, such as for a + // needs to set its mnemonic widget, such as for a // GtkLabel for wxStaticText, then do the actual // setting of the widget inside GTKWidgetDoSetMnemonic virtual bool GTKWidgetNeedsMnemonic() const; @@ -224,13 +224,13 @@ public: // the layouting functions have to be called later on // (i.e. in idle time, implemented in OnInternalIdle() ). void GtkUpdateSize() { m_sizeSet = false; } - - + + // Called when a window should delay showing itself // until idle time. This partly mimmicks defered // sizing under MSW. void GtkShowOnIdle() { m_showOnIdle = true; } - + // This is called from the various OnInternalIdle methods bool GtkShowFromOnIdle(); @@ -260,6 +260,9 @@ public: GtkWidget *m_widget; // mostly the widget seen by the rest of GTK GtkWidget *m_wxwindow; // mostly the client area as per wxWidgets + // return true if the window is of a standard (i.e. not wxWidgets') class + bool IsOfStandardClass() const { return m_wxwindow == NULL; } + // this widget will be queried for GTK's focus events GtkWidget *m_focusWidget; @@ -297,14 +300,12 @@ public: // extra (wxGTK-specific) flags - bool m_needParent:1; // ! wxFrame, wxDialog, wxNotebookPage ? bool m_noExpose:1; // wxGLCanvas has its own redrawing bool m_nativeSizeEvent:1; // wxGLCanvas sends wxSizeEvent upon "alloc_size" bool m_hasScrolling:1; bool m_hasVMT:1; bool m_sizeSet:1; bool m_resizing:1; - bool m_acceptsFocus:1; // true if not static bool m_hasFocus:1; // true if == FindFocus() bool m_isScrolling:1; // dragging scrollbar thumb? bool m_clipPaintRegion:1; // true after ScrollWindow() @@ -315,7 +316,7 @@ public: // background style until OnIdle bool m_mouseButtonDown:1; bool m_blockScrollEvent:1; - + bool m_showOnIdle:1; // postpone showing the window until idle // C++ has no virtual methods in the constrcutor of any class but we need @@ -351,6 +352,8 @@ protected: void Init(); virtual void DoMoveInTabOrder(wxWindow *win, MoveKind move); + virtual bool DoNavigateIn(int flags); + // Copies m_children tab order to GTK focus chain: void RealizeTabOrder(); @@ -378,6 +381,8 @@ protected: // should be called from OnInternalIdle() if it's overridden void GTKUpdateCursor(); + void ConstrainSize(); + private: enum ScrollUnit { ScrollUnit_Line, ScrollUnit_Page, ScrollUnit_Max };