X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec1e0c6634b94edaf4138f68bcb0c5d801f952b2..849c353a3974ec9c6a859cf56c6e5552429d69b6:/include/wx/gtk/window.h?ds=sidebyside diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index fa4e459279..82b9f99d8c 100644 --- a/include/wx/gtk/window.h +++ b/include/wx/gtk/window.h @@ -61,14 +61,13 @@ 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 bool Reparent( wxWindowBase *newParent ); @@ -113,8 +112,18 @@ public: virtual void AddChild( wxWindowBase *child ); virtual void RemoveChild( wxWindowBase *child ); + virtual void SetLayoutDirection(wxLayoutDirection dir); + virtual wxLayoutDirection GetLayoutDirection() const; + virtual wxCoord AdjustForLayoutDirection(wxCoord x, + wxCoord width, + wxCoord widthTotal) const; + + virtual bool DoIsExposed( int x, int y ) const; + virtual bool DoIsExposed( int x, int y, int w, int h ) const; + // currently wxGTK2-only void SetDoubleBuffered(bool on); + virtual bool IsDoubleBuffered() const; // implementation // -------------- @@ -131,11 +140,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(); @@ -166,9 +170,19 @@ public: // anything else. If it returns -1, the handler should continue as usual int GTKCallbackCommonPrologue(struct _GdkEventAny *event) const; + // override this if some events should never be consumed by wxWidgets but + // but have to be left for the native control + // + // base version just does GetEventHandler()->ProcessEvent() + virtual bool GTKProcessEvent(wxEvent& event) const; + + // Map GTK widget direction of the given widget to/from wxLayoutDirection + static wxLayoutDirection GTKGetLayout(GtkWidget *widget); + static void GTKSetLayout(GtkWidget *widget, wxLayoutDirection dir); + 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; @@ -204,13 +218,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(); @@ -284,17 +298,17 @@ public: 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() + wxRegion m_nativeUpdateRegion; // not transformed for RTL bool m_dirtyTabOrder:1; // tab order changed, GTK focus // chain needs update bool m_needsStyleChange:1; // May not be able to change // 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 @@ -330,6 +344,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(); @@ -353,7 +369,7 @@ protected: // set the current cursor for all GdkWindows making part of this widget // (see GTKGetWindow) -public: + // // should be called from OnInternalIdle() if it's overridden void GTKUpdateCursor();