X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/d0bbcd06d2da50de48c7f736669305b6aa9c99b5..3399af21d10d3f8ce4f39dfb29df5546ab265ef6:/interface/wx/popupwin.h?ds=sidebyside diff --git a/interface/wx/popupwin.h b/interface/wx/popupwin.h index b2dad633b6..96c20f6a81 100644 --- a/interface/wx/popupwin.h +++ b/interface/wx/popupwin.h @@ -3,7 +3,7 @@ // Purpose: interface of wxPoppWindow // Author: wxWidgets team // RCS-ID: $Id$ -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// /** @@ -49,3 +49,51 @@ public: const wxSize& sizePopup); }; +/** + @class wxPopupTransientWindow + + A wxPopupWindow which disappears automatically when the user clicks mouse + outside it or if it loses focus in any other way. + + This window can be useful for implementing custom combobox-like controls + for example. + + @library{wxcore} + @category{managedwnd} + + @see wxPopupWindow +*/ + +class wxPopupTransientWindow : public wxPopupWindow +{ +public: + /** + Constructor. + */ + wxPopupTransientWindow(wxWindow *parent, int flags = wxBORDER_NONE); + + /** + Popup the window (this will show it too). + + If @a winFocus is non-@NULL, it will be kept focused while this window + is shown, otherwise this window itself will receive focus. In any case, + the popup will disappear automatically if it loses focus because of a + user action. + + @see Dismiss() + */ + virtual void Popup(wxWindow *focus = NULL); + + /** + Hide the window. + */ + virtual void Dismiss(); + + /** + 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 in dismissing it if the mouse is clicked outside it). + */ + virtual bool ProcessLeftDown(wxMouseEvent& event); +};