X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/170acdc90e9f92f8b8120fa6c04acdbf45c89582..4e15d1caa03346c126015019c1fdf093033ef40b:/src/gtk/fontpicker.cpp diff --git a/src/gtk/fontpicker.cpp b/src/gtk/fontpicker.cpp index eda8022cc1..9aea074e1a 100644 --- a/src/gtk/fontpicker.cpp +++ b/src/gtk/fontpicker.cpp @@ -17,7 +17,7 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#if wxUSE_FONTPICKERCTRL && defined(__WXGTK24__) +#if wxUSE_FONTPICKERCTRL #include "wx/fontpicker.h" @@ -42,7 +42,7 @@ static void gtk_fontbutton_setfont_callback(GtkFontButton *widget, // fire the colour-changed event wxFontPickerEvent event(p, p->GetId(), p->GetSelectedFont()); - p->GetEventHandler()->ProcessEvent(event); + p->HandleWindowEvent(event); } } @@ -50,7 +50,7 @@ static void gtk_fontbutton_setfont_callback(GtkFontButton *widget, // wxFontButton //----------------------------------------------------------------------------- -IMPLEMENT_DYNAMIC_CLASS(wxFontButton, wxGenericFontButton) +IMPLEMENT_DYNAMIC_CLASS(wxFontButton, wxButton) bool wxFontButton::Create( wxWindow *parent, wxWindowID id, const wxFont &initial, @@ -58,48 +58,39 @@ bool wxFontButton::Create( wxWindow *parent, wxWindowID id, long style, const wxValidator& validator, const wxString &name ) { - if (!gtk_check_version(2,4,0)) + if (!PreCreation( parent, pos, size ) || + !wxControl::CreateBase(parent, id, pos, size, style, validator, name)) { - m_needParent = true; - m_acceptsFocus = true; - - if (!PreCreation( parent, pos, size ) || - !wxControl::CreateBase(parent, id, pos, size, style, validator, name)) - { - wxFAIL_MSG( wxT("wxFontButton creation failed") ); - return false; - } + wxFAIL_MSG( wxT("wxFontButton creation failed") ); + return false; + } - m_widget = gtk_font_button_new(); + m_widget = gtk_font_button_new(); + g_object_ref(m_widget); - // set initial font - m_selectedFont = initial; - UpdateFont(); + // set initial font + m_selectedFont = initial.IsOk() ? initial : *wxNORMAL_FONT; + UpdateFont(); - // honour the fontbutton styles - bool showall = (style & wxFNTP_FONTDESC_AS_LABEL) != 0, - usefont = (style & wxFNTP_USEFONT_FOR_LABEL) != 0; - gtk_font_button_set_show_style(GTK_FONT_BUTTON(m_widget), showall); - gtk_font_button_set_show_size(GTK_FONT_BUTTON(m_widget), showall); + // honour the fontbutton styles + bool showall = (style & wxFNTP_FONTDESC_AS_LABEL) != 0, + usefont = (style & wxFNTP_USEFONT_FOR_LABEL) != 0; + gtk_font_button_set_show_style(GTK_FONT_BUTTON(m_widget), showall); + gtk_font_button_set_show_size(GTK_FONT_BUTTON(m_widget), showall); - gtk_font_button_set_use_size(GTK_FONT_BUTTON(m_widget), usefont); - gtk_font_button_set_use_font(GTK_FONT_BUTTON(m_widget), usefont); + gtk_font_button_set_use_size(GTK_FONT_BUTTON(m_widget), usefont); + gtk_font_button_set_use_font(GTK_FONT_BUTTON(m_widget), usefont); - gtk_widget_show( GTK_WIDGET(m_widget) ); + // GtkFontButton signals + g_signal_connect(m_widget, "font-set", + G_CALLBACK(gtk_fontbutton_setfont_callback), this); - // GtkFontButton signals - g_signal_connect(m_widget, "font-set", - G_CALLBACK(gtk_fontbutton_setfont_callback), this); + m_parent->DoAddChild( this ); - m_parent->DoAddChild( this ); + PostCreation(size); + SetInitialSize(size); - PostCreation(size); - SetInitialSize(size); - } - else - return wxGenericFontButton::Create(parent, id, initial, pos, size, - style, validator, name); return true; } @@ -109,16 +100,11 @@ wxFontButton::~wxFontButton() void wxFontButton::UpdateFont() { - if (!gtk_check_version(2,4,0)) - { - const wxNativeFontInfo *info = m_selectedFont.GetNativeFontInfo(); - wxASSERT_MSG( info, wxT("The fontbutton's internal font is not valid ?") ); + const wxNativeFontInfo *info = m_selectedFont.GetNativeFontInfo(); + wxASSERT_MSG( info, wxT("The fontbutton's internal font is not valid ?") ); - const wxString& fontname = info->ToString(); - gtk_font_button_set_font_name(GTK_FONT_BUTTON(m_widget), wxGTK_CONV(fontname)); - } - else - wxGenericFontButton::UpdateFont(); + const wxString& fontname = info->ToString(); + gtk_font_button_set_font_name(GTK_FONT_BUTTON(m_widget), wxGTK_CONV(fontname)); } -#endif // wxUSE_FONTPICKERCTRL && defined(__WXGTK24__) +#endif // wxUSE_FONTPICKERCTRL