// (pseudo)template list classes
// ----------------------------------------------------------------------------
-WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode);
+WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class WXDLLEXPORT);
// ----------------------------------------------------------------------------
// global variables
*h = s.y;
}
- // centre with respect to the the parent window
+ // the generic centre function - centers the window on parent by
+ // default or on screen if it doesn't have parent or
+ // wxCENTER_ON_SCREEN flag is given
void Centre( int direction = wxBOTH );
void Center( int direction = wxBOTH ) { Centre(direction); }
- void CentreOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); }
- void CenterOnParent( int dir = wxBOTH ) { Centre(dir | wxCENTER_FRAME); }
+
+ // centre on screen (only works for top level windows)
+ void CentreOnScreen(int dir = wxBOTH) { Centre(dir | wxCENTER_ON_SCREEN); }
+ void CenterOnScreen(int dir = wxBOTH) { CentreOnScreen(dir); }
+
+ // centre with respect to the the parent window
+ void CentreOnParent(int dir = wxBOTH) { Centre(dir | wxCENTER_FRAME); }
+ void CenterOnParent(int dir = wxBOTH) { CentreOnParent(dir); }
// set window size to wrap around its children
virtual void Fit();
long GetWindowStyle() const { return GetWindowStyleFlag(); }
bool HasFlag(int flag) const { return (m_windowStyle & flag) != 0; }
+ virtual bool IsRetained() const { return HasFlag(wxRETAINED); }
- virtual bool IsRetained() const
- { return (m_windowStyle & wxRETAINED) != 0; }
+ // extra style: the less often used style bits which can't be set with
+ // SetWindowStyleFlag()
+ void SetExtraStyle(long exStyle) { m_exStyle = exStyle; }
+ long GetExtraStyle() const { return m_exStyle; }
// make the window modal (all other windows unresponsive)
virtual void MakeModal(bool modal = TRUE);
+ virtual void SetThemeEnabled(bool enableTheme) { m_themeEnabled = enableTheme; }
+ virtual bool GetThemeEnabled() const { return m_themeEnabled; }
+
// focus handling
// --------------
virtual void ScrollWindow( int dx, int dy,
const wxRect* rect = (wxRect *) NULL ) = 0;
+ // context-sensitive help
+ // ----------------------
+
+ // these are the convenience functions wrapping wxHelpProvider methods
+
+#if wxUSE_HELP
+ // associate this help text with this window
+ void SetHelpText(const wxString& text);
+ // associate this help text with all windows with the same id as this
+ // one
+ void SetHelpTextForId(const wxString& text);
+ // get the help string associated with this window (may be empty)
+ wxString GetHelpText() const;
+#endif // wxUSE_HELP
+
// tooltips
// --------
+
#if wxUSE_TOOLTIPS
// the easiest way to set a tooltip for a window is to use this method
void SetToolTip( const wxString &tip );
// event handlers
void OnSysColourChanged( wxSysColourChangedEvent& event );
void OnInitDialog( wxInitDialogEvent &event );
+ void OnMiddleClick( wxMouseEvent& event );
+#if wxUSE_HELP
+ void OnHelp(wxHelpEvent& event);
+#endif // wxUSE_HELP
// get the haqndle of the window for the underlying window system: this
// is only used for wxWin itself or for user code which wants to call
bool m_isBeingDeleted:1;
// window attributes
- long m_windowStyle;
+ long m_windowStyle,
+ m_exStyle;
wxString m_windowName;
+ bool m_themeEnabled;
protected:
// common part of all ctors: it is not virtual because it is called from
}
// ----------------------------------------------------------------------------
-// global function
+// global functions
// ----------------------------------------------------------------------------
WXDLLEXPORT extern wxWindow* wxGetActiveWindow();
+// Find the wxWindow at the current mouse position, also returning the mouse
+// position.
+WXDLLEXPORT extern wxWindow* wxFindWindowAtPointer(wxPoint& pt);
+
+// Get the current mouse position.
+WXDLLEXPORT extern wxPoint wxGetMousePosition();
+
// deprecated (doesn't start with 'wx' prefix), use wxWindow::NewControlId()
inline WXDLLEXPORT int NewControlId() { return wxWindowBase::NewControlId(); }