1 /////////////////////////////////////////////////////////////////////////////
2 // Name: samples/propgrid/sampleprops.h
3 // Purpose: wxPropertyGrid Sample Properties Header
4 // Author: Jaakko Salli
8 // Copyright: (c) Jaakko Salli
9 // Licence: wxWindows license
10 /////////////////////////////////////////////////////////////////////////////
12 #ifndef _WX_SAMPLES_PROPGRID_SAMPLEPROPS_H_
13 #define _WX_SAMPLES_PROPGRID_SAMPLEPROPS_H_
16 DECLARE_VARIANT_OBJECT(wxFontData
)
19 class wxFontDataProperty
: public wxFontProperty
21 WX_PG_DECLARE_PROPERTY_CLASS(wxFontDataProperty
)
24 wxFontDataProperty( const wxString
& label
= wxPG_LABEL
,
25 const wxString
& name
= wxPG_LABEL
,
26 const wxFontData
& value
= wxFontData() );
27 virtual ~wxFontDataProperty ();
31 // Inorder to have different value type in a derived property
32 // class, we will override GetValue to return custom variant,
33 // instead of changing the base m_value. This allows the methods
34 // in base class to function properly.
35 virtual wxVariant
DoGetValue() const;
37 virtual wxVariant
ChildChanged( wxVariant
& thisValue
,
39 wxVariant
& childValue
) const;
40 virtual void RefreshChildren();
41 virtual bool OnEvent( wxPropertyGrid
* propgrid
, wxWindow
* primary
, wxEvent
& event
);
44 // Value must be stored as variant - otherwise it will be
45 // decreffed to oblivion on GetValue().
46 wxVariant m_value_wxFontData
;
49 // -----------------------------------------------------------------------
51 class wxSizeProperty
: public wxPGProperty
53 WX_PG_DECLARE_PROPERTY_CLASS(wxSizeProperty
)
56 wxSizeProperty( const wxString
& label
= wxPG_LABEL
, const wxString
& name
= wxPG_LABEL
,
57 const wxSize
& value
= wxSize() );
58 virtual ~wxSizeProperty();
60 virtual wxVariant
ChildChanged( wxVariant
& thisValue
,
62 wxVariant
& childValue
) const;
63 virtual void RefreshChildren();
67 // I stands for internal
68 void SetValueI( const wxSize
& value
)
70 m_value
= WXVARIANT(value
);
74 // -----------------------------------------------------------------------
76 class wxPointProperty
: public wxPGProperty
78 WX_PG_DECLARE_PROPERTY_CLASS(wxPointProperty
)
81 wxPointProperty( const wxString
& label
= wxPG_LABEL
, const wxString
& name
= wxPG_LABEL
,
82 const wxPoint
& value
= wxPoint() );
83 virtual ~wxPointProperty();
85 virtual wxVariant
ChildChanged( wxVariant
& thisValue
,
87 wxVariant
& childValue
) const;
88 virtual void RefreshChildren();
92 // I stands for internal
93 void SetValueI( const wxPoint
& value
)
95 m_value
= WXVARIANT(value
);
99 // -----------------------------------------------------------------------
101 WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR_WITH_DECL(wxDirsProperty
, class wxEMPTY_PARAMETER_VALUE
)
103 // -----------------------------------------------------------------------
105 WX_PG_DECLARE_VARIANT_DATA(wxArrayDouble
)
107 class wxArrayDoubleProperty
: public wxPGProperty
109 WX_PG_DECLARE_PROPERTY_CLASS(wxArrayDoubleProperty
)
112 wxArrayDoubleProperty( const wxString
& label
= wxPG_LABEL
,
113 const wxString
& name
= wxPG_LABEL
,
114 const wxArrayDouble
& value
= wxArrayDouble() );
116 virtual ~wxArrayDoubleProperty ();
118 virtual void OnSetValue();
119 virtual wxString
ValueToString( wxVariant
& value
, int argFlags
= 0 ) const;
120 virtual bool StringToValue( wxVariant
& variant
,
121 const wxString
& text
,
122 int argFlags
= 0 ) const;
123 virtual bool OnEvent( wxPropertyGrid
* propgrid
, wxWindow
* primary
, wxEvent
& event
);
124 virtual bool DoSetAttribute( const wxString
& name
, wxVariant
& value
);
126 // Generates cache for displayed text
127 virtual void GenerateValueAsString ( wxString
& target
, int prec
, bool removeZeroes
) const;
130 wxString m_display
; // Stores cache for displayed text
131 int m_precision
; // Used when formatting displayed string.
132 wxChar m_delimiter
; // Delimiter between array entries.
135 // -----------------------------------------------------------------------
137 #endif // _WX_SAMPLES_PROPGRID_SAMPLEPROPS_H_