// Author: Jaakko Salli
// Modified by:
// Created: 2004-09-25
-// RCS-ID: $Id:
+// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
#ifndef _WX_PROPGRID_ADVPROPS_H_
#define _WX_PROPGRID_ADVPROPS_H_
+#include "wx/defs.h"
+
+#if wxUSE_PROPGRID
+
#include "wx/propgrid/props.h"
// -----------------------------------------------------------------------
-
//
// 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
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:
DECLARE_DYNAMIC_CLASS(wxColourPropertyValue)
-#endif
};
-#ifndef SWIG
bool WXDLLIMPEXP_PROPGRID
operator==(const wxColourPropertyValue&, const wxColourPropertyValue&);
DECLARE_VARIANT_OBJECT_EXPORTED(wxColourPropertyValue, WXDLLIMPEXP_PROPGRID)
-#endif
-
-#ifndef SWIG
- #define wxPG_EMPTY_CPV (*((wxColourPropertyValue*)NULL))
- #define wxPG_NORMAL_FONT (*wxNORMAL_FONT)
-#else
- #define wxPG_EMPTY_CPV wxCPV_wxPG_EMPTY
- #define wxPG_NORMAL_FONT wxFONT_wxPG_NORMAL_FONT
-#endif
-
-
// -----------------------------------------------------------------------
// Declare part of custom colour property macro pairs.
-#if wxUSE_IMAGE || defined(SWIG)
+#if wxUSE_IMAGE
#include "wx/image.h"
#endif
// -----------------------------------------------------------------------
-// Exclude class from wxPython bindings
-#ifndef SWIG
-
/** @class wxFontProperty
@ingroup classes
Property representing wxFont.
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:
};
-#endif // !SWIG
-
// -----------------------------------------------------------------------
Override in derived class to customize how colours are printed as
strings.
*/
- virtual wxString ColourToString( const wxColour& col, int index ) const;
+ virtual wxString ColourToString( const wxColour& col, int index,
+ int argFlags = 0 ) const;
/** Returns index of entry that triggers colour picker dialog
(default is last).
*/
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;
// 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 );
// -----------------------------------------------------------------------
-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 );
+};
// -----------------------------------------------------------------------
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
const wxString& name,
const wxArrayString& strings,
const wxArrayString& value );
-#ifndef SWIG
wxMultiChoiceProperty( const wxString& label,
const wxString& name,
const wxPGChoices& choices,
wxMultiChoiceProperty( const wxString& label = wxPG_LABEL,
const wxString& name = wxPG_LABEL,
const wxArrayString& value = wxArrayString() );
-#endif
+
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 )
{
#endif // wxUSE_DATETIME
-#endif // !SWIG
-
// -----------------------------------------------------------------------
#if wxUSE_SPINBTN
// 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_