X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/1c4293cb91327247ad69e6ec8d589bfaa299db28..b545684e13530b21082bc2fc5c64c1c14b852994:/include/wx/propgrid/advprops.h diff --git a/include/wx/propgrid/advprops.h b/include/wx/propgrid/advprops.h index 98c47c0193..388eb9349a 100644 --- a/include/wx/propgrid/advprops.h +++ b/include/wx/propgrid/advprops.h @@ -4,7 +4,7 @@ // Author: Jaakko Salli // Modified by: // Created: 2004-09-25 -// RCS-ID: $Id: +// RCS-ID: $Id$ // Copyright: (c) Jaakko Salli // Licence: wxWindows license ///////////////////////////////////////////////////////////////////////////// @@ -12,21 +12,20 @@ #ifndef _WX_PROPGRID_ADVPROPS_H_ #define _WX_PROPGRID_ADVPROPS_H_ +#if wxUSE_PROPGRID + #include "wx/propgrid/props.h" // ----------------------------------------------------------------------- +#ifndef SWIG + // // Additional Value Type Handlers // -#ifndef SWIG -bool WXDLLIMPEXP_PROPGRID operator==(const wxFont&, const wxFont&); - bool WXDLLIMPEXP_PROPGRID operator==(const wxArrayInt& array1, const wxArrayInt& array2); -#endif - // // Additional Property Editors @@ -39,6 +38,8 @@ WX_PG_DECLARE_EDITOR_WITH_DECL(SpinCtrl,WXDLLIMPEXP_PROPGRID) WX_PG_DECLARE_EDITOR_WITH_DECL(DatePickerCtrl,WXDLLIMPEXP_PROPGRID) #endif +#endif // !SWIG + // ----------------------------------------------------------------------- @@ -82,6 +83,7 @@ public: wxColour m_colour; wxColourPropertyValue() + : wxObject() { m_type = 0; } @@ -91,6 +93,7 @@ public: } wxColourPropertyValue( const wxColourPropertyValue& v ) + : wxObject() { m_type = v.m_type; m_colour = v.m_colour; @@ -103,17 +106,20 @@ public: } wxColourPropertyValue( const wxColour& colour ) + : wxObject() { m_type = wxPG_COLOUR_CUSTOM; m_colour = colour; } wxColourPropertyValue( wxUint32 type ) + : wxObject() { m_type = type; } wxColourPropertyValue( wxUint32 type, const wxColour& colour ) + : wxObject() { Init( type, colour ); } @@ -121,7 +127,8 @@ public: #ifndef SWIG void operator=(const wxColourPropertyValue& cpv) { - Init( cpv.m_type, cpv.m_colour ); + if (this != &cpv) + Init( cpv.m_type, cpv.m_colour ); } private: @@ -134,12 +141,12 @@ private: bool WXDLLIMPEXP_PROPGRID operator==(const wxColourPropertyValue&, const wxColourPropertyValue&); -WX_PG_DECLARE_WXOBJECT_VARIANT_DATA(wxPGVariantDataColourPropertyValue, - wxColourPropertyValue, WXDLLIMPEXP_PROPGRID) +DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID) + #endif #ifndef SWIG - #define wxPG_EMPTY_CPV (*((wxColourPropertyValue*)NULL)) + #define wxPG_EMPTY_CPV (*(NULL)) #define wxPG_NORMAL_FONT (*wxNORMAL_FONT) #else #define wxPG_EMPTY_CPV wxCPV_wxPG_EMPTY @@ -150,7 +157,7 @@ WX_PG_DECLARE_WXOBJECT_VARIANT_DATA(wxPGVariantDataColourPropertyValue, // ----------------------------------------------------------------------- // Declare part of custom colour property macro pairs. -#if wxUSE_IMAGE || defined(SWIG) +#if wxUSE_IMAGE #include "wx/image.h" #endif @@ -173,11 +180,13 @@ public: const wxFont& value = wxFont()); virtual ~wxFontProperty(); virtual void OnSetValue(); - virtual wxString GetValueAsString( int argFlags = 0 ) const; - - WX_PG_DECLARE_EVENT_METHODS() - WX_PG_DECLARE_PARENTAL_METHODS() - //WX_PG_DECLARE_CUSTOM_PAINT_METHODS() + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxWindow* primary, wxEvent& event ); + virtual wxVariant ChildChanged( wxVariant& thisValue, + int childIndex, + wxVariant& childValue ) const; + virtual void RefreshChildren(); protected: }; @@ -223,13 +232,16 @@ public: */ virtual int GetCustomColourIndex() const; - WX_PG_DECLARE_BASIC_TYPE_METHODS() - WX_PG_DECLARE_EVENT_METHODS() - WX_PG_DECLARE_ATTRIBUTE_METHODS() - - WX_PG_DECLARE_CUSTOM_PAINT_METHODS() - //virtual wxSize GetImageSize( int item ) const; - //virtual wxPGCellRenderer* GetCellRenderer( int column ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; + virtual bool StringToValue( wxVariant& variant, + const wxString& text, + int argFlags = 0 ) const; + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxWindow* primary, wxEvent& event ); + virtual bool DoSetAttribute( const wxString& name, wxVariant& value ); + virtual wxSize OnMeasureImage( int item ) const; + virtual void OnCustomPaint( wxDC& dc, + const wxRect& rect, wxPGPaintData& paintdata ); // Helper function to show the colour dialog bool QueryColourFromUser( wxVariant& variant ) const; @@ -245,10 +257,10 @@ protected: // Special constructors to be used by derived classes. wxSystemColourProperty( const wxString& label, const wxString& name, - const wxChar** labels, const long* values, wxPGChoices* choicesCache, + const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, const wxColourPropertyValue& value ); wxSystemColourProperty( const wxString& label, const wxString& name, - const wxChar** labels, const long* values, wxPGChoices* choicesCache, + const wxChar* const* labels, const long* values, wxPGChoices* choicesCache, const wxColour& value ); void Init( int type, const wxColour& colour ); @@ -271,14 +283,30 @@ protected: // ----------------------------------------------------------------------- -WX_PG_DECLARE_CUSTOM_COLOUR_PROPERTY_USES_WXCOLOUR_WITH_DECL( - wxColourProperty, class WXDLLIMPEXP_PROPGRID) +class WXDLLIMPEXP_PROPGRID wxColourProperty : public wxSystemColourProperty +{ + WX_PG_DECLARE_PROPERTY_CLASS(wxColourProperty) +public: + wxColourProperty( const wxString& label = wxPG_LABEL, + const wxString& name = wxPG_LABEL, + const wxColour& value = *wxWHITE ); + virtual ~wxColourProperty(); -// Exclude classes from wxPython bindings -#ifndef SWIG + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; + virtual wxColour GetColour( int index ) const; + +protected: + virtual wxVariant DoTranslateVal( wxColourPropertyValue& v ) const; + +private: + void Init( wxColour colour ); +}; // ----------------------------------------------------------------------- +// Exclude classes from wxPython bindings +#ifndef SWIG + /** @class wxCursorProperty @ingroup classes Property representing wxCursor. @@ -292,9 +320,9 @@ class WXDLLIMPEXP_PROPGRID wxCursorProperty : public wxEnumProperty int value = 0 ); virtual ~wxCursorProperty(); - WX_PG_DECLARE_CUSTOM_PAINT_METHODS() - //virtual wxSize GetImageSize( int item ) const; - //virtual wxPGCellRenderer* GetCellRenderer( int column ) const; + virtual wxSize OnMeasureImage( int item ) const; + virtual void OnCustomPaint( wxDC& dc, + const wxRect& rect, wxPGPaintData& paintdata ); }; // ----------------------------------------------------------------------- @@ -319,7 +347,9 @@ public: virtual void OnSetValue(); - WX_PG_DECLARE_CUSTOM_PAINT_METHODS() + virtual wxSize OnMeasureImage( int item ) const; + virtual void OnCustomPaint( wxDC& dc, + const wxRect& rect, wxPGPaintData& paintdata ); protected: wxBitmap* m_pBitmap; // final thumbnail area @@ -328,7 +358,7 @@ protected: #endif -#if wxUSE_CHOICEDLG || defined(SWIG) +#if wxUSE_CHOICEDLG /** @class wxMultiChoiceProperty @ingroup classes @@ -364,13 +394,12 @@ public: virtual ~wxMultiChoiceProperty(); virtual void OnSetValue(); - virtual wxString GetValueAsString( int flags = 0 ) const; + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue(wxVariant& variant, const wxString& text, int argFlags = 0) const; - WX_PG_DECLARE_EVENT_METHODS() - - virtual int GetChoiceInfo( wxPGChoiceInfo* choiceinfo ); + virtual bool OnEvent( wxPropertyGrid* propgrid, + wxWindow* primary, wxEvent& event ); wxArrayInt GetValueAsArrayInt() const { @@ -379,15 +408,13 @@ public: protected: - void GenerateValueAsString(); + void GenerateValueAsString( wxVariant& value, wxString* target ) const; // Returns translation of values into string indices. wxArrayInt GetValueAsIndices() const; wxArrayString m_valueAsStrings; // Value as array of strings - wxPGChoices m_choices; - // Cache displayed text since generating it is relatively complicated. wxString m_display; }; @@ -405,7 +432,8 @@ protected: Supported special attributes: - "DateFormat": Determines displayed date format. - "PickerStyle": Determines window style used with wxDatePickerCtrl. - Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. + Default is wxDP_DEFAULT | wxDP_SHOWCENTURY. Using wxDP_ALLOWNONE + enables additional support for unspecified property value. */ class WXDLLIMPEXP_PROPGRID wxDateProperty : public wxPGProperty { @@ -417,12 +445,13 @@ public: const wxDateTime& value = wxDateTime() ); virtual ~wxDateProperty(); - virtual wxString GetValueAsString( int flags = 0 ) const; + virtual void OnSetValue(); + virtual wxString ValueToString( wxVariant& value, int argFlags = 0 ) const; virtual bool StringToValue(wxVariant& variant, const wxString& text, int argFlags = 0) const; - WX_PG_DECLARE_ATTRIBUTE_METHODS() + virtual bool DoSetAttribute( const wxString& name, wxVariant& value ); void SetFormat( const wxString& format ) { @@ -489,13 +518,15 @@ protected: // used for event handling here. class WXDLLIMPEXP_PROPGRID wxPGSpinCtrlEditor : public wxPGTextCtrlEditor { - WX_PG_DECLARE_EDITOR_CLASS(wxPGSpinCtrlEditor) + DECLARE_DYNAMIC_CLASS(wxPGSpinCtrlEditor) public: virtual ~wxPGSpinCtrlEditor(); - // See below for short explanations of what these are suppposed to do. - wxPG_DECLARE_CREATECONTROLS - + wxString GetName() const; + virtual wxPGWindowList CreateControls(wxPropertyGrid* propgrid, + wxPGProperty* property, + const wxPoint& pos, + const wxSize& size) const; virtual bool OnEvent( wxPropertyGrid* propgrid, wxPGProperty* property, wxWindow* wnd, wxEvent& event ) const; @@ -507,4 +538,6 @@ private: // ----------------------------------------------------------------------- +#endif // wxUSE_PROPGRID + #endif // _WX_PROPGRID_ADVPROPS_H_