git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@11606 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			589 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			589 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        proplist.h
 | 
						|
// Purpose:     Property list classes
 | 
						|
// Author:      Julian Smart
 | 
						|
// Modified by:
 | 
						|
// Created:     04/01/98
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c) Julian Smart
 | 
						|
// Licence:   	wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
 /*
 | 
						|
 | 
						|
 TO DO:
 | 
						|
 | 
						|
 (1) Optional popup-help for each item, and an optional Help button
 | 
						|
   for dialog.
 | 
						|
 | 
						|
 (2) Align Ok, Cancel, Help buttons properly.
 | 
						|
 | 
						|
 (3) Consider retrieving the rectangle on the panel that can be
 | 
						|
 drawn into (where the value listbox is) and giving an example
 | 
						|
 of editing graphically. May be too fancy.
 | 
						|
 | 
						|
 (4) Deriveable types for wxPropertyValue => may need to reorganise
 | 
						|
 wxPropertyValue to use inheritance rather than present all-types-in-one
 | 
						|
 scheme.
 | 
						|
 | 
						|
 (5) Optional popup panel for value list, perhaps.
 | 
						|
 | 
						|
 (6) Floating point checking routine still crashes with Floating
 | 
						|
 point error for zany input.
 | 
						|
 | 
						|
 (7) Property sheet with choice (or listbox) to select alternative
 | 
						|
 sheets... multiple views per panel, only one active. For this
 | 
						|
 we really need a wxChoice that can be dynamically set: XView
 | 
						|
 may be a problem; Motif?
 | 
						|
 | 
						|
 (8) More example validators, e.g. colour selector.
 | 
						|
  */
 | 
						|
 | 
						|
#ifndef _WX_PROPLIST_H_
 | 
						|
#define _WX_PROPLIST_H_
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#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
 | 
						|
#define wxPROP_BUTTON_CANCEL      4
 | 
						|
#define wxPROP_BUTTON_CHECK_CROSS 8
 | 
						|
#define wxPROP_BUTTON_HELP        16
 | 
						|
#define wxPROP_DYNAMIC_VALUE_FIELD 32
 | 
						|
#define wxPROP_PULLDOWN           64
 | 
						|
#define wxPROP_SHOWVALUES         128
 | 
						|
 | 
						|
// 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
 | 
						|
#endif
 | 
						|
 | 
						|
#define wxID_PROP_CROSS     3000
 | 
						|
#define wxID_PROP_CHECK     3001
 | 
						|
#define wxID_PROP_EDIT      3002
 | 
						|
#define wxID_PROP_TEXT      3003
 | 
						|
#define wxID_PROP_SELECT    3004
 | 
						|
#define wxID_PROP_VALUE_SELECT  3005
 | 
						|
 | 
						|
// Mediates between a physical panel and the property sheet
 | 
						|
class WXDLLEXPORT wxPropertyListView: public wxPropertyView
 | 
						|
{
 | 
						|
 DECLARE_DYNAMIC_CLASS(wxPropertyListView)
 | 
						|
 public:
 | 
						|
  wxPropertyListView(wxPanel *propPanel = NULL, long flags = wxPROP_BUTTON_DEFAULT);
 | 
						|
  ~wxPropertyListView(void);
 | 
						|
 | 
						|
  // Associates and shows the view
 | 
						|
  virtual void ShowView(wxPropertySheet *propertySheet, wxPanel *panel);
 | 
						|
 | 
						|
  // Update this view of the viewed object, called e.g. by
 | 
						|
  // the object itself.
 | 
						|
  virtual bool OnUpdateView(void);
 | 
						|
 | 
						|
  wxString MakeNameValueString(wxString name, wxString value);
 | 
						|
 | 
						|
  // Update a single line in the list of properties
 | 
						|
  virtual bool UpdatePropertyDisplayInList(wxProperty *property);
 | 
						|
 | 
						|
  // Update the whole list
 | 
						|
  virtual bool UpdatePropertyList(bool clearEditArea = TRUE);
 | 
						|
 | 
						|
  // Find the wxListBox index corresponding to this property
 | 
						|
  virtual int FindListIndexForProperty(wxProperty *property);
 | 
						|
 | 
						|
  // Select and show string representation in editor the given
 | 
						|
  // property. NULL resets to show no property.
 | 
						|
  virtual bool ShowProperty(wxProperty *property, bool select = TRUE);
 | 
						|
  virtual bool EditProperty(wxProperty *property);
 | 
						|
 | 
						|
  // Update the display from the property
 | 
						|
  virtual bool DisplayProperty(wxProperty *property);
 | 
						|
  // Update the property from the display
 | 
						|
  virtual bool RetrieveProperty(wxProperty *property);
 | 
						|
 | 
						|
  // Find appropriate validator and load property into value controls
 | 
						|
  virtual bool BeginShowingProperty(wxProperty *property);
 | 
						|
  // Find appropriate validator and unload property from value controls
 | 
						|
  virtual bool EndShowingProperty(wxProperty *property);
 | 
						|
 | 
						|
  // Begin detailed editing (e.g. using value listbox)
 | 
						|
  virtual void BeginDetailedEditing(void);
 | 
						|
 | 
						|
  // End detailed editing (e.g. using value listbox)
 | 
						|
  virtual void EndDetailedEditing(void);
 | 
						|
 | 
						|
  // Called by the property listbox
 | 
						|
  void OnPropertySelect(wxCommandEvent& event);
 | 
						|
 | 
						|
  // Called by the value listbox
 | 
						|
  void OnValueListSelect(wxCommandEvent& event);
 | 
						|
 | 
						|
  virtual bool CreateControls(void);
 | 
						|
  virtual void ShowTextControl(bool show);
 | 
						|
  virtual void ShowListBoxControl(bool show);
 | 
						|
  virtual void EnableCheck(bool show);
 | 
						|
  virtual void EnableCross(bool show);
 | 
						|
 | 
						|
  void OnOk(wxCommandEvent& event);
 | 
						|
  void OnCancel(wxCommandEvent& event);
 | 
						|
  void OnHelp(wxCommandEvent& event);
 | 
						|
  void OnPropertyDoubleClick(wxCommandEvent& event);
 | 
						|
//  virtual void OnDoubleClick(void);
 | 
						|
 | 
						|
  void OnCheck(wxCommandEvent& event);
 | 
						|
  void OnCross(wxCommandEvent& event);
 | 
						|
  void OnEdit(wxCommandEvent& event);
 | 
						|
  void OnText(wxCommandEvent& event);
 | 
						|
 | 
						|
  inline virtual wxListBox *GetPropertyScrollingList() const { return m_propertyScrollingList; }
 | 
						|
  inline virtual wxListBox *GetValueList() const { return m_valueList; }
 | 
						|
  inline virtual wxTextCtrl *GetValueText() const { return m_valueText; }
 | 
						|
  inline virtual wxButton *GetConfirmButton() const { return m_confirmButton; }
 | 
						|
  inline virtual wxButton *GetCancelButton() const { return m_cancelButton; }
 | 
						|
  inline virtual wxButton *GetEditButton() const { return m_editButton; }
 | 
						|
  inline virtual bool GetDetailedEditing(void) const { return m_detailedEditing; }
 | 
						|
 | 
						|
  inline virtual void AssociatePanel(wxPanel *win) { m_propertyWindow = win; }
 | 
						|
  inline virtual wxPanel *GetPanel(void) const { return m_propertyWindow; }
 | 
						|
 | 
						|
  inline virtual void SetManagedWindow(wxWindow *win) { m_managedWindow = win; }
 | 
						|
  inline virtual wxWindow *GetManagedWindow(void) const { return m_managedWindow; }
 | 
						|
 | 
						|
  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:
 | 
						|
  static bool       sm_dialogCancelled;
 | 
						|
 | 
						|
 protected:
 | 
						|
  wxListBox*        m_propertyScrollingList;
 | 
						|
  wxListBox*        m_valueList;     // Should really be a combobox, but we don't have one.
 | 
						|
  wxTextCtrl*       m_valueText;
 | 
						|
  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
 | 
						|
 | 
						|
  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 WXDLLEXPORT wxPropertyTextEdit: public wxTextCtrl
 | 
						|
{
 | 
						|
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"));
 | 
						|
 | 
						|
    void OnSetFocus();
 | 
						|
    void OnKillFocus();
 | 
						|
 | 
						|
    wxPropertyListView* m_view;
 | 
						|
 | 
						|
    DECLARE_CLASS(wxPropertyTextEdit)
 | 
						|
};
 | 
						|
 | 
						|
#define wxPROP_ALLOW_TEXT_EDITING           1
 | 
						|
 | 
						|
/*
 | 
						|
 * The type of validator used for property lists (Visual Basic style)
 | 
						|
 */
 | 
						|
 | 
						|
class WXDLLEXPORT wxPropertyListValidator: public wxPropertyValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxPropertyListValidator)
 | 
						|
 protected:
 | 
						|
 public:
 | 
						|
   wxPropertyListValidator(long flags = wxPROP_ALLOW_TEXT_EDITING): wxPropertyValidator(flags) { }
 | 
						|
   ~wxPropertyListValidator(void) {}
 | 
						|
 | 
						|
   // Called when the property is selected or deselected: typically displays the value
 | 
						|
   // in the edit control (having chosen a suitable control to display: (non)editable text or listbox)
 | 
						|
   virtual bool OnSelect(bool select, wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the property is double clicked. Extra functionality can be provided, such as
 | 
						|
   // cycling through possible values.
 | 
						|
   inline virtual bool OnDoubleClick(
 | 
						|
     wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
 | 
						|
     { return TRUE; }
 | 
						|
 | 
						|
   // Called when the value listbox is selected. Default behaviour is to copy
 | 
						|
   // string to text control, and retrieve the value into the property.
 | 
						|
   virtual bool OnValueListSelect(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the property value is edited using standard text control
 | 
						|
   inline virtual bool OnPrepareControls(
 | 
						|
     wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
 | 
						|
     { return TRUE; }
 | 
						|
 | 
						|
   virtual bool OnClearControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
      // Called when the property is edited in detail
 | 
						|
   inline virtual bool OnPrepareDetailControls(
 | 
						|
     wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
 | 
						|
     { return TRUE; }
 | 
						|
 | 
						|
   // Called if focus lost, IF we're in a modeless property editing situation.
 | 
						|
   inline virtual bool OnClearDetailControls(
 | 
						|
     wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
 | 
						|
     { return TRUE; }
 | 
						|
 | 
						|
   // Called when the edit (...) button is pressed. The default implementation
 | 
						|
   // calls view->BeginDetailedEditing; the filename validator (for example) overrides
 | 
						|
   // this function to show the file selector.
 | 
						|
   virtual void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   inline virtual bool OnCheckValue(
 | 
						|
     wxProperty *WXUNUSED(property), wxPropertyListView *WXUNUSED(view), wxWindow *WXUNUSED(parentWindow) )
 | 
						|
     { return TRUE; }
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transferance from the property editing area to the property itself
 | 
						|
   virtual bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   virtual bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
};
 | 
						|
 | 
						|
/*
 | 
						|
 * A default dialog box class to use.
 | 
						|
 */
 | 
						|
 | 
						|
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 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 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 WXDLLEXPORT wxRealListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxRealListValidator)
 | 
						|
 public:
 | 
						|
   // 0.0, 0.0 means no range
 | 
						|
   wxRealListValidator(float min = 0.0, float max = 0.0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
 | 
						|
   {
 | 
						|
     m_realMin = min; m_realMax = max;
 | 
						|
   }
 | 
						|
   ~wxRealListValidator(void) {}
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transfer from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
 protected:
 | 
						|
  float     m_realMin;
 | 
						|
  float     m_realMax;
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxIntegerListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxIntegerListValidator)
 | 
						|
 public:
 | 
						|
   // 0, 0 means no range
 | 
						|
   wxIntegerListValidator(long min = 0, long max = 0, long flags = wxPROP_ALLOW_TEXT_EDITING):wxPropertyListValidator(flags)
 | 
						|
   {
 | 
						|
     m_integerMin = min; m_integerMax = max;
 | 
						|
   }
 | 
						|
   ~wxIntegerListValidator(void) {}
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transfer from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
 protected:
 | 
						|
  long m_integerMin;
 | 
						|
  long m_integerMax;
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxBoolListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxBoolListValidator)
 | 
						|
 protected:
 | 
						|
 public:
 | 
						|
   wxBoolListValidator(long flags = 0):wxPropertyListValidator(flags)
 | 
						|
   {
 | 
						|
   }
 | 
						|
   ~wxBoolListValidator(void) {}
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transfer from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the property is double clicked. Extra functionality can be provided,
 | 
						|
   // cycling through possible values.
 | 
						|
   virtual bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxStringListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxStringListValidator)
 | 
						|
 public:
 | 
						|
   wxStringListValidator(wxStringList *list = NULL, long flags = 0);
 | 
						|
 | 
						|
   ~wxStringListValidator(void)
 | 
						|
   {
 | 
						|
     if (m_strings)
 | 
						|
       delete m_strings;
 | 
						|
   }
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnPrepareDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnClearDetailControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transfer from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the property is double clicked. Extra functionality can be provided,
 | 
						|
   // cycling through possible values.
 | 
						|
   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
 protected:
 | 
						|
  wxStringList*     m_strings;
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxFilenameListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxFilenameListValidator)
 | 
						|
 public:
 | 
						|
   wxFilenameListValidator(wxString message = "Select a file", wxString wildcard = wxALL_FILES_PATTERN, long flags = 0);
 | 
						|
 | 
						|
   ~wxFilenameListValidator(void);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transferance from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the edit (...) button is pressed.
 | 
						|
   void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
 protected:
 | 
						|
  wxString  m_filenameWildCard;
 | 
						|
  wxString  m_filenameMessage;
 | 
						|
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxColourListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxColourListValidator)
 | 
						|
 protected:
 | 
						|
 public:
 | 
						|
   wxColourListValidator(long flags = 0);
 | 
						|
 | 
						|
   ~wxColourListValidator(void);
 | 
						|
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the edit (...) button is pressed.
 | 
						|
   void OnEdit(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
};
 | 
						|
 | 
						|
class WXDLLEXPORT wxListOfStringsListValidator: public wxPropertyListValidator
 | 
						|
{
 | 
						|
  DECLARE_DYNAMIC_CLASS(wxListOfStringsListValidator)
 | 
						|
 protected:
 | 
						|
 public:
 | 
						|
   wxListOfStringsListValidator(long flags = 0);
 | 
						|
 | 
						|
   ~wxListOfStringsListValidator(void)
 | 
						|
   {
 | 
						|
   }
 | 
						|
 | 
						|
   bool OnPrepareControls(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost.
 | 
						|
   // Return FALSE if value didn't check out; signal to restore old value.
 | 
						|
   bool OnCheckValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when TICK is pressed or focus is lost or view wants to update
 | 
						|
   // the property list.
 | 
						|
   // Does the transfer from the property editing area to the property itself
 | 
						|
   bool OnRetrieveValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
   bool OnDisplayValue(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   // Called when the property is double clicked.
 | 
						|
   bool OnDoubleClick(wxProperty *property, wxPropertyListView *view, wxWindow *parentWindow);
 | 
						|
 | 
						|
   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_
 |