// Author: Jaakko Salli
// Modified by:
// Created: 2004-09-25
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows license
/////////////////////////////////////////////////////////////////////////////
#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
WX_PG_DECLARE_EDITOR_WITH_DECL(DatePickerCtrl,WXDLLIMPEXP_PROPGRID)
#endif
+#endif // !SWIG
+
// -----------------------------------------------------------------------
wxColour m_colour;
wxColourPropertyValue()
+ : wxObject()
{
m_type = 0;
}
}
wxColourPropertyValue( const wxColourPropertyValue& v )
+ : wxObject()
{
m_type = v.m_type;
m_colour = v.m_colour;
}
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 );
}
#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:
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
// -----------------------------------------------------------------------
// Declare part of custom colour property macro pairs.
-#if wxUSE_IMAGE || defined(SWIG)
+#if wxUSE_IMAGE
#include "wx/image.h"
#endif
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:
};
*/
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;
// -----------------------------------------------------------------------
-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.
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 );
};
// -----------------------------------------------------------------------
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
#endif
-#if wxUSE_CHOICEDLG || defined(SWIG)
+#if wxUSE_CHOICEDLG
/** @class wxMultiChoiceProperty
@ingroup classes
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
{
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;
};
<b>Supported special attributes:</b>
- "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
{
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 )
{
// 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;
// -----------------------------------------------------------------------
+#endif // wxUSE_PROPGRID
+
#endif // _WX_PROPGRID_ADVPROPS_H_