]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/preferences.h
Applied rowspan patch #15276 (dghart)
[wxWidgets.git] / include / wx / preferences.h
index 42f66c5910693f76654a5ddcf0620b83d8e80b7c..fb6387a0757a8314ae8d66c0c01e189add01354b 100644 (file)
@@ -24,9 +24,13 @@ class wxPreferencesEditorImpl;
     #define wxHAS_PREF_EDITOR_ICONS
     // Changes should be applied immediately
     #define wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY
+    // The dialog is shown non-modally.
+    #define wxHAS_PREF_EDITOR_MODELESS
 #elif defined(__WXGTK__)
     // Changes should be applied immediately
     #define wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY
+    // The dialog is shown non-modally.
+    #define wxHAS_PREF_EDITOR_MODELESS
 #endif
 
 // ----------------------------------------------------------------------------
@@ -88,8 +92,10 @@ class WXDLLIMPEXP_CORE wxPreferencesEditor
 {
 public:
     // Ctor creates an empty editor, use AddPage() to add controls to it.
-    wxPreferencesEditor();
-    ~wxPreferencesEditor();
+    wxPreferencesEditor(const wxString& title = wxString());
+
+    // Dtor destroys the dialog if still shown.
+    virtual ~wxPreferencesEditor();
 
     // Add a new page to the editor. The editor takes ownership of the page
     // and won't delete it until it is destroyed itself.
@@ -98,10 +104,9 @@ public:
     // Show the preferences dialog or bring it to the top if it's already
     // shown. Notice that this method may or may not block depending on the
     // platform, i.e. depending on whether the dialog is modal or not.
-    void Show(wxWindow* parent);
+    virtual void Show(wxWindow* parent);
 
-    // Hide the currently shown dialog, if any. This doesn't do anything on the
-    // platforms using modal preferences dialogs but should be called to
+    // Hide the currently shown dialog, if any. This is typically used to
     // dismiss the dialog if the object whose preferences it is editing was
     // closed.
     void Dismiss();
@@ -117,6 +122,16 @@ public:
 #endif
     }
 
+    // Whether the dialog is shown modally, i.e. Show() blocks, or not.
+    static bool ShownModally()
+    {
+#ifdef wxHAS_PREF_EDITOR_MODELESS
+        return false;
+#else
+        return true;
+#endif
+    }
+
 private:
     wxPreferencesEditorImpl* m_impl;