]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/popupwin.h
fixes to the sizers behaviour necessary to make the log dialog work again
[wxWidgets.git] / include / wx / os2 / popupwin.h
index 08ebecbf7f99836b4fd6a7fc66cc6550e200e5d0..9341ecdd5c5cb0ec75d800601125ab73ac144dfe 100644 (file)
@@ -21,15 +21,41 @@ class WXDLLEXPORT wxPopupWindow : public wxPopupWindowBase
 public:
     wxPopupWindow() { }
 
-    wxPopupWindow(wxWindow *parent) { (void)Create(parent); }
-
-    bool Create(wxWindow *parent, int flags = wxBORDER_NONE)
-    {
-        return wxPopupWindowBase::Create(parent) &&
-               wxWindow::Create(parent, -1,
-                                wxDefaultPosition, wxDefaultSize,
-                                (flags & wxBORDER_MASK) | wxPOPUP_WINDOW);
-    }
-};
+    wxPopupWindow(wxWindow* pParent) { (void)Create(pParent); }
+
+    bool Create( wxWindow* pParent
+                ,int       nFlags = wxBORDER_NONE
+               );
+    //
+    // Implementation only from now on
+    // -------------------------------
+    //
+
+    //
+    // Override Show() to prevent wxPopupWindow from being activated
+    //
+    virtual bool Show(bool show = TRUE);
+
+    //
+    // Find a shown popup window with the given window as parent, return NULL
+    // if none
+    //
+    static wxPopupWindow *FindPopupFor(wxWindow* pWin);
+
+protected:
+    virtual void DoGetPosition( int* pnX
+                               ,int* pny
+                              ) const;
+
+    virtual WXDWORD OS2GetStyle( long     lFlags
+                                ,WXDWORD* dwExstyle
+                               ) const;
+    //
+    // The list of all currently shown popup windows used by FindPopupFor()
+    //
+    static wxWindowList             m_svShownPopups;
+
+    DECLARE_DYNAMIC_CLASS(wxPopupWindow)
+}; // end of CLASS wxPopupWindow
 
 #endif // _WX_PM_POPUPWIN_H_