const wxFont *theFont = (const wxFont *) NULL)
const;
- virtual void ClientToScreen( int *x, int *y ) const;
- virtual void ScreenToClient( int *x, int *y ) const;
-
virtual bool PopupMenu( wxMenu *menu, int x, int y );
virtual void SetScrollbar( int orient, int pos, int thumbVisible,
// implementation
// --------------
- // wxWindows callbacks
- void OnKeyDown( wxKeyEvent &event );
-
- // simple accessors
- bool HasVMT() const { return m_hasVMT; }
-
- int GetX() const { return m_x; }
- int GetY() const { return m_y; }
- int GetWidth() const { return m_width; }
- int GetHeight() const { return m_height; }
-
- GtkWidget *GetWxWindow() const { return m_wxwindow; }
- GtkWidget *GetWidget() const { return GetHandle(); }
-
- GtkAdjustment *GetHAdjust() const { return m_hAdjust; }
- GtkAdjustment *GetVAdjust() const { return m_vAdjust; }
-
- float GetOldHorizontalPos() const { return m_oldHorizontalPos; }
- float GetOldVerticalPos() const { return m_oldVerticalPos; }
-
- void SetOldHorizontalPos(float fpos) { m_oldHorizontalPos = fpos; }
- void SetOldVerticalPos(float fpos) { m_oldVerticalPos = fpos; }
-
- bool IsSizeSet() const { return m_sizeSet; }
+ virtual WXWidget GetHandle() const { return m_widget; }
// also sets the global flag
void SetScrolling(bool scroll);
bool HasScrolling() const { return m_hasScrolling; }
bool IsScrolling() const { return m_isScrolling; }
- bool IsStaticBox() const { return m_isStaticBox; }
/* 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
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
+ // 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 UpdateSize() { m_sizeSet = FALSE; }
- void InternalSetPosition(int x, int y) { m_x = x; m_y = y; }
- void InternalSetSize(int w, int h)
- { m_width = w; m_height = h; UpdateSize(); }
-protected:
// position and size of the window
int m_x, m_y;
int m_width, m_height;
// see the docs in src/gtk/window.cpp
+ GtkWidget *m_widget;
GtkWidget *m_wxwindow;
// scrolling stuff
GtkAdjustment *m_hAdjust,*m_vAdjust;
- float m_oldHorizontalPos,
- m_oldVerticalPos;
+ float m_oldHorizontalPos;
+ float m_oldVerticalPos;
+
+ // we need an extra XGC flag set to get exposed
+ // events from overlapping children upon moving
+ // them. this flag will be set in this GC and
+ // the GC will be used in wxWindow::ScrollWindow().
GdkGC *m_scrollGC;
// extra (wxGTK-specific) flags
bool m_isFrame:1; /* faster than IS_KIND_OF */
bool m_acceptsFocus:1; /* ! wxStaticBox etc. */
+ // these are true if the style were set before the widget was realized
+ // (typcally in the constructor) but the actual GTK style must not be set
+ // before the widget has been "realized"
+ bool m_delayedFont:1;
+ bool m_delayedForegroundColour:1;
+ bool m_delayedBackgroundColour:1;
+ bool m_delayedCursor:1;
+
+ // contains GTK's widgets internal information about non-default widget
+ // font and colours. we create one for each widget that gets any
+ // non-default attribute set via SetFont() or SetForegroundColour() /
+ // SetBackgroundColour().
GtkStyle *m_widgetStyle;
+ // C++ has no virtual methods in the constrcutor of any class but we need
+ // different methods of inserting a child window into a wxFrame,
+ // wxMDIFrame, wxNotebook etc. this is the callback that will get used.
wxInsertChildFunction m_insertCallback;
// implement the base class pure virtuals
+ virtual void DoClientToScreen( int *x, int *y ) const;
+ virtual void DoScreenToClient( int *x, int *y ) const;
virtual void DoGetPosition( int *x, int *y ) const;
virtual void DoGetSize( int *width, int *height ) const;
virtual void DoGetClientSize( int *width, int *height ) const;
void Init();
private:
- DECLARE_EVENT_TABLE()
+ DECLARE_NO_COPY_CLASS(wxWindow);
};
#endif // __GTKWINDOWH__