X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/fec9cc08e7d94574af3f04b4c5fbafde63ac0b31..69384772acc96ab55b235f8d0e4d67d8ee4d6862:/src/common/clrpickercmn.cpp diff --git a/src/common/clrpickercmn.cpp b/src/common/clrpickercmn.cpp index 6b7ea1c768..8320178596 100644 --- a/src/common/clrpickercmn.cpp +++ b/src/common/clrpickercmn.cpp @@ -4,7 +4,6 @@ // Author: Francesco Montorsi (readapted code written by Vadim Zeitlin) // Modified by: // Created: 15/04/2006 -// RCS-ID: $Id$ // Copyright: (c) Vadim Zeitlin, Francesco Montorsi // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// @@ -32,12 +31,14 @@ #include "wx/textctrl.h" #endif +const char wxColourPickerCtrlNameStr[] = "colourpicker"; +const char wxColourPickerWidgetNameStr[] = "colourpickerwidget"; // ============================================================================ // implementation // ============================================================================ -DEFINE_EVENT_TYPE(wxEVT_COMMAND_COLOURPICKER_CHANGED) +wxDEFINE_EVENT(wxEVT_COLOURPICKER_CHANGED, wxColourPickerEvent); IMPLEMENT_DYNAMIC_CLASS(wxColourPickerCtrl, wxPickerBase) IMPLEMENT_DYNAMIC_CLASS(wxColourPickerEvent, wxEvent) @@ -59,9 +60,14 @@ bool wxColourPickerCtrl::Create( wxWindow *parent, wxWindowID id, // we are not interested to the ID of our picker as we connect // to its "changed" event dynamically... - m_picker = new wxColourPickerWidget(this, wxID_ANY, col, wxPoint(40,0), wxSize(30,-1), + m_picker = new wxColourPickerWidget(this, wxID_ANY, col, + wxDefaultPosition, wxDefaultSize, GetPickerStyle(style)); - m_picker->Connect(wxEVT_COMMAND_COLOURPICKER_CHANGED, + + // complete sizer creation + wxPickerBase::PostCreation(); + + m_picker->Connect(wxEVT_COLOURPICKER_CHANGED, wxColourPickerEventHandler(wxColourPickerCtrl::OnColourChange), NULL, this); @@ -77,7 +83,7 @@ void wxColourPickerCtrl::SetColour(const wxColour &col) bool wxColourPickerCtrl::SetColour(const wxString &text) { wxColour col(text); // smart wxString->wxColour conversion - if ( !col.Ok() ) + if ( !col.IsOk() ) return false; M_PICKER->SetColour(col); UpdateTextCtrlFromPicker(); @@ -89,16 +95,9 @@ void wxColourPickerCtrl::UpdatePickerFromTextCtrl() { wxASSERT(m_text); - if (m_bIgnoreNextTextCtrlUpdate) - { - // ignore this update - m_bIgnoreNextTextCtrlUpdate = false; - return; - } - // wxString -> wxColour conversion wxColour col(m_text->GetValue()); - if ( !col.Ok() ) + if ( !col.IsOk() ) return; // invalid user input if (M_PICKER->GetColour() != col) @@ -116,11 +115,9 @@ void wxColourPickerCtrl::UpdateTextCtrlFromPicker() if (!m_text) return; // no textctrl to update - // NOTE: this SetValue() will generate an unwanted wxEVT_COMMAND_TEXT_UPDATED - // which will trigger a unneeded UpdateFromTextCtrl(); thus before using - // SetValue() we set the m_bIgnoreNextTextCtrlUpdate flag... - m_bIgnoreNextTextCtrlUpdate = true; - m_text->SetValue(M_PICKER->GetColour().GetAsString()); + // Take care to use ChangeValue() here and not SetValue() to avoid + // infinite recursion. + m_text->ChangeValue(M_PICKER->GetColour().GetAsString()); }