X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b7f2165565bb33b149baf1272e28f9a61d579d3..cce442ba7c8506fda1b1bf350390ef06b0863150:/include/wx/window.h diff --git a/include/wx/window.h b/include/wx/window.h index f707a1c24a..2fc3e20a8a 100644 --- a/include/wx/window.h +++ b/include/wx/window.h @@ -58,7 +58,7 @@ class WXDLLEXPORT wxWindow; // (pseudo)template list classes // ---------------------------------------------------------------------------- -WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode); +WX_DECLARE_LIST_3(wxWindow, wxWindowBase, wxWindowList, wxWindowListNode, class WXDLLEXPORT); // ---------------------------------------------------------------------------- // global variables @@ -271,11 +271,19 @@ public: *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(); @@ -315,13 +323,19 @@ public: 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 // -------------- @@ -568,8 +582,24 @@ public: 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 ); @@ -649,6 +679,10 @@ public: // 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 @@ -739,8 +773,10 @@ protected: 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 @@ -872,11 +908,18 @@ inline wxWindow *wxWindowBase::GetGrandParent() const } // ---------------------------------------------------------------------------- -// 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(); }