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
#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
// ----------------------------------------------------------------------------
#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;
#define wxHAS_PREF_EDITOR_NATIVE
#endif
-#if defined(__WXOSX__) || defined(__WXGTK__)
- #define wxHAS_PREF_EDITOR_MODELESS
-#endif
-
// ----------------------------------------------------------------------------
// wxPreferencesEditorImpl: defines wxPreferencesEditor implementation.
// ----------------------------------------------------------------------------
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();
};