X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef5c70f96f5e06e1c8f8119f51b99dd019583d2b..849c353a3974ec9c6a859cf56c6e5552429d69b6:/include/wx/gtk/window.h diff --git a/include/wx/gtk/window.h b/include/wx/gtk/window.h index 8106f545cd..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(); @@ -161,12 +165,24 @@ public: virtual GtkWidget* GetConnectWidget(); void ConnectWidget( GtkWidget *widget ); - // Called from several event handlers - bool GTKCallbackCommonPrologue(struct _GdkEventAny *event) const; + // Called from several event handlers, if it returns true or false, the + // same value should be immediately returned by the handler without doing + // 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; @@ -202,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(); @@ -282,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 @@ -328,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();