- virtual void GetClientSize( int *width, int *height ) const;
- wxSize GetClientSize() const { int w, h; GetClientSize(& w, & h); return wxSize(w, h); }
-
- virtual void GetPosition( int *x, int *y ) const;
- wxPoint GetPosition() const { int w, h; GetPosition(& w, & h); return wxPoint(w, h); }
-
- wxRect GetRect() const
- { int x, y, w, h; GetPosition(& x, & y); GetSize(& w, & h); return wxRect(x, y, w, h); }
-
- virtual void Centre( int direction = wxHORIZONTAL );
- inline void Center(int direction = wxHORIZONTAL) { Centre(direction); }
- virtual void Fit();
-
- virtual void SetSizeHints( int minW, int minH, int maxW = -1, int maxH = -1, int incW = -1, int incH = -1 );
-
- /* Dialog units translations. Implemented in wincmn.cpp. */
- wxPoint ConvertPixelsToDialog( const wxPoint& pt );
- wxPoint ConvertDialogToPixels( const wxPoint& pt );
- inline wxSize ConvertPixelsToDialog( const wxSize& sz )
- { wxPoint pt(ConvertPixelsToDialog(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
- inline wxSize ConvertDialogToPixels( const wxSize& sz )
- { wxPoint pt(ConvertDialogToPixels(wxPoint(sz.x, sz.y))); return wxSize(pt.x, pt.y); }
-
- void OnSize( wxSizeEvent &event );
-
- virtual bool Show( bool show );
- virtual void Enable( bool enable );
- virtual void MakeModal( bool modal );
- virtual bool IsEnabled() const { return m_isEnabled; }
- inline bool Enabled() const { return IsEnabled(); }
- virtual bool OnClose();
-
- virtual void SetFocus();
- static wxWindow *FindFocus();
-
- virtual void AddChild( wxWindow *child );
- wxList& GetChildren() { return m_children; }
-
- virtual void RemoveChild( wxWindow *child );
- void SetReturnCode( int retCode );
- int GetReturnCode();
- wxWindow *GetParent() const
- { return m_parent; }
- wxWindow *GetGrandParent() const
- { return (m_parent ? m_parent->m_parent : (wxWindow*)NULL); }
- void SetParent( wxWindow *parent )
- { m_parent = parent; }
- virtual wxWindow *ReParent( wxWindow *newParent );
-
- wxEvtHandler *GetEventHandler() const;
- void SetEventHandler( wxEvtHandler *handler );
- void PushEventHandler( wxEvtHandler *handler );
- wxEvtHandler *PopEventHandler( bool deleteHandler = FALSE );
-
- virtual void SetValidator( const wxValidator &validator );
- virtual wxValidator *GetValidator();
-
- virtual void SetClientObject( wxClientData *data );
- virtual wxClientData *GetClientObject();
-
- virtual void SetClientData( void *data );
- virtual void *GetClientData();
-
- virtual void SetAcceleratorTable( const wxAcceleratorTable& accel );
- virtual wxAcceleratorTable *GetAcceleratorTable() { return &m_acceleratorTable; }
-
- bool IsBeingDeleted();
-
- void SetId( wxWindowID id );
- wxWindowID GetId() const;
-
- void SetCursor( const wxCursor &cursor );
-
- void WarpPointer(int x, int y);
+#if wxUSE_DRAG_AND_DROP
+ virtual void SetDropTarget( wxDropTarget *dropTarget );
+#endif // wxUSE_DRAG_AND_DROP
+
+ // implementation
+ // --------------
+
+ virtual WXWidget GetHandle() const { return m_widget; }
+
+ // I don't want users to override what's done in idle so everything that
+ // has to be done in idle time in order for wxGTK to work is done in
+ // OnInternalIdle
+ virtual void OnInternalIdle();
+
+ // Internal represention of Update()
+ void GtkUpdate();
+
+ // For delayed background
+ void GtkSetBackgroundColour( const wxColour &colour );
+ void GtkSetForegroundColour( const wxColour &colour );
+
+ // For compatibility across platforms (not in event table)
+ void OnIdle(wxIdleEvent& WXUNUSED(event)) {}
+
+ // 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);
+
+ // This methods sends wxPaintEvents to the window. It reads the
+ // update region, breaks it up into rects and sends an event
+ // for each rect. It is also responsible for background erase
+ // events and NC paint events. It is called from "draw" and
+ // "expose" handlers as well as from ::Update()
+ void GtkSendPaintEvents();
+
+ // 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 who have to handle subwidgets
+ virtual void ApplyWidgetStyle();