]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/dialog.h
Implement wx-prefixed macros versions of DECLARE/IMPLEMENT*CLASS macros.
[wxWidgets.git] / interface / wx / dialog.h
index 3052b2e0e57fdc871638ecc7bde7ee3a5c9c8ff5..4cf131dd17e159ec0d5f324125a793756a97f7e9 100644 (file)
@@ -18,7 +18,6 @@ enum wxDialogLayoutAdaptationMode
 
 /**
     @class wxDialog
-    @wxheader{dialog.h}
 
     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
@@ -126,6 +125,18 @@ enum wxDialogLayoutAdaptationMode
     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}
 
@@ -168,13 +179,16 @@ public:
              const wxPoint& pos = wxDefaultPosition,
              const wxSize& size = wxDefaultSize,
              long style = wxDEFAULT_DIALOG_STYLE,
-             const wxString& name = "dialogBox");
+             const wxString& name = wxDialogNameStr);
 
     /**
-        Destructor. Deletes any child windows before deleting the physical
-        window.
+        Destructor.
+
+        Deletes any child windows before deleting the physical window.
+
+        See @ref overview_windowdeletion for more info.
     */
-    ~wxDialog();
+    virtual ~wxDialog();
 
     /**
         Adds an identifier to be regarded as a main button for the
@@ -191,7 +205,7 @@ public:
 
         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
     */
-    bool CanDoLayoutAdapation();
+    virtual bool CanDoLayoutAdaptation();
 
     /**
         Centres the dialog box on the display.
@@ -210,7 +224,7 @@ public:
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
                 long style = wxDEFAULT_DIALOG_STYLE,
-                const wxString& name = "dialogBox");
+                const wxString& name = wxDialogNameStr);
 
     /**
         Creates a sizer with standard buttons. @a flags is a bit list of the
@@ -252,7 +266,7 @@ public:
 
         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
     */
-    bool DoLayoutAdapation();
+    virtual bool DoLayoutAdaptation();
 
     /**
         This function is called when the titlebar OK button is pressed
@@ -260,6 +274,8 @@ public:
         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();
 
@@ -280,7 +296,7 @@ public:
 
         @see ShowModal(), GetReturnCode(), SetReturnCode()
     */
-    void EndModal(int retCode);
+    virtual void EndModal(int retCode);
 
     /**
         Gets the identifier of the button which works like standard OK button
@@ -297,7 +313,7 @@ public:
         @ref overview_dialog "layout adaptation code" to know that only the
         pages need to be made scrollable.
     */
-    wxWindow* GetContentWindow() const;
+    virtual wxWindow* GetContentWindow() const;
 
     /**
         Gets the identifier of the button to map presses of @c ESC button to.
@@ -322,7 +338,7 @@ public:
 
         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
     */
-    int GetLayoutAdaptationLevel();
+    int GetLayoutAdaptationLevel() const;
 
     /**
         Gets the adaptation mode, overriding the global adaptation flag.
@@ -344,7 +360,7 @@ public:
 
         @see @ref overview_dialog_autoscrolling (for more on layout adaptation)
     */
-    wxArrayInt GetMainButtonIds();
+    wxArrayInt& GetMainButtonIds();
 
     /**
         Gets the return code for this window.
@@ -354,7 +370,7 @@ public:
 
         @see SetReturnCode(), ShowModal(), EndModal()
     */
-    int GetReturnCode();
+    int GetReturnCode() const;
 
     /**
         On PocketPC, a dialog is automatically provided with an empty toolbar.
@@ -363,6 +379,8 @@ public:
         supported.
 
         This function is not available on any other platform.
+
+        @onlyfor{wxmsw}
     */
     wxToolBar* GetToolBar() const;
 
@@ -379,7 +397,7 @@ public:
                  Iconize(@false) will bring the window to the front, as does
                  Show(@true).
     */
-    void Iconize(bool iconize);
+    virtual void Iconize(bool iconize = true);
 
     /**
         Returns @true if the dialog box is iconized. Windows only.
@@ -387,7 +405,7 @@ public:
         @remarks Always returns @false under Windows since dialogs cannot be
                  iconized.
     */
-    bool IsIconized() const;
+    virtual bool IsIconized() const;
 
     /**
         A static function returning @true if layout adaptation is enabled for
@@ -401,14 +419,16 @@ public:
         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 IsMainButton(wxWindowID& id) const;
+    bool IsMainButtonId(wxWindowID id) const;
 
     /**
         Returns @true if the dialog box is modal, @false otherwise.
     */
-    bool IsModal() const;
+    virtual bool IsModal() const;
 
     /**
         The default handler for wxEVT_SYS_COLOUR_CHANGED.
@@ -550,7 +570,7 @@ public:
             otherwise the box is hidden. If @false and the dialog is modal,
             control is returned to the calling program.
     */
-    bool Show(bool show);
+    virtual bool Show(bool show = 1);
 
     /**
         Shows a modal dialog.
@@ -563,18 +583,22 @@ public:
         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 EndModal(), GetReturnCode(), SetReturnCode()
     */
-    int ShowModal();
+    virtual int ShowModal();
 };
 
 
 
 /**
     @class wxDialogLayoutAdapter
-    @wxheader{dialog.h}
 
     This abstract class is the base for classes that help wxWidgets peform
     run-time layout adaptation of dialogs. Principally, this is to cater for
@@ -601,13 +625,13 @@ public:
     /**
         Override this to returns @true if adaptation can and should be done.
     */
-    bool CanDoLayoutAdaptation(wxDialog* dialog);
+    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.
     */
-    bool DoLayoutAdaptation(wxDialog* dialog);
+    virtual bool DoLayoutAdaptation(wxDialog* dialog) = 0;
 };