X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec376c8fd9ff813392030426acd2317c6fa6527e..63ced01b228ba426db163b75667a9b57d092f8db:/src/common/fontpickercmn.cpp diff --git a/src/common/fontpickercmn.cpp b/src/common/fontpickercmn.cpp index 6b2b4daba0..ff1ed56aee 100644 --- a/src/common/fontpickercmn.cpp +++ b/src/common/fontpickercmn.cpp @@ -24,18 +24,25 @@ #pragma hdrstop #endif +#if wxUSE_FONTPICKERCTRL + #include "wx/fontpicker.h" + +#ifndef WX_PRECOMP + #include "wx/textctrl.h" +#endif + #include "wx/fontenum.h" #include "wx/tokenzr.h" - // ============================================================================ // implementation // ============================================================================ -#if wxUSE_FONTPICKERCTRL +const char wxFontPickerCtrlNameStr[] = "fontpicker"; +const char wxFontPickerWidgetNameStr[] = "fontpickerwidget"; -DEFINE_EVENT_TYPE(wxEVT_COMMAND_FONTPICKER_CHANGED) +wxDEFINE_EVENT(wxEVT_COMMAND_FONTPICKER_CHANGED, wxFontPickerEvent); IMPLEMENT_DYNAMIC_CLASS(wxFontPickerCtrl, wxPickerBase) IMPLEMENT_DYNAMIC_CLASS(wxFontPickerEvent, wxCommandEvent) @@ -51,10 +58,9 @@ bool wxFontPickerCtrl::Create( wxWindow *parent, wxWindowID id, long style, const wxValidator& validator, const wxString &name ) { - // by default, the textctrl is, if present, as big as the picker, for wxFontPickerCtrl - SetTextCtrlProportion(1); - - if (!wxPickerBase::CreateBase(parent, id, Font2String(initial), + if (!wxPickerBase::CreateBase(parent, id, + Font2String(initial.IsOk() ? initial + : *wxNORMAL_FONT), pos, size, style, validator, name)) return false; @@ -62,6 +68,9 @@ bool wxFontPickerCtrl::Create( wxWindow *parent, wxWindowID id, m_picker = new wxFontPickerWidget(this, wxID_ANY, initial, wxDefaultPosition, wxDefaultSize, GetPickerStyle(style)); + // complete sizer creation + wxPickerBase::PostCreation(); + m_picker->Connect(wxEVT_COMMAND_FONTPICKER_CHANGED, wxFontPickerEventHandler(wxFontPickerCtrl::OnFontChange), NULL, this); @@ -94,9 +103,9 @@ wxFont wxFontPickerCtrl::String2Font(const wxString &s) if (size.ToDouble(&n)) { if (n < 1) - str = str.Left(str.Len() - size.Len()) + wxT("1"); + str = str.Left(str.length() - size.length()) + wxT("1"); else if (n >= m_nMaxPointSize) - str = str.Left(str.Len() - size.Len()) + + str = str.Left(str.length() - size.length()) + wxString::Format(wxT("%d"), m_nMaxPointSize); }