23#ifndef PG_PROPERTIES_H
24#define PG_PROPERTIES_H
26#include <wx/propgrid/propgrid.h>
27#include <wx/propgrid/property.h>
28#include <wx/propgrid/props.h>
50 bool StringToDistance( wxVariant& aVariant,
const wxString& aText,
int aArgFlags = 0 )
const;
61 PGPROPERTY_SIZE(
const wxString& aLabel = wxPG_LABEL,
const wxString& aName = wxPG_LABEL,
65 int aArgFlags = 0 )
const override
70 wxString
ValueToString( wxVariant& aVariant,
int aArgFlags = 0 )
const override
82 PGPROPERTY_COORD(
const wxString& aLabel = wxPG_LABEL,
const wxString& aName = wxPG_LABEL,
87 int aArgFlags = 0 )
const override
92 wxString
ValueToString( wxVariant& aVariant,
int aArgFlags = 0 )
const override
107 : wxFloatProperty( aLabel, aName, aValue ),
m_scale( 1.0 )
111 bool StringToValue( wxVariant& aVariant,
const wxString& aText,
112 int aArgFlags = 0 )
const override;
113 wxString
ValueToString( wxVariant& aVariant,
int aArgFlags = 0 )
const override;
123 bool ValidateValue( wxVariant&, wxPGValidationInfo& )
const override {
return true; }
137 wxEnumProperty( aLabel, aName, *aChoices, aValue ),
138 m_colorFunc( []( int aDummy ) {
return wxNullColour; } )
140 SetFlag( wxPG_PROP_CUSTOMIMAGE );
145 void OnCustomPaint( wxDC& aDC,
const wxRect& aRect, wxPGPaintData& aPaintData )
override;
166 const wxString& aValue = wxEmptyString ) :
167 wxStringProperty( aLabel, aName, aValue )
172 wxString
ValueToString( wxVariant& aValue,
int aFlags = 0 )
const override;
174 bool StringToValue( wxVariant& aVariant,
const wxString& aString,
175 int aFlags = 0 )
const override;
182 PGPROPERTY_BOOL(
const wxString& aLabel = wxPG_LABEL,
const wxString& aName = wxPG_LABEL,
183 bool aValue =
false );
The base class for create windows for drawing purpose.
A wxEnumProperty that displays a color next to the enum value.
PGPROPERTY_ANGLE(const wxString &aLabel=wxPG_LABEL, const wxString &aName=wxPG_LABEL, double aValue=0)
void SetScale(double aScale)
wxString ValueToString(wxVariant &aVariant, int aArgFlags=0) const override
double m_scale
< Scale factor to convert between raw and displayed value
wxValidator * DoGetValidator() const override
Do not perform PG validation; the UX is not what we want.
bool StringToValue(wxVariant &aVariant, const wxString &aText, int aArgFlags=0) const override
bool ValidateValue(wxVariant &, wxPGValidationInfo &) const override
const wxPGEditor * DoGetEditorClass() const override
virtual ~PGPROPERTY_BOOL()=default
PGPROPERTY_COLORENUM(const wxString &aLabel, const wxString &aName, wxPGChoices *aChoices, int aValue=0)
void SetColorFunc(std::function< wxColour(int aValue)> aFunc)
wxColour GetColor(int aValue)
wxSize OnMeasureImage(int aItem=-1) const override
void OnCustomPaint(wxDC &aDC, const wxRect &aRect, wxPGPaintData &aPaintData) override
std::function< wxColour(int aValue)> m_colorFunc
Customized wxPGProperty class to handle angles.
wxString ValueToString(wxVariant &aVariant, int aArgFlags=0) const override
bool StringToValue(wxVariant &aVariant, const wxString &aText, int aArgFlags=0) const override
wxValidator * DoGetValidator() const override
ORIGIN_TRANSFORMS::COORD_TYPES_T CoordType() const
wxString DistanceToString(wxVariant &aVariant, int aArgFlags=0) const
bool StringToDistance(wxVariant &aVariant, const wxString &aText, int aArgFlags=0) const
virtual ~PGPROPERTY_DISTANCE()=0
ORIGIN_TRANSFORMS::COORD_TYPES_T m_coordType
void SetCoordType(ORIGIN_TRANSFORMS::COORD_TYPES_T aType)
std::unique_ptr< REGEX_VALIDATOR > m_regExValidator
wxValidator * DoGetValidator() const override
bool StringToValue(wxVariant &aVariant, const wxString &aText, int aArgFlags=0) const override
wxString ValueToString(wxVariant &aVariant, int aArgFlags=0) const override
wxString ValueToString(wxVariant &aValue, int aFlags=0) const override
PGPROPERTY_STRING(const wxString &aLabel=wxPG_LABEL, const wxString &aName=wxPG_LABEL, const wxString &aValue=wxEmptyString)
bool StringToValue(wxVariant &aVariant, const wxString &aString, int aFlags=0) const override
virtual ~PGPROPERTY_STRING()=default
Custom validator that checks verifies that a string exactly matches a regular expression.
wxPGProperty * PGPropertyFactory(const PROPERTY_BASE *aProperty, EDA_DRAW_FRAME *aFrame)
Customized abstract wxPGProperty class to handle coordinate/size units.