// Created: 2004-09-25
// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
-// Licence: wxWindows license
+// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
// For compilers that support precompilation, includes "wx/wx.h".
wxPGEditor)
-// Trivial destructor.
+// Destructor. It is useful to reset the global pointer in it.
wxPGSpinCtrlEditor::~wxPGSpinCtrlEditor()
{
+ wxPG_EDITOR(SpinCtrl) = NULL;
}
-
// Create controls and initialize event handling.
wxPGWindowList wxPGSpinCtrlEditor::CreateControls( wxPropertyGrid* propgrid, wxPGProperty* property,
const wxPoint& pos, const wxSize& sz ) const
wxPGDatePickerCtrlEditor::~wxPGDatePickerCtrlEditor()
{
+ wxPG_EDITOR(DatePickerCtrl) = NULL;
}
wxPGWindowList wxPGDatePickerCtrlEditor::CreateControls( wxPropertyGrid* propgrid,
#include "wx/fontdlg.h"
#include "wx/fontenum.h"
-static const wxChar* gs_fp_es_family_labels[] = {
- wxS("Default"), wxS("Decorative"),
- wxS("Roman"), wxS("Script"),
- wxS("Swiss"), wxS("Modern"),
- wxS("Teletype"), wxS("Unknown"),
+//
+// NB: Do not use wxS here since unlike wxT it doesn't translate to wxChar*
+//
+
+static const wxChar* const gs_fp_es_family_labels[] = {
+ wxT("Default"), wxT("Decorative"),
+ wxT("Roman"), wxT("Script"),
+ wxT("Swiss"), wxT("Modern"),
+ wxT("Teletype"), wxT("Unknown"),
(const wxChar*) NULL
};
-static long gs_fp_es_family_values[] = {
+static const long gs_fp_es_family_values[] = {
wxFONTFAMILY_DEFAULT, wxFONTFAMILY_DECORATIVE,
wxFONTFAMILY_ROMAN, wxFONTFAMILY_SCRIPT,
wxFONTFAMILY_SWISS, wxFONTFAMILY_MODERN,
wxFONTFAMILY_TELETYPE, wxFONTFAMILY_UNKNOWN
};
-static const wxChar* gs_fp_es_style_labels[] = {
+static const wxChar* const gs_fp_es_style_labels[] = {
wxT("Normal"),
wxT("Slant"),
wxT("Italic"),
(const wxChar*) NULL
};
-static long gs_fp_es_style_values[] = {
+static const long gs_fp_es_style_values[] = {
wxNORMAL,
wxSLANT,
wxITALIC
};
-static const wxChar* gs_fp_es_weight_labels[] = {
+static const wxChar* const gs_fp_es_weight_labels[] = {
wxT("Normal"),
wxT("Light"),
wxT("Bold"),
(const wxChar*) NULL
};
-static long gs_fp_es_weight_values[] = {
+static const long gs_fp_es_weight_values[] = {
wxNORMAL,
wxLIGHT,
wxBOLD
wxFontData data;
wxFont font;
- font << useValue;
+
+ if ( useValue.GetType() == wxS("wxFont") )
+ font << useValue;
+
data.SetInitialFont( font );
data.SetColour(*wxBLACK);
#include "wx/colordlg.h"
//#define wx_cp_es_syscolours_len 25
-static const wxChar* gs_cp_es_syscolour_labels[] = {
+static const wxChar* const gs_cp_es_syscolour_labels[] = {
wxT("AppWorkspace"),
wxT("ActiveBorder"),
wxT("ActiveCaption"),
(const wxChar*) NULL
};
-static long gs_cp_es_syscolour_values[] = {
+static const long gs_cp_es_syscolour_values[] = {
wxSYS_COLOUR_APPWORKSPACE,
wxSYS_COLOUR_ACTIVEBORDER,
wxSYS_COLOUR_ACTIVECAPTION,
wxSystemColourProperty::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 )
: wxEnumProperty( label, name, labels, values, choicesCache )
{
wxSystemColourProperty::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 )
: wxEnumProperty( label, name, labels, values, choicesCache )
{
bool wxSystemColourProperty::StringToValue( wxVariant& value, const wxString& text, int argFlags ) const
{
- //
- // Accept colour format "[Name] [(R,G,B)]"
- // Name takes precedence.
- //
- wxString colourName;
- wxString colourRGB;
+ wxString custColName(m_choices.GetLabel(GetCustomColourIndex()));
+ wxString colStr(text);
+ colStr.Trim(true);
+ colStr.Trim(false);
- int ppos = text.Find(wxT("("));
+ wxColour customColour;
+ bool conversionSuccess = false;
- if ( ppos == wxNOT_FOUND )
+ if ( colStr != custColName )
{
- colourName = text;
- }
- else
- {
- colourName = text.substr(0, ppos);
- colourRGB = text.substr(ppos, text.length()-ppos);
- }
-
- // Strip spaces from extremities
- colourName.Trim(true);
- colourName.Trim(false);
- colourRGB.Trim(true);
+ // Convert (R,G,B) to rgb(R,G,B)
+ if ( colStr.Find(wxS("(")) == 0 )
+ {
+ colStr = wxS("rgb") + colStr;
+ }
- // Validate colourRGB string - (1,1,1) is shortest allowed
- if ( colourRGB.length() < 7 )
- colourRGB.clear();
+ conversionSuccess = customColour.Set(colStr);
+ }
- if ( colourRGB.length() == 0 && m_choices.GetCount() &&
+ if ( !conversionSuccess && m_choices.GetCount() &&
!(m_flags & wxPG_PROP_HIDE_CUSTOM_COLOUR) &&
- colourName == m_choices.GetLabel(GetCustomColourIndex()) )
+ colStr == custColName )
{
if ( !(argFlags & wxPG_EDITABLE_VALUE ))
{
bool done = false;
- if ( colourName.length() )
+ if ( !conversionSuccess )
{
// Try predefined colour first
- bool res = wxEnumProperty::StringToValue(value, colourName, argFlags);
+ bool res = wxEnumProperty::StringToValue(value,
+ colStr,
+ argFlags);
if ( res && GetIndex() >= 0 )
{
val.m_type = GetIndex();
done = true;
}
}
- if ( colourRGB.length() && !done )
+ else
{
- // Then check custom colour.
val.m_type = wxPG_COLOUR_CUSTOM;
-
- int r = -1, g = -1, b = -1;
- wxSscanf(colourRGB.c_str(),wxT("(%i,%i,%i)"),&r,&g,&b);
-
- if ( r >= 0 && r <= 255 &&
- g >= 0 && g <= 255 &&
- b >= 0 && b <= 255 )
- {
- val.m_colour.Set(r,g,b);
-
- done = true;
- }
+ val.m_colour = customColour;
+ done = true;
}
if ( !done )
// wxColourProperty
// -----------------------------------------------------------------------
-static const wxChar* gs_cp_es_normcolour_labels[] = {
+static const wxChar* const gs_cp_es_normcolour_labels[] = {
wxT("Black"),
wxT("Maroon"),
wxT("Navy"),
(const wxChar*) NULL
};
-static unsigned long gs_cp_es_normcolour_colours[] = {
+static const unsigned long gs_cp_es_normcolour_colours[] = {
wxPG_COLOUR(0,0,0),
wxPG_COLOUR(128,0,0),
wxPG_COLOUR(0,0,128),
#define NUM_CURSORS 28
//#define wx_cp_es_syscursors_len 28
-static const wxChar* gs_cp_es_syscursors_labels[NUM_CURSORS+1] = {
+static const wxChar* const gs_cp_es_syscursors_labels[NUM_CURSORS+1] = {
wxT("Default"),
wxT("Arrow"),
wxT("Right Arrow"),
(const wxChar*) NULL
};
-static long gs_cp_es_syscursors_values[NUM_CURSORS] = {
+static const long gs_cp_es_syscursors_values[NUM_CURSORS] = {
wxCURSOR_NONE,
wxCURSOR_ARROW,
wxCURSOR_RIGHT_ARROW,
wxFileProperty::OnSetValue();
// Delete old image
- if ( m_pImage )
- {
- delete m_pImage;
- m_pImage = NULL;
- }
- if ( m_pBitmap )
- {
- delete m_pBitmap;
- m_pBitmap = NULL;
- }
+ wxDELETE(m_pImage);
+ wxDELETE(m_pBitmap);
wxFileName filename = GetFileName();
{
m_pImage->Rescale( rect.width, rect.height );
m_pBitmap = new wxBitmap( *m_pImage );
- delete m_pImage;
- m_pImage = NULL;
+ wxDELETE(m_pImage);
}
dc.DrawBitmap( *m_pBitmap, rect.x, rect.y, false );