-class wxWindow: public wxEvtHandler
-{
- DECLARE_DYNAMIC_CLASS(wxWindow)
-
- public:
-
- wxWindow(void);
- wxWindow( wxWindow *parent, const wxWindowID id,
- const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
- const long style = 0, const wxString &name = wxPanelNameStr );
- bool Create( wxWindow *parent, const wxWindowID id,
- const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize,
- const long style = 0, const wxString &name = wxPanelNameStr );
- virtual ~wxWindow(void);
- bool Close( const bool force = FALSE );
- virtual bool Destroy(void);
- virtual bool DestroyChildren(void);
-
- virtual void PrepareDC( wxDC &dc );
-
- virtual void SetSize( const int x, const int y, const int width, const int height,
- const int sizeFlags = wxSIZE_AUTO );
- virtual void SetSize( const int width, const int height );
- virtual void Move( const int x, const int y );
- virtual void GetSize( int *width, int *height ) const;
- virtual void SetClientSize( int const width, int const height );
- virtual void GetClientSize( int *width, int *height ) const;
- virtual void GetPosition( int *x, int *y ) const;
- virtual void Centre( const int direction = wxHORIZONTAL );
- virtual void Fit(void);
-
- void OnSize( wxSizeEvent &event );
-
- virtual bool Show( const bool show );
- virtual void Enable( const bool enable );
- virtual void MakeModal( const bool modal );
- virtual bool IsEnabled(void) const { return m_isEnabled; };
- virtual void SetFocus(void);
- virtual bool OnClose(void);
-
- virtual void AddChild( wxWindow *child );
- wxList *GetChildren(void);
- virtual void RemoveChild( wxWindow *child );
- void SetReturnCode( int retCode );
- int GetReturnCode(void);
- wxWindow *GetParent(void);
-
- wxEvtHandler *GetEventHandler(void);
- void SetEventhandler( wxEvtHandler *handler );
-
- virtual wxValidator *GetValidator(void);
- virtual void SetValidator( wxValidator *validator );
-
- bool IsBeingDeleted(void);
-
- void SetId( wxWindowID id );
- wxWindowID GetId(void);
-
- void SetCursor( const wxCursor &cursor );
-
- virtual void Refresh( const bool eraseBackground = TRUE, const wxRect *rect = NULL );
- virtual void Clear(void);
- virtual bool IsExposed( const long x, const long y );
- virtual bool IsExposed( const long x, const long y, const long width, const long height );
-
- 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);
- virtual bool IsRetained(void);
- virtual wxWindow *FindWindow( const 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 );
-
- public: // cannot get private going yet
-
- void PreCreation( wxWindow *parent, const wxWindowID id, const wxPoint &pos,
- const wxSize &size, const 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;
+ // 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