| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725 | 
							- /////////////////////////////////////////////////////////////////////////////
 
- // Name:        dialog.h
 
- // Purpose:     interface of wxDialog
 
- // Author:      wxWidgets team
 
- // Licence:     wxWindows licence
 
- /////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     Modes used for wxDialog::SetLayoutAdaptationMode().
 
- */
 
- enum wxDialogLayoutAdaptationMode
 
- {
 
-     wxDIALOG_ADAPTATION_MODE_DEFAULT = 0,   ///< Use global adaptation enabled status.
 
-     wxDIALOG_ADAPTATION_MODE_ENABLED = 1,   ///< Enable this dialog overriding global status.
 
-     wxDIALOG_ADAPTATION_MODE_DISABLED = 2   ///< Disable this dialog overriding global status.
 
- };
 
- #define wxDIALOG_NO_PARENT      0x00000020  ///< Don't make owned by apps top window
 
- #define wxDEFAULT_DIALOG_STYLE  (wxCAPTION | wxSYSTEM_MENU | wxCLOSE_BOX)
 
- #define wxDIALOG_ADAPTATION_NONE             0  ///< Don't do any layout adaptation
 
- #define wxDIALOG_ADAPTATION_STANDARD_SIZER   1  ///< Only look for wxStdDialogButtonSizer for non-scrolling part
 
- #define wxDIALOG_ADAPTATION_ANY_SIZER        2  ///< Also look for any suitable sizer for non-scrolling part
 
- #define wxDIALOG_ADAPTATION_LOOSE_BUTTONS    3  ///< Also look for 'loose' standard buttons for non-scrolling part
 
- /**
 
-     @class wxDialog
 
-     A dialog box is a window with a title bar and sometimes a system menu,
 
-     which can be moved around the screen. It can contain controls and other
 
-     windows and is often used to allow the user to make some choice or to
 
-     answer a question.
 
-     Dialogs can be made scrollable, automatically, for computers with low
 
-     resolution screens: please see @ref overview_dialog_autoscrolling for
 
-     further details.
 
-     Dialogs usually contain either a single button allowing to close the
 
-     dialog or two buttons, one accepting the changes and the other one
 
-     discarding them (such button, if present, is automatically activated if the
 
-     user presses the "Esc" key). By default, buttons with the standard wxID_OK
 
-     and wxID_CANCEL identifiers behave as expected. Starting with wxWidgets 2.7
 
-     it is also possible to use a button with a different identifier instead,
 
-     see SetAffirmativeId() and SetEscapeId().
 
-     Also notice that the CreateButtonSizer() should be used to create the
 
-     buttons appropriate for the current platform and positioned correctly
 
-     (including their order which is platform-dependent).
 
-     @section dialog_modal Modal and Modeless
 
-     There are two kinds of dialog, modal and modeless. A modal dialog blocks
 
-     program flow and user input on other windows until it is dismissed, whereas
 
-     a modeless dialog behaves more like a frame in that program flow continues,
 
-     and input in other windows is still possible. To show a modal dialog you
 
-     should use the ShowModal() method while to show a dialog modelessly you
 
-     simply use Show(), just as with frames.
 
-     Note that the modal dialog is one of the very few examples of
 
-     wxWindow-derived objects which may be created on the stack and not on the
 
-     heap. In other words, while most windows would be created like this:
 
-     @code
 
-     void AskUser()
 
-     {
 
-         MyAskDialog *dlg = new MyAskDialog(...);
 
-         if ( dlg->ShowModal() == wxID_OK )
 
-             // ...
 
-         //else: dialog was cancelled or some another button pressed
 
-         dlg->Destroy();
 
-     }
 
-     @endcode
 
-     You can achieve the same result with dialogs by using simpler code:
 
-     @code
 
-     void AskUser()
 
-     {
 
-         MyAskDialog dlg(...);
 
-         if ( dlg.ShowModal() == wxID_OK )
 
-             // ...
 
-         // no need to call Destroy() here
 
-     }
 
-     @endcode
 
-     An application can define a wxCloseEvent handler for the dialog to respond
 
-     to system close events.
 
-     @beginStyleTable
 
-     @style{wxCAPTION}
 
-            Puts a caption on the dialog box.
 
-     @style{wxDEFAULT_DIALOG_STYLE}
 
-            Equivalent to a combination of wxCAPTION, wxCLOSE_BOX and
 
-            wxSYSTEM_MENU (the last one is not used under Unix).
 
-     @style{wxRESIZE_BORDER}
 
-            Display a resizable frame around the window.
 
-     @style{wxSYSTEM_MENU}
 
-            Display a system menu.
 
-     @style{wxCLOSE_BOX}
 
-            Displays a close box on the frame.
 
-     @style{wxMAXIMIZE_BOX}
 
-            Displays a maximize box on the dialog.
 
-     @style{wxMINIMIZE_BOX}
 
-            Displays a minimize box on the dialog.
 
-     @style{wxTHICK_FRAME}
 
-            Display a thick frame around the window.
 
-     @style{wxSTAY_ON_TOP}
 
-            The dialog stays on top of all other windows.
 
-     @style{wxNO_3D}
 
-            This style is obsolete and doesn't do anything any more, don't use
 
-            it in any new code.
 
-     @style{wxDIALOG_NO_PARENT}
 
-            By default, a dialog created with a @NULL parent window will be
 
-            given the @ref wxApp::GetTopWindow() "application's top level window"
 
-            as parent. Use this style to prevent this from happening and create
 
-            an orphan dialog. This is not recommended for modal dialogs.
 
-     @style{wxDIALOG_EX_CONTEXTHELP}
 
-            Under Windows, puts a query button on the caption. When pressed,
 
-            Windows will go into a context-sensitive help mode and wxWidgets
 
-            will send a @c wxEVT_HELP event if the user clicked on an application
 
-            window. Note that this is an extended style and must be set by
 
-            calling SetExtraStyle() before Create is called (two-step
 
-            construction).
 
-     @style{wxDIALOG_EX_METAL}
 
-            On Mac OS X, frames with this style will be shown with a metallic
 
-            look. This is an extra style.
 
-     @endStyleTable
 
-     Under Unix or Linux, MWM (the Motif Window Manager) or other window
 
-     managers recognizing the MHM hints should be running for any of these
 
-     styles to have an effect.
 
-     @beginEventEmissionTable{wxCloseEvent}
 
-     @event{EVT_CLOSE(func)}
 
-         The dialog is being closed by the user or programmatically (see wxWindow::Close).
 
-         The user may generate this event clicking the close button
 
-         (typically the 'X' on the top-right of the title bar) if it's present
 
-         (see the @c wxCLOSE_BOX style) or by clicking a button with the
 
-         @c wxID_CANCEL or @c wxID_OK ids.
 
-     @event{EVT_INIT_DIALOG(func)}
 
-         Process a @c wxEVT_INIT_DIALOG event. See wxInitDialogEvent.
 
-     @endEventTable
 
-     @library{wxcore}
 
-     @category{cmndlg}
 
-     @see @ref overview_dialog, wxFrame, @ref overview_validator
 
- */
 
- class wxDialog : public wxTopLevelWindow
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxDialog();
 
-     /**
 
-         Constructor.
 
-         @param parent
 
-             Can be @NULL, a frame or another dialog box.
 
-         @param id
 
-             An identifier for the dialog. A value of -1 is taken to mean a
 
-             default.
 
-         @param title
 
-             The title of the dialog.
 
-         @param pos
 
-             The dialog position. The value wxDefaultPosition indicates a
 
-             default position, chosen by either the windowing system or
 
-             wxWidgets, depending on platform.
 
-         @param size
 
-             The dialog size. The value wxDefaultSize indicates a default size,
 
-             chosen by either the windowing system or wxWidgets, depending on
 
-             platform.
 
-         @param style
 
-             The window style.
 
-         @param name
 
-             Used to associate a name with the window, allowing the application
 
-             user to set Motif resource values for individual dialog boxes.
 
-         @see Create()
 
-     */
 
-     wxDialog(wxWindow* parent, wxWindowID id, const wxString& title,
 
-              const wxPoint& pos = wxDefaultPosition,
 
-              const wxSize& size = wxDefaultSize,
 
-              long style = wxDEFAULT_DIALOG_STYLE,
 
-              const wxString& name = wxDialogNameStr);
 
-     /**
 
-         Destructor.
 
-         Deletes any child windows before deleting the physical window.
 
-         See @ref overview_windowdeletion for more info.
 
-     */
 
-     virtual ~wxDialog();
 
-     /**
 
-         Adds an identifier to be regarded as a main button for the
 
-         non-scrolling area of a dialog.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     void AddMainButtonId(wxWindowID id);
 
-     /**
 
-         Returns @true if this dialog can and should perform layout adaptation
 
-         using DoLayoutAdaptation(), usually if the dialog is too large to fit
 
-         on the display.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     virtual bool CanDoLayoutAdaptation();
 
-     /**
 
-         Centres the dialog box on the display.
 
-         @param direction
 
-             May be wxHORIZONTAL, wxVERTICAL or wxBOTH.
 
-     */
 
-     void Centre(int direction = wxBOTH);
 
-     /**
 
-         Used for two-step dialog box construction.
 
-         @see wxDialog()
 
-     */
 
-     bool Create(wxWindow* parent, wxWindowID id, const wxString& title,
 
-                 const wxPoint& pos = wxDefaultPosition,
 
-                 const wxSize& size = wxDefaultSize,
 
-                 long style = wxDEFAULT_DIALOG_STYLE,
 
-                 const wxString& name = wxDialogNameStr);
 
-     /**
 
-         Creates a sizer with standard buttons. @a flags is a bit list of the
 
-         following flags: wxOK, wxCANCEL, wxYES, wxNO, wxAPPLY, wxCLOSE, wxHELP,
 
-         wxNO_DEFAULT.
 
-         The sizer lays out the buttons in a manner appropriate to the platform.
 
-         This function uses CreateStdDialogButtonSizer() internally for most
 
-         platforms but doesn't create the sizer at all for the platforms with
 
-         hardware buttons (such as smartphones) for which it sets up the
 
-         hardware buttons appropriately and returns @NULL, so don't forget to
 
-         test that the return value is valid before using it.
 
-     */
 
-     wxSizer* CreateButtonSizer(long flags);
 
-     /**
 
-         Creates a sizer with standard buttons using CreateButtonSizer()
 
-         separated from the rest of the dialog contents by a horizontal
 
-         wxStaticLine.
 
-         @note Just like CreateButtonSizer(), this function may return @NULL if
 
-               no buttons were created.
 
-         This is a combination of CreateButtonSizer() and
 
-         CreateSeparatedSizer().
 
-     */
 
-     wxSizer* CreateSeparatedButtonSizer(long flags);
 
-     /**
 
-         Returns the sizer containing the given one with a separating
 
-         wxStaticLine if necessarily.
 
-         This function is useful for creating the sizer containing footer-like
 
-         contents in dialog boxes. It will add a separating static line only if
 
-         it conforms to the current platform convention (currently it is not
 
-         added under Mac where the use of static lines for grouping is
 
-         discouraged and is added elsewhere).
 
-         @since 2.9.2
 
-         @param sizer The sizer to wrap, must be non-@NULL.
 
-         @return The sizer wrapping the input one or possibly the input sizer
 
-             itself if no wrapping is necessary.
 
-      */
 
-     wxSizer *CreateSeparatedSizer(wxSizer *sizer);
 
-     /**
 
-         Creates a wxStdDialogButtonSizer with standard buttons. @a flags is a
 
-         bit list of the following flags: wxOK, wxCANCEL, wxYES, wxNO, wxAPPLY,
 
-         wxCLOSE, wxHELP, wxNO_DEFAULT.
 
-         The sizer lays out the buttons in a manner appropriate to the platform.
 
-     */
 
-     wxStdDialogButtonSizer* CreateStdDialogButtonSizer(long flags);
 
-     /**
 
-        Splits text up at newlines and places the lines into wxStaticText
 
-        objects in a vertical wxBoxSizer.
 
-     */
 
-     wxSizer *CreateTextSizer( const wxString& message );
 
-     /**
 
-         Performs layout adaptation, usually if the dialog is too large to fit
 
-         on the display.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     virtual bool DoLayoutAdaptation();
 
-     /**
 
-         This function is called when the titlebar OK button is pressed
 
-         (PocketPC only). A command event for the identifier returned by
 
-         GetAffirmativeId() is sent by default. You can override this function.
 
-         If the function returns @false, wxWidgets will call Close() for the
 
-         dialog.
 
-         @onlyfor{wxmsw}
 
-     */
 
-     virtual bool DoOK();
 
-     /**
 
-         A static function enabling or disabling layout adaptation for all
 
-         dialogs.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     static void EnableLayoutAdaptation(bool enable);
 
-     /**
 
-         Ends a modal dialog, passing a value to be returned from the
 
-         ShowModal() invocation.
 
-         @param retCode
 
-             The value that should be returned by ShowModal.
 
-         @see ShowModal(), GetReturnCode(), SetReturnCode()
 
-     */
 
-     virtual void EndModal(int retCode);
 
-     /**
 
-         Gets the identifier of the button which works like standard OK button
 
-         in this dialog.
 
-         @see SetAffirmativeId()
 
-     */
 
-     int GetAffirmativeId() const;
 
-     /**
 
-         Override this to return a window containing the main content of the
 
-         dialog. This is particularly useful when the dialog implements pages,
 
-         such as wxPropertySheetDialog, and allows the
 
-         @ref overview_dialog "layout adaptation code" to know that only the
 
-         pages need to be made scrollable.
 
-     */
 
-     virtual wxWindow* GetContentWindow() const;
 
-     /**
 
-         Gets the identifier of the button to map presses of @c ESC button to.
 
-         @see SetEscapeId()
 
-     */
 
-     int GetEscapeId() const;
 
-     /**
 
-         Returns @true if the dialog has been adapted, usually by making it
 
-         scrollable to work with a small display.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     bool GetLayoutAdaptationDone() const;
 
-     /**
 
-         Gets a value representing the aggressiveness of search for buttons and
 
-         sizers to be in the non-scrolling part of a layout-adapted dialog. Zero
 
-         switches off adaptation, and 3 allows search for standard buttons
 
-         anywhere in the dialog.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     int GetLayoutAdaptationLevel() const;
 
-     /**
 
-         Gets the adaptation mode, overriding the global adaptation flag.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     wxDialogLayoutAdaptationMode GetLayoutAdaptationMode() const;
 
-     /**
 
-         A static function getting the current layout adapter object.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     static wxDialogLayoutAdapter* GetLayoutAdapter();
 
-     /**
 
-         Returns an array of identifiers to be regarded as the main buttons for
 
-         the non-scrolling area of a dialog.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     wxArrayInt& GetMainButtonIds();
 
-     /**
 
-         Gets the return code for this window.
 
-         @remarks A return code is normally associated with a modal dialog,
 
-                  where ShowModal() returns a code to the application.
 
-         @see SetReturnCode(), ShowModal(), EndModal()
 
-     */
 
-     int GetReturnCode() const;
 
-     /**
 
-         On PocketPC, a dialog is automatically provided with an empty toolbar.
 
-         This function allows you to access the toolbar and add tools to it.
 
-         Removing tools and adding arbitrary controls are not currently
 
-         supported.
 
-         This function is not available on any other platform.
 
-         @onlyfor{wxmsw}
 
-     */
 
-     wxToolBar* GetToolBar() const;
 
-     /**
 
-         Iconizes or restores the dialog. Windows only.
 
-         @param iconize
 
-             If @true, iconizes the dialog box; if @false, shows and restores it.
 
-         @remarks Note that in Windows, iconization has no effect since dialog
 
-                  boxes cannot be iconized. However, applications may need to
 
-                  explicitly restore dialog boxes under Motif which have
 
-                  user-iconizable frames, and under Windows calling
 
-                  Iconize(@false) will bring the window to the front, as does
 
-                  Show(@true).
 
-     */
 
-     virtual void Iconize(bool iconize = true);
 
-     /**
 
-         Returns @true if the dialog box is iconized. Windows only.
 
-         @remarks Always returns @false under Windows since dialogs cannot be
 
-                  iconized.
 
-     */
 
-     virtual bool IsIconized() const;
 
-     /**
 
-         A static function returning @true if layout adaptation is enabled for
 
-         all dialogs.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     static bool IsLayoutAdaptationEnabled();
 
-     /**
 
-         Returns @true if @a id is in the array of identifiers to be regarded as
 
-         the main buttons for the non-scrolling area of a dialog.
 
-         @onlyfor{wxmsw}
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     bool IsMainButtonId(wxWindowID id) const;
 
-     /**
 
-         Returns @true if the dialog box is modal, @false otherwise.
 
-     */
 
-     virtual bool IsModal() const;
 
-     /**
 
-         Sets the identifier to be used as OK button. When the button with this
 
-         identifier is pressed, the dialog calls wxWindow::Validate() and
 
-         wxWindow::TransferDataFromWindow() and, if they both return @true,
 
-         closes the dialog with the affirmative id return code.
 
-         Also, when the user presses a hardware OK button on the devices having
 
-         one or the special OK button in the PocketPC title bar, an event with
 
-         this id is generated.
 
-         By default, the affirmative id is wxID_OK.
 
-         @see GetAffirmativeId(), SetEscapeId()
 
-     */
 
-     void SetAffirmativeId(int id);
 
-     /**
 
-         Sets the identifier of the button which should work like the standard
 
-         "Cancel" button in this dialog. When the button with this id is
 
-         clicked, the dialog is closed. Also, when the user presses @c ESC key
 
-         in the dialog or closes the dialog using the close button in the title
 
-         bar, this is mapped to the click of the button with the specified id.
 
-         By default, the escape id is the special value wxID_ANY meaning that
 
-         wxID_CANCEL button is used if it's present in the dialog and otherwise
 
-         the button with GetAffirmativeId() is used. Another special value for
 
-         @a id is wxID_NONE meaning that @c ESC presses should be ignored. If
 
-         any other value is given, it is interpreted as the id of the button to
 
-         map the escape key to.
 
-     */
 
-     void SetEscapeId(int id);
 
-     /**
 
-         Sets the icon for this dialog.
 
-         @param icon
 
-             The icon to associate with this dialog.
 
-         @see wxIcon
 
-     */
 
-     void SetIcon(const wxIcon& icon);
 
-     /**
 
-         Sets the icons for this dialog.
 
-         @param icons
 
-             The icons to associate with this dialog.
 
-         @see wxIconBundle
 
-     */
 
-     void SetIcons(const wxIconBundle& icons);
 
-     /**
 
-         Marks the dialog as having been adapted, usually by making it
 
-         scrollable to work with a small display.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     void SetLayoutAdaptationDone(bool done);
 
-     /**
 
-         Sets the aggressiveness of search for buttons and sizers to be in the
 
-         non-scrolling part of a layout-adapted dialog. Zero switches off
 
-         adaptation, and 3 allows search for standard buttons anywhere in the
 
-         dialog.
 
-         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
 
-     */
 
-     void SetLayoutAdaptationLevel(int level);
 
-     /**
 
-         Sets the adaptation mode, overriding the global adaptation flag.
 
-         @see wxDialogLayoutAdaptationMode, @ref overview_dialog_autoscrolling
 
-              (for more on layout adaptation)
 
-     */
 
-     void SetLayoutAdaptationMode(wxDialogLayoutAdaptationMode mode);
 
-     /**
 
-         A static function for setting the current layout adapter object,
 
-         returning the old adapter. If you call this, you should delete the old
 
-         adapter object.
 
-         @see wxDialogLayoutAdapter, @ref overview_dialog_autoscrolling
 
-     */
 
-     static wxDialogLayoutAdapter* SetLayoutAdapter(wxDialogLayoutAdapter* adapter);
 
-     /**
 
-         Sets the return code for this window.
 
-         A return code is normally associated with a modal dialog, where
 
-         ShowModal() returns a code to the application. The function EndModal()
 
-         calls SetReturnCode().
 
-         @param retCode
 
-             The integer return code, usually a control identifier.
 
-         @see GetReturnCode(), ShowModal(), EndModal()
 
-     */
 
-     void SetReturnCode(int retCode);
 
-     /**
 
-         Hides or shows the dialog. The preferred way of dismissing a modal
 
-         dialog is to use EndModal().
 
-         @param show
 
-             If @true, the dialog box is shown and brought to the front,
 
-             otherwise the box is hidden. If @false and the dialog is modal,
 
-             control is returned to the calling program.
 
-     */
 
-     virtual bool Show(bool show = 1);
 
-     /**
 
-         Shows an application-modal dialog.
 
-         Program flow does not return until the dialog has been dismissed with
 
-         EndModal().
 
-         Notice that it is possible to call ShowModal() for a dialog which had
 
-         been previously shown with Show(), this allows to make an existing
 
-         modeless dialog modal. However ShowModal() can't be called twice
 
-         without intervening EndModal() calls.
 
-         Note that this function creates a temporary event loop which takes
 
-         precedence over the application's main event loop (see wxEventLoopBase)
 
-         and which is destroyed when the dialog is dismissed.
 
-         This also results in a call to wxApp::ProcessPendingEvents().
 
-         @return The value set with SetReturnCode().
 
-         @see ShowWindowModal(), ShowWindowModalThenDo(),
 
-              EndModal(), GetReturnCode(), SetReturnCode()
 
-     */
 
-     virtual int ShowModal();
 
-     /**
 
-         Shows a dialog modal to the parent top level window only.
 
-         Unlike ShowModal(), dialogs shown with this function only prevent the
 
-         user from interacting with their parent frame only but not with the
 
-         rest of the application. They also don't block the program execution
 
-         but instead return immediately, as Show(), and generate a
 
-         wxEVT_WINDOW_MODAL_DIALOG_CLOSED event (wxWindowModalDialogEvent)
 
-         later when the dialog is closed.
 
-         Currently this function is only fully implemented in wxOSX ports, under
 
-         the other platforms it behaves like ShowModal() (but also sends the
 
-         above mentioned event).
 
-         @see wxWindowModalDialogEvent, ShowWindowModalThenDo()
 
-         @since 2.9.0
 
-      */
 
-     void ShowWindowModal();
 
-     /**
 
-         Shows a dialog modal to the parent top level window only and call a
 
-         functor after the dialog is closed.
 
-         Same as the other ShowWindowModal() overload, but calls the functor
 
-         passed as the argument upon completion, instead of generating the
 
-         wxEVT_WINDOW_MODAL_DIALOG_CLOSED event.
 
-         This form is particularly useful in combination with C++11 lambdas,
 
-         when it allows writing window-modal very similarly to how ShowModal()
 
-         is used (with the notable exception of not being able to create
 
-         the dialog on stack):
 
-         @code
 
-         wxWindowPtr<wxDialog> dlg(new wxMessageDialog(this, "Hello!"));
 
-         dlg->ShowWindowModalThenDo([this,dlg](int retcode){
 
-             if ( retcode == wxID_OK )
 
-                 DoSomething();
 
-             // dlg is implicitly destroyed here, because the pointer was
 
-             // explicitly captured by the lambda
 
-         });
 
-         @endcode
 
-         @param onEndModal  Function object to call when the dialog is
 
-                            closed. The functor is called with a single
 
-                            integer argument, dialog's return code.
 
-         @note The dialog instance must not be destroyed until @a onEndModal
 
-               is called. The best way to ensure that is to use wxWindowPtr
 
-               to hold a pointer and include it in the lambda's capture,
 
-               by value (not reference!), as shown in the example above.
 
-         @since 3.0
 
-         @see wxWindowPtr<T>
 
-      */
 
-     template<typename Functor>
 
-     void ShowWindowModalThenDo(const Functor& onEndModal);
 
- };
 
- /**
 
-     @class wxDialogLayoutAdapter
 
-     This abstract class is the base for classes that help wxWidgets perform
 
-     run-time layout adaptation of dialogs. Principally, this is to cater for
 
-     small displays by making part of the dialog scroll, but the application
 
-     developer may find other uses for layout adaption.
 
-     By default, there is one instance of wxStandardDialogLayoutAdapter which
 
-     can perform adaptation for most custom dialogs and dialogs with book
 
-     controls such as wxPropertySheetDialog.
 
-     @library{wxcore}
 
-     @category{winlayout}
 
-     @see @ref overview_dialog_autoscrolling
 
- */
 
- class wxDialogLayoutAdapter
 
- {
 
- public:
 
-     /**
 
-         Default constructor.
 
-     */
 
-     wxDialogLayoutAdapter();
 
-     /**
 
-         Override this to returns @true if adaptation can and should be done.
 
-     */
 
-     virtual bool CanDoLayoutAdaptation(wxDialog* dialog) = 0;
 
-     /**
 
-         Override this to perform layout adaptation, such as making parts of the
 
-         dialog scroll and resizing the dialog to fit the display. Normally this
 
-         function will be called just before the dialog is shown.
 
-     */
 
-     virtual bool DoLayoutAdaptation(wxDialog* dialog) = 0;
 
- };
 
- /**
 
-     Event sent by wxDialog::ShowWindowModal() when the dialog closes.
 
-     @since 2.9.0
 
-  */
 
- class wxWindowModalDialogEvent  : public wxCommandEvent
 
- {
 
- public:
 
-     /// Constructor
 
-     wxWindowModalDialogEvent (wxEventType commandType = wxEVT_NULL, int id = 0);
 
-     /// Return the corresponding dialog.
 
-     wxDialog *GetDialog() const;
 
-     /// Return the dialog's return code.
 
-     int GetReturnCode() const;
 
-     /// Clone the event.
 
-     virtual wxEvent *Clone() const;
 
- };
 
 
  |