]> git.saurik.com Git - wxWidgets.git/commitdiff
Add wxPreferencesEditor::ShownModally().
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 May 2013 14:43:06 +0000 (14:43 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 May 2013 14:43:06 +0000 (14:43 +0000)
While this is not necessary to use wxPreferencesEditor in normal scenario, it
can be useful if the program needs to handle modal dialogs in some special way.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74009 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/preferences.h
include/wx/private/preferences.h
interface/wx/preferences.h

index 935c7b1875db9393f903143fc1999ec093c7900c..ab1e0a2c99cd081e3de0299231f85c00f6dabb71 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
 
 // ----------------------------------------------------------------------------
@@ -117,6 +121,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;
 
index f68893a99de4e83cf18c7569853267eecb3f072b..7d0cb292fcf5e3d0e3569cda92e88d7b07795fb1 100644 (file)
     #define wxHAS_PREF_EDITOR_NATIVE
 #endif
 
-#if defined(__WXOSX__) || defined(__WXGTK__)
-    #define wxHAS_PREF_EDITOR_MODELESS
-#endif
-
 // ----------------------------------------------------------------------------
 // wxPreferencesEditorImpl: defines wxPreferencesEditor implementation.
 // ----------------------------------------------------------------------------
index 656ce907c17ae03abcba457bdf683802c6611390..161d78755c97c52913ce87414ba0ceeed3319245 100644 (file)
@@ -98,6 +98,23 @@ public:
         in this case as well.
      */
     static bool ShouldApplyChangesImmediately()
+
+    /**
+        Returns whether the preferences dialog is shown modally.
+
+        If this method returns false, as it currently does in wxGTK and wxOSX,
+        Show() simply makes the dialog visible and returns immediately. If it
+        returns true, as it does in wxMSW and under the other platforms, then
+        the dialog is shown modally, i.e. Show() blocks until the user
+        dismisses it.
+
+        Notice that it isn't necessary to test the return value of this method
+        to use this class normally, its interface is designed to work in both
+        cases. However it can sometimes be necessary to call it if the program
+        needs to handle modal dialogs specially, e.g. perhaps to block some
+        periodic background update operation while a modal dialog is shown.
+     */
+    static bool ShownModally();
 };