#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
// ----------------------------------------------------------------------------
class WXDLLIMPEXP_CORE wxPreferencesPage
{
public:
+ wxPreferencesPage() {}
virtual ~wxPreferencesPage() {}
// Name of the page, used e.g. for tabs
{
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.
// 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();
#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;