// Purpose: Declaration of wxPreferencesEditor class.
// Author: Vaclav Slavik
// Created: 2013-02-19
-// RCS-ID: $Id$
// Copyright: (c) 2013 Vaclav Slavik <vslavik@fastmail.fm>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#define _WX_PREFERENCES_H_
#include "wx/defs.h"
+
+#if wxUSE_PREFERENCES_EDITOR
+
#include "wx/bitmap.h"
#include "wx/vector.h"
#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
// ----------------------------------------------------------------------------
{
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;
wxDECLARE_NO_COPY_CLASS(wxPreferencesEditor);
};
+#endif // wxUSE_PREFERENCES_EDITOR
+
#endif // _WX_PREFERENCES_H_