// Author: Jaakko Salli
// Modified by:
// Created: 2004-09-25
-// RCS-ID: $Id$
// Copyright: (c) Jaakko Salli
// Licence: wxWindows licence
/////////////////////////////////////////////////////////////////////////////
const wxPoint& pos,
const wxSize& sz ) const
{
- wxCHECK_MSG( property->IsKindOf(CLASSINFO(wxDateProperty)),
+ wxCHECK_MSG( wxDynamicCast(property, wxDateProperty),
NULL,
wxT("DatePickerCtrl editor can only be used with wxDateProperty or derivative.") );
wxWindow* wnd ) const
{
wxDatePickerCtrl* ctrl = (wxDatePickerCtrl*) wnd;
- wxASSERT( ctrl && ctrl->IsKindOf(CLASSINFO(wxDatePickerCtrl)) );
+ wxASSERT( wxDynamicCast(ctrl, wxDatePickerCtrl) );
wxDateTime dateValue(wxInvalidDateTime);
wxVariant v(property->GetValue());
bool wxPGDatePickerCtrlEditor::GetValueFromControl( wxVariant& variant, wxPGProperty* WXUNUSED(property), wxWindow* wnd ) const
{
wxDatePickerCtrl* ctrl = (wxDatePickerCtrl*) wnd;
- wxASSERT( ctrl && ctrl->IsKindOf(CLASSINFO(wxDatePickerCtrl)) );
+ wxASSERT( wxDynamicCast(ctrl, wxDatePickerCtrl) );
variant = ctrl->GetValue();
wxWindow* wnd ) const
{
wxDatePickerCtrl* ctrl = (wxDatePickerCtrl*) wnd;
- wxASSERT( ctrl && ctrl->IsKindOf(CLASSINFO(wxDatePickerCtrl)) );
+ wxASSERT( wxDynamicCast(ctrl, wxDatePickerCtrl) );
wxDateProperty* prop = wxDynamicCast(property, wxDateProperty);
wxString faceName = font.GetFaceName();
// If font was not in there, add it now
- if ( faceName.length() &&
+ if ( !faceName.empty() &&
wxPGGlobalVars->m_fontFamilyChoices->Index(faceName) == wxNOT_FOUND )
wxPGGlobalVars->m_fontFamilyChoices->AddAsSorted(faceName);
wxFont font;
font << m_value;
- if ( !font.Ok() )
+ if ( !font.IsOk() )
{
m_value << *wxNORMAL_FONT;
}
else
drawFace = m_value_wxFont.GetFaceName();
- if ( drawFace.length() )
+ if ( !drawFace.empty() )
{
// Draw the background
dc.SetBrush( wxColour(wxSystemSettings::GetColour(wxSYS_COLOUR_BTNFACE)) );
{
wxColourPropertyValue cpv;
- if ( colour.Ok() )
+ if ( colour.IsOk() )
cpv.Init( type, colour );
else
cpv.Init( type, *wxWHITE );
cpv << m_value;
wxColour col = cpv.m_colour;
- if ( !col.Ok() )
+ if ( !col.IsOk() )
{
SetValueToUnspecified();
SetIndex(wxNOT_FOUND);
wxColour col;
col << m_value;
- if ( !col.Ok() )
+ if ( !col.IsOk() )
{
SetValueToUnspecified();
SetIndex(wxNOT_FOUND);
return wxSystemSettings::GetColour( (wxSystemColour)index );
}
-wxString wxSystemColourProperty::ColourToString( const wxColour& col, int index ) const
+wxString wxSystemColourProperty::ColourToString( const wxColour& col,
+ int index,
+ int argFlags ) const
{
+
if ( index == wxNOT_FOUND )
- return wxString::Format(wxT("(%i,%i,%i)"),
- (int)col.Red(),
- (int)col.Green(),
- (int)col.Blue());
+ {
+
+ if ( (argFlags & wxPG_FULL_VALUE) ||
+ GetAttributeAsLong(wxPG_COLOUR_HAS_ALPHA, 0) )
+ {
+ return wxString::Format(wxS("(%i,%i,%i,%i)"),
+ (int)col.Red(),
+ (int)col.Green(),
+ (int)col.Blue(),
+ (int)col.Alpha());
+ }
+ else
+ {
+ return wxString::Format(wxS("(%i,%i,%i)"),
+ (int)col.Red(),
+ (int)col.Green(),
+ (int)col.Blue());
+ }
+ }
else
+ {
return m_choices.GetLabel(index);
+ }
}
wxString wxSystemColourProperty::ValueToString( wxVariant& value,
index = m_choices.Index(val.m_type);
}
- return ColourToString(val.m_colour, index);
+ return ColourToString(val.m_colour, index, argFlags);
}
// switched to one that has wxButton as well.
askColour = true;
}
- else if ( event.GetEventType() == wxEVT_COMMAND_COMBOBOX_SELECTED )
+ else if ( event.GetEventType() == wxEVT_COMBOBOX )
{
// Must override index detection since at this point GetIndex()
// will return old value.
const wxPropertyGrid* propertyGrid, wxPGProperty* property,
int WXUNUSED(column), int item, int WXUNUSED(flags) ) const
{
- wxASSERT( property->IsKindOf(CLASSINFO(wxSystemColourProperty)) );
+ wxASSERT( wxDynamicCast(property, wxSystemColourProperty) );
wxSystemColourProperty* prop = wxStaticCast(property, wxSystemColourProperty);
dc.SetPen(*wxBLACK_PEN);
col = GetVal().m_colour;
}
- if ( col.Ok() )
+ if ( col.IsOk() )
{
dc.SetBrush(col);
dc.DrawRectangle(rect);
if ( colStr != custColName )
{
- // Convert (R,G,B) to rgb(R,G,B)
if ( colStr.Find(wxS("(")) == 0 )
{
- colStr = wxS("rgb") + colStr;
+ // Eliminate whitespace
+ colStr.Replace(wxS(" "), wxEmptyString);
+
+ int commaCount = colStr.Freq(wxS(','));
+ if ( commaCount == 2 )
+ {
+ // Convert (R,G,B) to rgb(R,G,B)
+ colStr = wxS("rgb") + colStr;
+ }
+ else if ( commaCount == 3 )
+ {
+ // We have int alpha, CSS format that wxColour takes as
+ // input processes float alpha. So, let's parse the colour
+ // ourselves instead of trying to convert it to a format
+ // that wxColour::FromString() understands.
+ int r = -1, g = -1, b = -1, a = -1;
+ wxSscanf(colStr, wxS("(%i,%i,%i,%i)"), &r, &g, &b, &a);
+ customColour.Set(r, g, b, a);
+ conversionSuccess = customColour.IsOk();
+ }
}
- conversionSuccess = customColour.Set(colStr);
+ if ( !conversionSuccess )
+ conversionSuccess = customColour.Set(colStr);
}
if ( !conversionSuccess && m_choices.GetCount() &&
{
if ( !(argFlags & wxPG_EDITABLE_VALUE ))
{
- // This really should not occurr...
+ // This really should not occur...
// wxASSERT(false);
ResetNextIndex();
return false;
void wxColourProperty::Init( wxColour colour )
{
- if ( !colour.Ok() )
+ if ( !colour.IsOk() )
colour = *wxWHITE;
wxVariant variant;
variant << colour;
const wxString& wxPGGetDefaultImageWildcard()
{
// Form the wildcard, if not done yet
- if ( !wxPGGlobalVars->m_pDefaultImageWildcard.length() )
+ if ( wxPGGlobalVars->m_pDefaultImageWildcard.empty() )
{
wxString str;
const wxRect& rect,
wxPGPaintData& )
{
- if ( m_pBitmap || (m_pImage && m_pImage->Ok() ) )
+ if ( m_pBitmap || (m_pImage && m_pImage->IsOk() ) )
{
// Draw the thumbnail
if ( !dateTime.IsValid() )
return wxT("Invalid");
- if ( !ms_defaultDateFormat.length() )
+ if ( ms_defaultDateFormat.empty() )
{
#if wxUSE_DATEPICKCTRL
bool showCentury = m_dpStyle & wxDP_SHOWCENTURY ? true : false;
ms_defaultDateFormat = DetermineDefaultDateFormat( showCentury );
}
- if ( m_format.length() &&
+ if ( !m_format.empty() &&
!(argFlags & wxPG_FULL_VALUE) )
format = m_format.c_str();
wxString wxDateProperty::DetermineDefaultDateFormat( bool showCentury )
{
- // This code is basicly copied from datectlg.cpp's SetFormat
+ // This code is basically copied from datectlg.cpp's SetFormat
//
wxString format;