#define _WX_POPUPWIN_H_BASE_
#ifdef __GNUG__
- #pragma interface "popupwin.h"
+ #pragma interface "popupwinbase.h"
#endif
#include "wx/window.h"
#if wxUSE_POPUPWIN
-
// ----------------------------------------------------------------------------
// wxPopupWindow: a special kind of top level window used for popup menus,
// combobox popups and such.
{
public:
wxPopupWindowBase() { }
+ virtual ~wxPopupWindowBase();
// create the popup window
//
const wxSize& size);
};
+
// include the real class declaration
#ifdef __WXMSW__
#include "wx/msw/popupwin.h"
+#elif __WXPM__
+ #include "wx/os2/popupwin.h"
+#elif __WXGTK__
+ #include "wx/gtk/popupwin.h"
+#elif __WXX11__
+ #include "wx/x11/popupwin.h"
+#elif __WXMGL__
+ #include "wx/mgl/popupwin.h"
#else
#error "wxPopupWindow is not supported under this platform."
#endif
// when the user clicks mouse outside it or if it loses focus in any other way
// ----------------------------------------------------------------------------
+class WXDLLEXPORT wxPopupWindowHandler;
+class WXDLLEXPORT wxPopupFocusHandler;
+
class WXDLLEXPORT wxPopupTransientWindow : public wxPopupWindow
{
public:
// ctors
wxPopupTransientWindow() { Init(); }
- wxPopupTransientWindow(wxWindow *parent);
+ wxPopupTransientWindow(wxWindow *parent, int style = wxBORDER_NONE);
virtual ~wxPopupTransientWindow();
// hide the window
virtual void Dismiss();
+
+
+ virtual bool CanDismiss()
+ { return TRUE; }
// called when a mouse is pressed while the popup is shown: return TRUE
// from here to prevent its normal processing by the popup (which consists
// the window which has the focus while we're shown
wxWindow *m_focus;
+ // these classes may call our DismissAndNotify()
friend class wxPopupWindowHandler;
friend class wxPopupFocusHandler;
+
+ // the handlers we created, may be NULL (if not, must be deleted)
+ wxPopupWindowHandler *m_handlerPopup;
+ wxPopupFocusHandler *m_handlerFocus;
+
+ DECLARE_DYNAMIC_CLASS(wxPopupTransientWindow)
};
-#if wxUSE_COMBOBOX
+#if wxUSE_COMBOBOX && defined(__WXUNIVERSAL__)
// ----------------------------------------------------------------------------
// wxPopupComboWindow: wxPopupTransientWindow used by wxComboBox
class WXDLLEXPORT wxPopupComboWindow : public wxPopupTransientWindow
{
public:
+ wxPopupComboWindow() { m_combo = NULL; }
wxPopupComboWindow(wxComboControl *parent);
bool Create(wxComboControl *parent);
// notify the combo here
virtual void OnDismiss();
+ // forward the key presses to the combobox
+ void OnKeyDown(wxKeyEvent& event);
+
// the parent combobox
wxComboControl *m_combo;
+
+ DECLARE_EVENT_TABLE()
+ DECLARE_DYNAMIC_CLASS(wxPopupComboWindow)
};
-#endif // wxUSE_COMBOBOX
+#endif // wxUSE_COMBOBOX && defined(__WXUNIVERSAL__)
#endif // wxUSE_POPUPWIN