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 void ChildChanged( wxVariant
& thisValue
,
38 int childIndex
, wxVariant
& childValue
) const;
39 virtual void RefreshChildren();
40 virtual bool OnEvent( wxPropertyGrid
* propgrid
, wxWindow
* primary
, wxEvent
& event
);
43 // Value must be stored as variant - otherwise it will be
44 // decreffed to oblivion on GetValue().
45 wxVariant m_value_wxFontData
;
48 // -----------------------------------------------------------------------
50 class wxSizeProperty
: public wxPGProperty
52 WX_PG_DECLARE_PROPERTY_CLASS(wxSizeProperty
)
55 wxSizeProperty( const wxString
& label
= wxPG_LABEL
, const wxString
& name
= wxPG_LABEL
,
56 const wxSize
& value
= wxSize() );
57 virtual ~wxSizeProperty();
59 virtual void ChildChanged( wxVariant
& thisValue
,
60 int childIndex
, wxVariant
& childValue
) const;
61 virtual void RefreshChildren();
65 // I stands for internal
66 void SetValueI( const wxSize
& value
)
68 m_value
= WXVARIANT(value
);
72 // -----------------------------------------------------------------------
74 class wxPointProperty
: public wxPGProperty
76 WX_PG_DECLARE_PROPERTY_CLASS(wxPointProperty
)
79 wxPointProperty( const wxString
& label
= wxPG_LABEL
, const wxString
& name
= wxPG_LABEL
,
80 const wxPoint
& value
= wxPoint() );
81 virtual ~wxPointProperty();
83 virtual void ChildChanged( wxVariant
& thisValue
,
84 int childIndex
, wxVariant
& childValue
) const;
85 virtual void RefreshChildren();
89 // I stands for internal
90 void SetValueI( const wxPoint
& value
)
92 m_value
= WXVARIANT(value
);
96 // -----------------------------------------------------------------------
98 WX_PG_DECLARE_ARRAYSTRING_PROPERTY_WITH_VALIDATOR_WITH_DECL(wxDirsProperty
, class wxEMPTY_PARAMETER_VALUE
)
100 // -----------------------------------------------------------------------
102 WX_PG_DECLARE_VARIANT_DATA(wxArrayDouble
)
104 class wxArrayDoubleProperty
: public wxPGProperty
106 WX_PG_DECLARE_PROPERTY_CLASS(wxArrayDoubleProperty
)
109 wxArrayDoubleProperty( const wxString
& label
= wxPG_LABEL
,
110 const wxString
& name
= wxPG_LABEL
,
111 const wxArrayDouble
& value
= wxArrayDouble() );
113 virtual ~wxArrayDoubleProperty ();
115 virtual void OnSetValue();
116 virtual wxString
ValueToString( wxVariant
& value
, int argFlags
= 0 ) const;
117 virtual bool StringToValue( wxVariant
& variant
,
118 const wxString
& text
,
119 int argFlags
= 0 ) const;
120 virtual bool OnEvent( wxPropertyGrid
* propgrid
, wxWindow
* primary
, wxEvent
& event
);
121 virtual bool DoSetAttribute( const wxString
& name
, wxVariant
& value
);
123 // Generates cache for displayed text
124 virtual void GenerateValueAsString ( wxString
& target
, int prec
, bool removeZeroes
) const;
127 wxString m_display
; // Stores cache for displayed text
128 int m_precision
; // Used when formatting displayed string.
129 wxChar m_delimiter
; // Delimiter between array entries.
132 // -----------------------------------------------------------------------
134 #endif // _WX_SAMPLES_PROPGRID_SAMPLEPROPS_H_