]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/fontpickercmn.cpp
Fix crash when accessing clipboard before entering the main loop.
[wxWidgets.git] / src / common / fontpickercmn.cpp
index 6b2b4daba0b6869166562b84e758e86494f52ce0..ff1ed56aee3a12e4756329a73b97defbc4527184 100644 (file)
     #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);
     }