]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
merged in the commit from the 2.2 branch
[wxWidgets.git] / include / wx / window.h
index f707a1c24ab53fcb8b20fe246818667730ffef18..2fc3e20a8a061685aa36bf9de36dc3f0621e0a59 100644 (file)
@@ -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(); }