- virtual wxColour GetBackgroundColour(void) const;
- virtual void SetBackgroundColour( const wxColour &colour );
-
- virtual void SetDefaultBackgroundColour( const wxColour& col )
- { m_defaultBackgroundColour = col; };
- virtual wxColour GetDefaultBackgroundColour(void) const
- { return m_defaultBackgroundColour; };
- virtual void SetDefaultForegroundColour( const wxColour& col )
- { m_defaultForegroundColour = col; };
- virtual wxColour GetDefaultForegroundColour(void) const
- { return m_defaultForegroundColour; };
-
- virtual void SetFont( const wxFont &font );
- virtual wxFont *GetFont(void);
- // For backward compatibility
- inline virtual void SetButtonFont(const wxFont& font) { SetFont(font); }
- inline virtual void SetLabelFont(const wxFont& font) { SetFont(font); }
- inline virtual wxFont *GetLabelFont(void) { return GetFont(); };
- inline virtual wxFont *GetButtonFont(void) { return GetFont(); };
- virtual void SetWindowStyleFlag( long flag );
- virtual long GetWindowStyleFlag(void) const;
- virtual void CaptureMouse(void);
- virtual void ReleaseMouse(void);
- virtual void SetTitle( const wxString &title );
- virtual wxString GetTitle(void) const;
- virtual void SetName( const wxString &name );
- virtual wxString GetName(void) const;
- virtual wxString GetLabel(void) const;
-
- void OnSysColourChanged( wxSysColourChangedEvent &WXUNUSED(event) ) {};
-
- virtual bool IsShown(void) const;
- virtual bool IsRetained(void);
- virtual wxWindow *FindWindow( long id );
- virtual wxWindow *FindWindow( const wxString& name );
- void AllowDoubleClick( bool WXUNUSED(allow) ) {};
- void SetDoubleClick( bool WXUNUSED(allow) ) {};
- virtual void ClientToScreen( int *x, int *y );
- virtual void ScreenToClient( int *x, int *y );
-
- virtual bool Validate(void);
- virtual bool TransferDataToWindow(void);
- virtual bool TransferDataFromWindow(void);
- void OnInitDialog( wxInitDialogEvent &event );
- virtual void InitDialog(void);
-
- virtual void SetDropTarget( wxDropTarget *dropTarget );
- virtual wxDropTarget *GetDropTarget() const;
-
- virtual void SetScrollbar( const int orient, const int pos, const int thumbVisible,
- const int range, const bool refresh = TRUE );
- virtual void SetScrollPos( const int orient, const int pos, const bool refresh = TRUE );
- virtual int GetScrollPos( const int orient ) const;
- virtual int GetScrollThumb( const int orient ) const;
- virtual int GetScrollRange( const int orient ) const;
- virtual void ScrollWindow( const int dx, const int dy, const wxRect* rect = NULL );
-
- // return FALSE from here if the window doesn't want the focus
- virtual bool AcceptsFocus() const;
-
- public: // cannot get private going yet
-
- void PreCreation( wxWindow *parent, wxWindowID id, const wxPoint &pos,
- const wxSize &size, long style, const wxString &name );
- void PostCreation(void);
- bool HasVMT(void);
- virtual void ImplementSetSize(void);
- virtual void ImplementSetPosition(void);
- void GetDrawingOffset( long *x, long *y );
-
- wxWindow *m_parent;
- wxList m_children;
- int m_x,m_y;
- int m_width,m_height;
- int m_retCode;
- wxEvtHandler *m_eventHandler;
- wxValidator *m_windowValidator;
- wxDropTarget *m_pDropTarget;
- wxWindowID m_windowId;
- wxCursor *m_cursor;
- wxFont m_font;
- wxColour m_backgroundColour;
- wxColour m_defaultBackgroundColour;
- wxColour m_foregroundColour ;
- wxColour m_defaultForegroundColour;
- wxRegion m_updateRegion;
- long m_windowStyle;
- bool m_isShown;
- bool m_isEnabled;
- wxString m_windowName;
- long m_drawingOffsetX,m_drawingOffsetY;
-
- GtkWidget *m_widget;
- GtkWidget *m_wxwindow;
- GtkAdjustment *m_hAdjust,*m_vAdjust;
- float m_oldHorizontalPos;
- float m_oldVerticalPos;
- bool m_needParent;
- bool m_hasScrolling;
- bool m_hasVMT;
- bool m_sizeSet;
- bool m_resizing;
+ // wxGTK-specific: called recursively by Enable,
+ // to give widgets an oppprtunity 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();
+
+ /* internal addition of child windows. differs from class
+ to class not by using virtual functions but by using
+ the m_insertCallback */
+ void DoAddChild(wxWindowGTK *child);
+
+ /* the methods below are required because many native widgets
+ are composed of several subwidgets and setting a style for
+ the widget means setting it for all subwidgets as well.
+ also, it is nor clear, which native widget is the top
+ widget where (most of) the input goes. even tooltips have
+ to be applied to all subwidgets. */
+
+ virtual GtkWidget* GetConnectWidget();
+ virtual bool IsOwnGtkWindow( GdkWindow *window );
+ void ConnectWidget( GtkWidget *widget );
+
+ /* creates a new widget style if none is there
+ and sets m_widgetStyle to this value. */
+ GtkStyle *GetWidgetStyle();
+
+ /* called by SetFont() and SetXXXColour etc */
+ void SetWidgetStyle();
+
+ /* overridden in many GTK widgets */
+ virtual void ApplyWidgetStyle();
+
+#if wxUSE_TOOLTIPS
+ virtual void ApplyToolTip( GtkTooltips *tips, const wxChar *tip );
+#endif // wxUSE_TOOLTIPS
+
+ // called from GTK signales handlers. it indicates that
+ // the layouting functions have to be called later on
+ // (i.e. in idle time, implemented in OnInternalIdle() ).
+ void GtkUpdateSize() { m_sizeSet = FALSE; }
+
+ // position and size of the window
+ int m_x, m_y;
+ int m_width, m_height;
+ int m_oldClientWidth,m_oldClientHeight;
+
+ // see the docs in src/gtk/window.cpp
+ GtkWidget *m_widget; // mostly the widget seen by the rest of GTK
+ GtkWidget *m_wxwindow; // mostly the client area as per wxWindows