Version: 3.0.3
wxPreferencesEditor Class Reference

#include <wx/preferences.h>

Detailed Description

Manage preferences dialog.

This class encapsulates the differences – both in appearance and behaviour – between preferences dialogs on different platforms. In particular, OS X preferences look very different from the typical notebook control used on other platforms, and both OS X and GTK+ preferences windows are modeless unlike Windows options dialogs that are typically modal.

wxPreferencesEditor is able to hide the differences by hiding the creation of preferences window from the API. Instead, you create an instance of wxPreferencesEditor and add page descriptions in the form of wxPreferencesPage using its AddPage() method. After setting up the editor object, you must call Show() to present preferences to the user.

Notice that this class is not derived from wxWindow and hence doesn't represent a window, even if its Show() method does create one internally.

Library:  wxCore

Public Member Functions

 wxPreferencesEditor (const wxString &title=wxString())
 Constructor. More...
 ~wxPreferencesEditor ()
 Destructor. More...
void AddPage (wxPreferencesPage *page)
 Add a new page to the editor. More...
virtual void Show (wxWindow *parent)
 Show the preferences dialog or bring it to the top if it's already shown. More...
void Dismiss ()
 Hide the currently shown dialog, if any. More...

Static Public Member Functions

static bool ShouldApplyChangesImmediately () static bool ShownModally()
 Returns whether changes to values in preferences pages should be applied immediately or only when the user clicks the OK button. More...

Constructor & Destructor Documentation

wxPreferencesEditor::wxPreferencesEditor ( const wxString title = wxString())


Creates an empty editor, use AddPage() to add controls to it.

titleThe title overriding the default title of the top level window used by the editor. It is recommended to not specify this parameter to use the native convention for the preferences dialogs instead.
wxPreferencesEditor::~wxPreferencesEditor ( )


Destroying this object hides the associated preferences window if it is open at the moment.

The destructor is non-virtual as this class is not supposed to be derived from.

Member Function Documentation

void wxPreferencesEditor::AddPage ( wxPreferencesPage page)

Add a new page to the editor.

The editor takes ownership of the page and will delete it from its destructor (but not sooner).

See also
wxPreferencesPage, wxStockPreferencesPage
void wxPreferencesEditor::Dismiss ( )

Hide the currently shown dialog, if any.

This is typically called to dismiss the dialog if the object whose preferences it is editing was closed.

static bool wxPreferencesEditor::ShouldApplyChangesImmediately ( )

Returns whether changes to values in preferences pages should be applied immediately or only when the user clicks the OK button.

Currently, changes are applied immediately on OS X and GTK+.

The preprocessor macro wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY is defined in this case as well. 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.

virtual void wxPreferencesEditor::Show ( wxWindow parent)

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.

parentThe window that invokes the preferences. Call Dismiss() before it's destroyed.