]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/window.h
wxPrivateDataObject works under MSW as well (hopefully it still does under
[wxWidgets.git] / include / wx / window.h
index e801a29cf59f181f79513199d339c85d3f426f59..94ea50624ae33e06054e508e25d443e74e32b6f8 100644 (file)
@@ -1,6 +1,6 @@
 ///////////////////////////////////////////////////////////////////////////////
 // Name:        window.h
-// Purpose:     wxWindowBase class - the interface of wxWindowBase
+// Purpose:     wxWindowBase class - the interface of wxWindow
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     01/02/97
@@ -34,6 +34,7 @@
 // forward declarations
 // ----------------------------------------------------------------------------
 
+class WXDLLEXPORT wxCaret;
 class WXDLLEXPORT wxClientData;
 class WXDLLEXPORT wxControl;
 class WXDLLEXPORT wxCursor;
@@ -156,6 +157,7 @@ public:
 
         // label is just the same as the title (but for, e.g., buttons it
         // makes more sense to speak about labels)
+    virtual void SetLabel(const wxString& label) { SetTitle(label); }
     virtual wxString GetLabel() const { return GetTitle(); }
 
         // the window name is used for ressource setting in X, it is not the
@@ -171,6 +173,12 @@ public:
         // generate a control id for the controls which were not given one by
         // user
     static int NewControlId() { return --ms_lastControlId; }
+        // get the id of the control following the one with the given
+        // (autogenerated) id
+    static int NextControlId(int id) { return id - 1; }
+        // get the id of the control preceding the one with the given
+        // (autogenerated) id
+    static int PrevControlId(int id) { return id + 1; }
 
     // moving/resizing
     // ---------------
@@ -468,6 +476,13 @@ public:
     const wxFont& GetFont() const { return m_font; }
     wxFont& GetFont() { return m_font; }
 
+#if wxUSE_CARET
+        // associate a caret with the window
+    void SetCaret(wxCaret *caret);
+        // get the current caret (may be NULL)
+    wxCaret *GetCaret() const { return m_caret; }
+#endif // wxUSE_CARET
+
         // get the (average) character size for the current font
     virtual int GetCharHeight() const = 0;
     virtual int GetCharWidth() const = 0;
@@ -482,8 +497,25 @@ public:
                                const = 0;
 
         // translate to/from screen/client coordinates (pointers may be NULL)
-    virtual void ClientToScreen( int *x, int *y ) const = 0;
-    virtual void ScreenToClient( int *x, int *y ) const = 0;
+    void ClientToScreen( int *x, int *y ) const
+        { DoClientToScreen(x, y); }
+    void ScreenToClient( int *x, int *y ) const
+        { DoScreenToClient(x, y); }
+    wxPoint ClientToScreen(const wxPoint& pt) const
+    {
+        int x = pt.x, y = pt.y;
+        DoClientToScreen(&x, &y);
+
+        return wxPoint(x, y);
+    }
+
+    wxPoint ScreenToClient(const wxPoint& pt) const
+    {
+        int x = pt.x, y = pt.y;
+        DoScreenToClient(&x, &y);
+
+        return wxPoint(x, y);
+    }
 
     // misc
     // ----
@@ -605,7 +637,7 @@ public:
     virtual WXWidget GetHandle() const = 0;
 
 protected:
-    // the window id - a number which uniquely identifies a window among 
+    // the window id - a number which uniquely identifies a window among
     // its siblings unless it is -1
     wxWindowID           m_windowId;
 
@@ -634,6 +666,10 @@ protected:
     wxFont               m_font;
     wxColour             m_backgroundColour, m_foregroundColour;
 
+#if wxUSE_CARET
+    wxCaret             *m_caret;
+#endif // wxUSE_CARET
+
     // the region which should be repainted in response to paint event
     wxRegion             m_updateRegion;
 
@@ -700,6 +736,10 @@ protected:
     //     overloaded Something()s in terms of DoSomething() which will be the
     //     only one to be virtual.
 
+    // coordinates translation
+    virtual void DoClientToScreen( int *x, int *y ) const = 0;
+    virtual void DoScreenToClient( int *x, int *y ) const = 0;
+
     // retrieve the position/size of the window
     virtual void DoGetPosition( int *x, int *y ) const = 0;
     virtual void DoGetSize( int *width, int *height ) const = 0;
@@ -757,8 +797,8 @@ inline wxWindow *wxWindowBase::GetGrandParent() const
 // global function
 // ----------------------------------------------------------------------------
 
-extern wxWindow* WXDLLEXPORT wxGetActiveWindow();
-inline int WXDLLEXPORT NewControlId() { return wxWindowBase::NewControlId(); }
+WXDLLEXPORT extern wxWindow* wxGetActiveWindow();
+inline WXDLLEXPORT int NewControlId() { return wxWindowBase::NewControlId(); }
 
 #endif
     // _WX_WINDOW_H_BASE_