]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/popupwin.h
better handling for the style changing during run-time
[wxWidgets.git] / include / wx / msw / popupwin.h
index 616b22679df22b5e901962aaf029d7b39da95c2a..239ee042124292cb64e98da4f0a5f22944d7fbea 100644 (file)
@@ -21,7 +21,8 @@ class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase
 public:
     wxPopupWindow() { }
 
-    wxPopupWindow(wxWindow *parent) { (void)Create(parent); }
+    wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE)
+        { (void)Create(parent, flags); }
 
     bool Create(wxWindow *parent, int flags = wxBORDER_NONE)
     {
@@ -30,6 +31,19 @@ public:
                                 wxDefaultPosition, wxDefaultSize,
                                 (flags & wxBORDER_MASK) | wxPOPUP_WINDOW);
     }
+
+protected:
+    virtual void DoGetPosition(int *x, int *y) const
+    {
+        // the position of a "top level" window such as this should be in
+        // screen coordinates, not in the client ones which MSW gives us
+        // (because we are a child window)
+        wxPopupWindowBase::DoGetPosition(x, y);
+
+        GetParent()->ClientToScreen(x, y);
+    }
+
+    DECLARE_DYNAMIC_CLASS(wxPopupWindow)
 };
 
 #endif // _WX_MSW_POPUPWIN_H_