]> git.saurik.com Git - wxWidgets.git/commitdiff
ScreenToClient() implemented correctly
authorVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 May 1999 01:00:57 +0000 (01:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Wed, 19 May 1999 01:00:57 +0000 (01:00 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2505 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/gtk/window.h
include/wx/gtk1/window.h
include/wx/msw/window.h
include/wx/window.h
src/gtk/window.cpp
src/gtk1/window.cpp
src/msw/window.cpp

index 4c6fc6fa8f5b64974b6e44ef1684255c9e45163c..167d3bc338ca2beb3b24dd96782820a08f53bb00 100644 (file)
@@ -86,13 +86,6 @@ public:
                                const wxFont *theFont = (const wxFont *) NULL)
                                const;
 
-    virtual void ClientToScreen( int *x, int *y ) const;
-    virtual void ScreenToClient( int *x, int *y ) const;
-    wxPoint ClientToScreen(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ClientToScreen(& x, & y); return wxPoint(x, y); }
-    wxPoint ScreenToClient(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ScreenToClient(& x, & y); return wxPoint(x, y); }
-
     virtual bool PopupMenu( wxMenu *menu, int x, int y );
 
     virtual void SetScrollbar( int orient, int pos, int thumbVisible,
@@ -215,6 +208,8 @@ public:
     wxInsertChildFunction  m_insertCallback;
 
     // implement the base class pure virtuals
+    virtual void DoClientToScreen( int *x, int *y ) const;
+    virtual void DoScreenToClient( int *x, int *y ) const;
     virtual void DoGetPosition( int *x, int *y ) const;
     virtual void DoGetSize( int *width, int *height ) const;
     virtual void DoGetClientSize( int *width, int *height ) const;
index 4c6fc6fa8f5b64974b6e44ef1684255c9e45163c..167d3bc338ca2beb3b24dd96782820a08f53bb00 100644 (file)
@@ -86,13 +86,6 @@ public:
                                const wxFont *theFont = (const wxFont *) NULL)
                                const;
 
-    virtual void ClientToScreen( int *x, int *y ) const;
-    virtual void ScreenToClient( int *x, int *y ) const;
-    wxPoint ClientToScreen(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ClientToScreen(& x, & y); return wxPoint(x, y); }
-    wxPoint ScreenToClient(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ScreenToClient(& x, & y); return wxPoint(x, y); }
-
     virtual bool PopupMenu( wxMenu *menu, int x, int y );
 
     virtual void SetScrollbar( int orient, int pos, int thumbVisible,
@@ -215,6 +208,8 @@ public:
     wxInsertChildFunction  m_insertCallback;
 
     // implement the base class pure virtuals
+    virtual void DoClientToScreen( int *x, int *y ) const;
+    virtual void DoScreenToClient( int *x, int *y ) const;
     virtual void DoGetPosition( int *x, int *y ) const;
     virtual void DoGetSize( int *width, int *height ) const;
     virtual void DoGetClientSize( int *width, int *height ) const;
index febe2c9b2e884355d741842b24e10378349fafa8..73f3856f0dd8852c5bf5f72a1ca546fca35e882d 100644 (file)
@@ -110,13 +110,6 @@ public:
                                const wxFont *theFont = (const wxFont *) NULL)
                                const;
 
-    virtual void ClientToScreen( int *x, int *y ) const;
-    virtual void ScreenToClient( int *x, int *y ) const;
-    wxPoint ClientToScreen(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ClientToScreen(& x, & y); return wxPoint(x, y); }
-    wxPoint ScreenToClient(const wxPoint& pt) const
-        { int x = pt.x; int y = pt.y; ScreenToClient(& x, & y); return wxPoint(x, y); }
-
     virtual bool PopupMenu( wxMenu *menu, int x, int y );
 
     virtual void SetScrollbar( int orient, int pos, int thumbVisible,
@@ -403,6 +396,8 @@ protected:
     wxButton             *m_btnDefault;
 
     // implement the base class pure virtuals
+    virtual void DoClientToScreen( int *x, int *y ) const;
+    virtual void DoScreenToClient( int *x, int *y ) const;
     virtual void DoGetPosition( int *x, int *y ) const;
     virtual void DoGetSize( int *width, int *height ) const;
     virtual void DoGetClientSize( int *width, int *height ) const;
index 99f192fc7e46b65e62cb19b46e5d8a86a2541f05..8aa851a82a674abfbb9f5c0afd9f606b8905106a 100644 (file)
@@ -489,8 +489,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
     // ----
@@ -707,6 +724,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;
index cff51e599d063b79f2ff2cd70bcb8efa81530392..1d6581c0bd3a50969e5600b42de7e7c654299ce7 100644 (file)
@@ -2129,7 +2129,7 @@ void wxWindow::DoGetPosition( int *x, int *y ) const
     if (y) (*y) = m_y;
 }
 
-void wxWindow::ClientToScreen( int *x, int *y ) const
+void wxWindow::DoClientToScreen( int *x, int *y ) const
 {
     wxCHECK_RET( (m_widget != NULL), _T("invalid window") );
 
@@ -2158,7 +2158,7 @@ void wxWindow::ClientToScreen( int *x, int *y ) const
     if (y) *y += org_y;
 }
 
-void wxWindow::ScreenToClient( int *x, int *y ) const
+void wxWindow::DoScreenToClient( int *x, int *y ) const
 {
     wxCHECK_RET( (m_widget != NULL), _T("invalid window") );
 
index cff51e599d063b79f2ff2cd70bcb8efa81530392..1d6581c0bd3a50969e5600b42de7e7c654299ce7 100644 (file)
@@ -2129,7 +2129,7 @@ void wxWindow::DoGetPosition( int *x, int *y ) const
     if (y) (*y) = m_y;
 }
 
-void wxWindow::ClientToScreen( int *x, int *y ) const
+void wxWindow::DoClientToScreen( int *x, int *y ) const
 {
     wxCHECK_RET( (m_widget != NULL), _T("invalid window") );
 
@@ -2158,7 +2158,7 @@ void wxWindow::ClientToScreen( int *x, int *y ) const
     if (y) *y += org_y;
 }
 
-void wxWindow::ScreenToClient( int *x, int *y ) const
+void wxWindow::DoScreenToClient( int *x, int *y ) const
 {
     wxCHECK_RET( (m_widget != NULL), _T("invalid window") );
 
index de806ac65f173cb53623f1e9ebe067a0db419040..88a43b6b3314672f22c4befbf8cf4072512ae999 100644 (file)
@@ -1099,7 +1099,7 @@ void wxWindow::DoGetPosition(int *x, int *y) const
         *y = point.y;
 }
 
-void wxWindow::ScreenToClient(int *x, int *y) const
+void wxWindow::DoScreenToClient(int *x, int *y) const
 {
     POINT pt;
     if ( x )
@@ -1116,7 +1116,7 @@ void wxWindow::ScreenToClient(int *x, int *y) const
         *y = pt.y;
 }
 
-void wxWindow::ClientToScreen(int *x, int *y) const
+void wxWindow::DoClientToScreen(int *x, int *y) const
 {
     POINT pt;
     if ( x )