X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e3a43801df2f05c057892481df9d3cfe30fd8800..b5a7cdc076ec7a35990b2da37a4b7b81a9cc8f85:/include/wx/proplist.h diff --git a/include/wx/proplist.h b/include/wx/proplist.h index 66f1a3c40c..5fdf1bdcce 100644 --- a/include/wx/proplist.h +++ b/include/wx/proplist.h @@ -46,7 +46,10 @@ #pragma interface "proplist.h" #endif +#if wxUSE_PROPSHEET + #include "wx/prop.h" +#include "wx/panel.h" #define wxPROP_BUTTON_CLOSE 1 #define wxPROP_BUTTON_OK 2 @@ -57,7 +60,9 @@ #define wxPROP_PULLDOWN 64 #define wxPROP_SHOWVALUES 128 -#ifdef __XVIEW__ +// Show OK/Cancel buttons on X-based systems where window management is +// more awkward +#if defined(__WXMOTIF__) || defined(__WXGTK__) #define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_OK | wxPROP_BUTTON_CANCEL | wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN #else #define wxPROP_BUTTON_DEFAULT wxPROP_BUTTON_CHECK_CROSS | wxPROP_PULLDOWN | wxPROP_SHOWVALUES @@ -71,7 +76,7 @@ #define wxID_PROP_VALUE_SELECT 3005 // Mediates between a physical panel and the property sheet -class wxPropertyListView: public wxPropertyView +class WXDLLEXPORT wxPropertyListView: public wxPropertyView { DECLARE_DYNAMIC_CLASS(wxPropertyListView) public: @@ -157,7 +162,7 @@ class wxPropertyListView: public wxPropertyView inline virtual wxButton *GetWindowCloseButton() const { return m_windowCloseButton; } inline virtual wxButton *GetWindowCancelButton() const { return m_windowCancelButton; } inline virtual wxButton *GetHelpButton() const { return m_windowHelpButton; } - + bool OnClose(void); public: @@ -170,33 +175,41 @@ public: wxButton* m_confirmButton; // A tick, as in VB wxButton* m_cancelButton; // A cross, as in VB wxButton* m_editButton; // Invokes the custom validator, if any + wxSizer* m_middleSizer; bool m_detailedEditing; // E.g. using listbox for choices - static wxBitmap* sm_tickBitmap; - static wxBitmap* sm_crossBitmap; - wxPanel* m_propertyWindow; // Panel that the controls will appear on wxWindow* m_managedWindow; // Frame or dialog - + wxButton* m_windowCloseButton; // Or OK wxButton* m_windowCancelButton; wxButton* m_windowHelpButton; DECLARE_EVENT_TABLE() +private: + virtual void ShowView(wxPropertySheet *propertySheet, wxWindow *window) + { wxPropertyView::ShowView(propertySheet, window); }; }; -class wxPropertyTextEdit: public wxTextCtrl +class WXDLLEXPORT wxPropertyTextEdit: public wxTextCtrl { - DECLARE_CLASS(wxPropertyTextEdit) - public: - wxPropertyTextEdit(wxPropertyListView *v, wxWindow *parent, const wxWindowID id, - const wxString& value, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, long style = 0, const wxString& name = "text"); - void OnSetFocus(void); - void OnKillFocus(void); +public: + wxPropertyTextEdit(wxPropertyListView *v = NULL, + wxWindow *parent = NULL, + const wxWindowID id = -1, + const wxString& value = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = _T("text")); - wxPropertyListView* m_view; + void OnSetFocus(); + void OnKillFocus(); + + wxPropertyListView* m_view; + + DECLARE_CLASS(wxPropertyTextEdit) }; #define wxPROP_ALLOW_TEXT_EDITING 1 @@ -204,8 +217,8 @@ class wxPropertyTextEdit: public wxTextCtrl /* * The type of validator used for property lists (Visual Basic style) */ - -class wxPropertyListValidator: public wxPropertyValidator + +class WXDLLEXPORT wxPropertyListValidator: public wxPropertyValidator { DECLARE_DYNAMIC_CLASS(wxPropertyListValidator) protected: @@ -219,7 +232,7 @@ class wxPropertyListValidator: public wxPropertyValidator // Called when the property is double clicked. Extra functionality can be provided, such as // cycling through possible values. - inline virtual bool OnDoubleClick( + inline virtual bool OnDoubleClick( wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) ) { return TRUE; } @@ -266,93 +279,108 @@ class wxPropertyListValidator: public wxPropertyValidator /* * A default dialog box class to use. */ - -class wxPropertyListDialog: public wxDialog -{ - DECLARE_CLASS(wxPropertyListDialog) - public: - wxPropertyListDialog(wxPropertyListView *v, wxWindow *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_DIALOG_STYLE, const wxString& name = "dialogBox"); - bool OnClose(void); - void OnDefaultAction(wxControl *item); - void OnCancel(wxCommandEvent& event); - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - private: - wxPropertyListView* m_view; - -DECLARE_EVENT_TABLE() +class WXDLLEXPORT wxPropertyListDialog: public wxDialog +{ +public: + wxPropertyListDialog(wxPropertyListView *v = NULL, + wxWindow *parent = NULL, + const wxString& title = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_DIALOG_STYLE, + const wxString& name = _T("dialogBox")); + + void OnCloseWindow(wxCloseEvent& event); + void OnDefaultAction(wxControl *item); + void OnCancel(wxCommandEvent& event); + + // Extend event processing to search the view's event table + virtual bool ProcessEvent(wxEvent& event); + +private: + wxPropertyListView* m_view; + + DECLARE_CLASS(wxPropertyListDialog) + DECLARE_EVENT_TABLE() }; /* * A default panel class to use. */ - -class wxPropertyListPanel: public wxPanel -{ - DECLARE_CLASS(wxPropertyListPanel) - public: - wxPropertyListPanel(wxPropertyListView *v, wxWindow *parent, const wxPoint& pos = wxDefaultPosition, - const wxSize& size = wxDefaultSize, - long style = 0, const wxString& name = "panel"): - wxPanel(parent, -1, pos, size, style, name) - { - m_view = v; - } - ~wxPropertyListPanel(); - void OnDefaultAction(wxControl *item); - inline void SetView(wxPropertyListView* v) { m_view = v; } - inline wxPropertyListView* GetView() const { return m_view; } - - // Extend event processing to search the view's event table - virtual bool ProcessEvent(wxEvent& event); - - // Call Layout() - void OnSize(wxSizeEvent& event); - - private: - wxPropertyListView* m_view; - -DECLARE_EVENT_TABLE() +class WXDLLEXPORT wxPropertyListPanel: public wxPanel +{ +public: + wxPropertyListPanel(wxPropertyListView *v = NULL, + wxWindow *parent = NULL, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = 0, + const wxString& name = _T("panel")) + : wxPanel(parent, -1, pos, size, style, name) + { + m_view = v; + } + ~wxPropertyListPanel(); + void OnDefaultAction(wxControl *item); + + inline void SetView(wxPropertyListView* v) { m_view = v; } + inline wxPropertyListView* GetView() const { return m_view; } + + // Extend event processing to search the view's event table + virtual bool ProcessEvent(wxEvent& event); + + // Call Layout() + void OnSize(wxSizeEvent& event); + +private: + wxPropertyListView* m_view; + + DECLARE_EVENT_TABLE() + DECLARE_CLASS(wxPropertyListPanel) }; /* * A default frame class to use. */ - -class wxPropertyListFrame: public wxFrame -{ - DECLARE_CLASS(wxPropertyListFrame) - public: - wxPropertyListFrame(wxPropertyListView *v, wxFrame *parent, const wxString& title, - const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, - long style = wxDEFAULT_FRAME, const wxString& name = "frame"): - wxFrame(parent, -1, title, pos, size, style, name) - { - m_view = v; - m_propertyPanel = NULL; - } - bool OnClose(void); - - // Must call this to create panel and associate view - virtual bool Initialize(void); - virtual wxPropertyListPanel *OnCreatePanel(wxFrame *parent, wxPropertyListView *v); - inline virtual wxPropertyListPanel *GetPropertyPanel(void) const { return m_propertyPanel; } - private: - wxPropertyListView* m_view; - wxPropertyListPanel* m_propertyPanel; +class WXDLLEXPORT wxPropertyListFrame: public wxFrame +{ +public: + wxPropertyListFrame(wxPropertyListView *v = NULL, + wxFrame *parent = NULL, + const wxString& title = wxEmptyString, + const wxPoint& pos = wxDefaultPosition, + const wxSize& size = wxDefaultSize, + long style = wxDEFAULT_FRAME_STYLE, + const wxString& name = _T("frame")) + : wxFrame(parent, -1, title, pos, size, style, name) + { + m_view = v; + m_propertyPanel = NULL; + } + void OnCloseWindow(wxCloseEvent& event); + + // Must call this to create panel and associate view + virtual bool Initialize(void); + virtual wxPropertyListPanel *OnCreatePanel(wxFrame *parent, wxPropertyListView *v); + inline virtual wxPropertyListPanel *GetPropertyPanel(void) const { return m_propertyPanel; } + inline wxPropertyListView* GetView() const { return m_view; } + +private: + wxPropertyListView* m_view; + wxPropertyListPanel* m_propertyPanel; + + DECLARE_EVENT_TABLE() + DECLARE_CLASS(wxPropertyListFrame) }; /* * Some default validators */ - -class wxRealListValidator: public wxPropertyListValidator + +class WXDLLEXPORT wxRealListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxRealListValidator) public: @@ -379,7 +407,7 @@ class wxRealListValidator: public wxPropertyListValidator float m_realMax; }; -class wxIntegerListValidator: public wxPropertyListValidator +class WXDLLEXPORT wxIntegerListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxIntegerListValidator) public: @@ -406,7 +434,7 @@ class wxIntegerListValidator: public wxPropertyListValidator long m_integerMax; }; -class wxBoolListValidator: public wxPropertyListValidator +class WXDLLEXPORT wxBoolListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxBoolListValidator) protected: @@ -435,7 +463,7 @@ class wxBoolListValidator: public wxPropertyListValidator virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); }; -class wxStringListValidator: public wxPropertyListValidator +class WXDLLEXPORT wxStringListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxStringListValidator) public: @@ -468,12 +496,12 @@ class wxStringListValidator: public wxPropertyListValidator protected: wxStringList* m_strings; }; - -class wxFilenameListValidator: public wxPropertyListValidator + +class WXDLLEXPORT wxFilenameListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxFilenameListValidator) public: - wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = "*.*", long flags = 0); + wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = wxALL_FILES_PATTERN, long flags = 0); ~wxFilenameListValidator(void); @@ -497,10 +525,10 @@ class wxFilenameListValidator: public wxPropertyListValidator protected: wxString m_filenameWildCard; wxString m_filenameMessage; - + }; -class wxColourListValidator: public wxPropertyListValidator +class WXDLLEXPORT wxColourListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxColourListValidator) protected: @@ -521,7 +549,7 @@ class wxColourListValidator: public wxPropertyListValidator void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); }; -class wxListOfStringsListValidator: public wxPropertyListValidator +class WXDLLEXPORT wxListOfStringsListValidator: public wxPropertyListValidator { DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator) protected: @@ -547,11 +575,14 @@ class wxListOfStringsListValidator: public wxPropertyListValidator // Called when the property is double clicked. bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); - bool EditStringList(wxWindow *parent, wxStringList *stringList, const char *title = "String List Editor"); + bool EditStringList(wxWindow *parent, wxStringList *stringList, const wxChar *title = wxT("String List Editor")); // Called when the edit (...) button is pressed. void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow); }; +#endif + // wxUSE_PROPSHEET + #endif // _WX_PROPLIST_H_