+/**
+ @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:
+ /**
+ Default constructor.
+ */
+ wxPopupTransientWindow();
+
+ /**
+ 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);
+
+protected:
+ /**
+ This is called when the popup is disappeared because of anything
+ else but direct call to Dismiss().
+ */
+ virtual void OnDismiss();
+
+};