132 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
			
		
		
	
	
			132 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Objective-C
		
	
	
	
	
	
| /////////////////////////////////////////////////////////////////////////////
 | |
| // Name:        popupwin.h
 | |
| // Purpose:     interface of wxPopupWindow
 | |
| // Author:      wxWidgets team
 | |
| // Licence:     wxWindows licence
 | |
| /////////////////////////////////////////////////////////////////////////////
 | |
| 
 | |
| #define wxPU_CONTAINS_CONTROLS     0x0001
 | |
| 
 | |
| /**
 | |
|     @class wxPopupWindow
 | |
| 
 | |
|     A special kind of top level window used for popup menus,
 | |
|     combobox popups and such.
 | |
| 
 | |
|     @beginStyleTable
 | |
|     @style{wxPU_CONTAINS_CONTROLS}
 | |
|         By default in wxMSW, a popup window will not take focus from its parent
 | |
|         window. However many standard controls, including common ones such as
 | |
|         wxTextCtrl, need focus to function correctly and will not work when
 | |
|         placed on a default popup. This flag can be used to make the popup take
 | |
|         focus and let all controls work but at the price of not allowing the
 | |
|         parent window to keep focus while the popup is shown, which can also be
 | |
|         sometimes desirable. This style is currently only implemented in MSW
 | |
|         and simply does nothing under the other platforms (it's new since
 | |
|         wxWidgets 3.1.3).
 | |
|     @endStyleTable
 | |
| 
 | |
|     @library{wxcore}
 | |
|     @category{managedwnd}
 | |
| 
 | |
|     @see wxDialog, wxFrame
 | |
| */
 | |
| 
 | |
| class wxPopupWindow: public wxNonOwnedWindow
 | |
| {
 | |
| public:
 | |
| 
 | |
|     /**
 | |
|       Default constructor
 | |
|     */
 | |
|     wxPopupWindow();
 | |
| 
 | |
|     /**
 | |
|       Constructor
 | |
|     */
 | |
|     wxPopupWindow(wxWindow *parent, int flags = wxBORDER_NONE);
 | |
| 
 | |
|     /**
 | |
|       Create method for two-step creation
 | |
|     */
 | |
|     bool Create(wxWindow *parent, int flags = wxBORDER_NONE);
 | |
| 
 | |
|     /**
 | |
|         Move the popup window to the right position, i.e.\ such that it is
 | |
|         entirely visible.
 | |
| 
 | |
|         The popup is positioned at ptOrigin + size if it opens below and to the
 | |
|         right (default), at ptOrigin - sizePopup if it opens above and to the
 | |
|         left etc.
 | |
| 
 | |
|         @param ptOrigin
 | |
|             Must be given in screen coordinates!
 | |
|         @param sizePopup
 | |
|             The size of the popup window
 | |
|     */
 | |
|     virtual void Position(const wxPoint& ptOrigin,
 | |
|                           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:
 | |
|     /**
 | |
|         Default constructor.
 | |
|     */
 | |
|     wxPopupTransientWindow();
 | |
| 
 | |
|     /**
 | |
|         Constructor.
 | |
|     */
 | |
|     wxPopupTransientWindow(wxWindow *parent, int flags = wxBORDER_NONE);
 | |
| 
 | |
|     /**
 | |
|         Popup the window (this will show it too).
 | |
| 
 | |
|         If @a focus is non-@NULL, it will be kept focused while this window
 | |
|         is shown if supported by the current platform, otherwise the popup
 | |
|         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();
 | |
| 
 | |
| };
 |