X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/525b29124a9b69837c1d7973d44da21d2da28ea1..43c42c18d36c703a88b1b7b697bac27fe5608eca:/include/wx/propgrid/props.h diff --git a/include/wx/propgrid/props.h b/include/wx/propgrid/props.h index b2bf59f6e6..99c279f7a8 100644 --- a/include/wx/propgrid/props.h +++ b/include/wx/propgrid/props.h @@ -6,12 +6,14 @@ // Created: 2007-03-28 // RCS-ID: $Id$ // Copyright: (c) Jaakko Salli -// Licence: wxWindows license +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifndef _WX_PROPGRID_PROPS_H_ #define _WX_PROPGRID_PROPS_H_ +#include "wx/defs.h" + #if wxUSE_PROPGRID // ----------------------------------------------------------------------- @@ -25,6 +27,7 @@ class wxPGArrayEditorDialog; #include "wx/textctrl.h" #include "wx/button.h" #include "wx/listbox.h" +#include "wx/valtext.h" // ----------------------------------------------------------------------- @@ -91,7 +94,7 @@ private: Basic property with string value. Supported special attributes: - - "Password": set to 1 inorder to enable wxTE_PASSWORD on the editor. + - "Password": set to 1 in order to enable wxTE_PASSWORD on the editor. @remarks - If value "" is set, then actual value is formed (or composed) @@ -122,9 +125,9 @@ protected: // ----------------------------------------------------------------------- -/** Constants used with DoValidation() methods. +/** Constants used with NumericValidation<>(). */ -enum wxPGDoValidationConstants +enum wxPGNumericValidationConstants { /** Instead of modifying the value, show an error message. */ @@ -141,6 +144,29 @@ enum wxPGDoValidationConstants // ----------------------------------------------------------------------- +#if wxUSE_VALIDATORS + +/** + A more comprehensive numeric validator class. +*/ +class WXDLLIMPEXP_PROPGRID wxNumericPropertyValidator : public wxTextValidator +{ +public: + enum NumericType + { + Signed = 0, + Unsigned, + Float + }; + + wxNumericPropertyValidator( NumericType numericType, int base = 10 ); + virtual ~wxNumericPropertyValidator() { } + virtual bool Validate(wxWindow* parent); +}; + +#endif // wxUSE_VALIDATORS + + /** @class wxIntProperty @ingroup classes Basic property with integer value. @@ -255,6 +281,7 @@ public: virtual bool DoSetAttribute( const wxString& name, wxVariant& value ); virtual bool ValidateValue( wxVariant& value, wxPGValidationInfo& validationInfo ) const; + virtual wxValidator* DoGetValidator () const; virtual bool IntToValue( wxVariant& variant, int number, int argFlags = 0 ) const; @@ -300,6 +327,7 @@ public: wxPGValidationInfo* pValidationInfo, int mode = wxPG_PROPERTY_VALIDATION_ERROR_MESSAGE ); + static wxValidator* GetClassValidator(); virtual wxValidator* DoGetValidator () const; protected: @@ -489,7 +517,7 @@ protected: @ingroup classes Represents a bit set that fits in a long integer. wxBoolProperty sub-properties are created for editing individual bits. Textctrl is created - to manually edit the flags as a text; a continous sequence of spaces, + to manually edit the flags as a text; a continuous sequence of spaces, commas and semicolons is considered as a flag id separator. Note: When changing "choices" (ie. flag labels) of wxFlagsProperty, you will need to use SetPropertyChoices - otherwise they will not get @@ -536,7 +564,7 @@ public: // helpers size_t GetItemCount() const { return m_choices.GetCount(); } const wxString& GetLabel( size_t ind ) const - { return m_choices.GetLabel(ind); } + { return m_choices.GetLabel(static_cast(ind)); } protected: // Used to detect if choices have been changed @@ -810,7 +838,7 @@ PROPNAME::~PROPNAME() { } \ bool PROPNAME::OnEvent( wxPropertyGrid* propgrid, \ wxWindow* primary, wxEvent& event ) \ { \ - if ( event.GetEventType() == wxEVT_COMMAND_BUTTON_CLICKED ) \ + if ( event.GetEventType() == wxEVT_BUTTON ) \ return OnButtonClick(propgrid,primary,(const wxChar*) CUSTBUTTXT); \ return false; \ } @@ -969,7 +997,7 @@ public: void SetCustomButton( const wxString& custBtText, wxArrayStringProperty* pcc ) { - if ( custBtText.length() ) + if ( !custBtText.empty() ) { EnableCustomNewAction(); m_pCallingClass = pcc;