| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 | 
							- ///////////////////////////////////////////////////////////////////////////////
 
- // Name:        wx/preferences.h
 
- // Purpose:     Declaration of wxPreferencesEditor class.
 
- // Author:      Vaclav Slavik
 
- // Created:     2013-02-19
 
- // Copyright:   (c) 2013 Vaclav Slavik <vslavik@fastmail.fm>
 
- // Licence:     wxWindows licence
 
- ///////////////////////////////////////////////////////////////////////////////
 
- #ifndef _WX_PREFERENCES_H_
 
- #define _WX_PREFERENCES_H_
 
- #include "wx/defs.h"
 
- #if wxUSE_PREFERENCES_EDITOR
 
- #include "wx/bitmap.h"
 
- #include "wx/vector.h"
 
- class WXDLLIMPEXP_FWD_CORE wxWindow;
 
- class wxPreferencesEditorImpl;
 
- #if defined(__WXOSX_COCOA__)
 
-     // GetLargeIcon() is used
 
-     #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
 
- // ----------------------------------------------------------------------------
 
- // wxPreferencesEditor: Native preferences editing
 
- // ----------------------------------------------------------------------------
 
- // One page of a preferences window
 
- class WXDLLIMPEXP_CORE wxPreferencesPage
 
- {
 
- public:
 
-     wxPreferencesPage() {}
 
-     virtual ~wxPreferencesPage() {}
 
-     // Name of the page, used e.g. for tabs
 
-     virtual wxString GetName() const = 0;
 
-     // Return 32x32 icon used for the page. Currently only used on OS X, where
 
-     // implementation is required; unused on other platforms. Because of this,
 
-     // the method is only pure virtual on platforms that use it.
 
- #ifdef wxHAS_PREF_EDITOR_ICONS
 
-     virtual wxBitmap GetLargeIcon() const = 0;
 
- #else
 
-     virtual wxBitmap GetLargeIcon() const { return wxBitmap(); }
 
- #endif
 
-     // Create a window (usually a wxPanel) for this page. The caller takes
 
-     // ownership of the returned window.
 
-     virtual wxWindow *CreateWindow(wxWindow *parent) = 0;
 
-     wxDECLARE_NO_COPY_CLASS(wxPreferencesPage);
 
- };
 
- // Helper for implementing some common pages (General, Advanced)
 
- class WXDLLIMPEXP_CORE wxStockPreferencesPage : public wxPreferencesPage
 
- {
 
- public:
 
-     enum Kind
 
-     {
 
-         Kind_General,
 
-         Kind_Advanced
 
-     };
 
-     wxStockPreferencesPage(Kind kind) : m_kind(kind) {}
 
-     Kind GetKind() const { return m_kind; }
 
-     virtual wxString GetName() const;
 
- #ifdef __WXOSX_COCOA__
 
-     virtual wxBitmap GetLargeIcon() const;
 
- #endif
 
- private:
 
-     Kind m_kind;
 
- };
 
- // Notice that this class does not inherit from wxWindow.
 
- class WXDLLIMPEXP_CORE wxPreferencesEditor
 
- {
 
- public:
 
-     // Ctor creates an empty editor, use AddPage() to add controls to it.
 
-     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.
 
-     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.
 
-     virtual void Show(wxWindow* parent);
 
-     // 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();
 
-     // Whether changes to values in the pages should be applied immediately
 
-     // (OS X, GTK+) or only when the user clicks OK/Apply (Windows)
 
-     static bool ShouldApplyChangesImmediately()
 
-     {
 
- #ifdef wxHAS_PREF_EDITOR_APPLY_IMMEDIATELY
 
-         return true;
 
- #else
 
-         return false;
 
- #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_
 
 
  |