virtual bool IsRetained() const;
virtual void SetFocus();
- virtual bool AcceptsFocus() const;
+ virtual void SetCanFocus(bool canFocus);
virtual bool Reparent( wxWindowBase *newParent );
static wxLayoutDirection GTKGetLayout(GtkWidget *widget);
static void GTKSetLayout(GtkWidget *widget, wxLayoutDirection dir);
+ // return true if this window must have a non-NULL parent, false if it can
+ // be created without parent (normally only top level windows but in wxGTK
+ // there is also the exception of wxMenuBar)
+ virtual bool GTKNeedsParent() const { return !IsTopLevel(); }
+
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;
// 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();
GtkWidget *m_widget; // mostly the widget seen by the rest of GTK
GtkWidget *m_wxwindow; // mostly the client area as per wxWidgets
+ // return true if the window is of a standard (i.e. not wxWidgets') class
+ bool IsOfStandardClass() const { return m_wxwindow == NULL; }
+
// this widget will be queried for GTK's focus events
GtkWidget *m_focusWidget;
// extra (wxGTK-specific) flags
- bool m_needParent:1; // ! wxFrame, wxDialog, wxNotebookPage ?
bool m_noExpose:1; // wxGLCanvas has its own redrawing
bool m_nativeSizeEvent:1; // wxGLCanvas sends wxSizeEvent upon "alloc_size"
bool m_hasScrolling:1;
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()
// 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
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();
// should be called from OnInternalIdle() if it's overridden
void GTKUpdateCursor();
+ void ConstrainSize();
+
private:
enum ScrollUnit { ScrollUnit_Line, ScrollUnit_Page, ScrollUnit_Max };