| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        interface/wx/preferences.h
 
- // Purpose:     wxPreferencesEditor class documentation.
 
- // Author:      Vaclav Slavik
 
- // Created:     2013-02-26
 
- // Copyright:   (c) 2013 Vaclav Slavik <vslavik@fastmail.fm>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- /**
 
-     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.
 
-     @note 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}
 
-     @since 2.9.5
 
-  */
 
- class wxPreferencesEditor
 
- {
 
- public:
 
-     /**
 
-         Constructor.
 
-         Creates an empty editor, use AddPage() to add controls to it.
 
-         @param title The 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(const wxString& title = wxString());
 
-     /**
 
-         Destructor.
 
-         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.
 
-      */
 
-     ~wxPreferencesEditor();
 
-     /**
 
-         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 wxPreferencesPage, wxStockPreferencesPage
 
-      */
 
-     void AddPage(wxPreferencesPage *page);
 
-     /**
 
-         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.
 
-         @param parent The window that invokes the preferences.
 
-                       Call Dismiss() before it's destroyed.
 
-      */
 
-     virtual void Show(wxWindow* parent);
 
-     /**
 
-         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.
 
-      */
 
-     void Dismiss();
 
-     /**
 
-         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.
 
-      */
 
-     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();
 
- };
 
- /**
 
-     One page of preferences dialog.
 
-     This is the base class for implementation of application's preferences. Its
 
-     methods return various properties of the page, such as title or icon. The
 
-     actual page is created by CreateWindow().
 
-     @see wxStockPreferencesPage
 
-     @library{wxcore}
 
-     @since 2.9.5
 
-  */
 
- class wxPreferencesPage
 
- {
 
- public:
 
-     /// Constructor.
 
-     wxPreferencesPage();
 
-     /// Destructor.
 
-     virtual ~wxPreferencesPage();
 
-     /**
 
-         Return name of the page.
 
-         The name is used for notebook tab's label, icon label etc., depending
 
-         on the platform.
 
-      */
 
-     virtual wxString GetName() const = 0;
 
-     /**
 
-         Return 32x32 icon used for the page on some platforms.
 
-         Currently only used on OS X.
 
-         @note This method is only pure virtual on platforms that require it
 
-               (OS X). On other platforms, it has default implementation that
 
-               returns an invalid bitmap. The preprocessor symbol
 
-               `wxHAS_PREF_EDITOR_ICONS` is defined if this method must be
 
-               implemented.
 
-      */
 
-     virtual wxBitmap GetLargeIcon() const = 0;
 
-     /**
 
-         Create a window for this page.
 
-         The window will be placed into the preferences dialog in
 
-         platform-specific manner. Depending on the platform, this method may
 
-         be called before showing the preferences window, when switching to its
 
-         tab or even more than once. Don't make assumptions about the number of
 
-         times or the specific time when it is called.
 
-         The caller takes ownership of the window.
 
-         wxPanel is usually used, but doesn't have to be.
 
-         @param parent Parent window to use.
 
-      */
 
-     virtual wxWindow *CreateWindow(wxWindow *parent) = 0;
 
- };
 
- /**
 
-     Specialization of wxPreferencesPage useful for certain commonly used
 
-     preferences page.
 
-     On OS X, preferences pages named "General" and "Advanced" are commonly used
 
-     in apps and the OS provides stock icons for them that should be used.
 
-     Instead of reimplementing this behavior yourself, you can inherit from
 
-     wxStockPreferencesPage and get correct title and icon.
 
-     Notice that this class only implements GetName() and GetLargeIcon(), you
 
-     still have to provide the rest of wxPreferencesPage implementation.
 
-     @library{wxcore}
 
-     @since 2.9.5
 
-  */
 
- class wxStockPreferencesPage : public wxPreferencesPage
 
- {
 
- public:
 
-     /// Kinds of stock pages.
 
-     enum Kind
 
-     {
 
-         /// The "General" page
 
-         Kind_General,
 
-         /// The "Advanced" page
 
-         Kind_Advanced
 
-     };
 
-     /// Constructor.
 
-     wxStockPreferencesPage(Kind kind);
 
-     /// Returns the page's kind.
 
-     Kind GetKind() const;
 
-     /// Reimplemented to return suitable name for the page's kind.
 
-     virtual wxString GetName() const;
 
-     /// Reimplemented to return stock icon on OS X.
 
-     virtual wxBitmap GetLargeIcon() const;
 
- };
 
 
  |