X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ec376c8fd9ff813392030426acd2317c6fa6527e..bba35861478a26f5d8c756a9a7fa2bbd19a69cb1:/src/gtk/fontpicker.cpp diff --git a/src/gtk/fontpicker.cpp b/src/gtk/fontpicker.cpp index 8934897134..00b1181bc9 100644 --- a/src/gtk/fontpicker.cpp +++ b/src/gtk/fontpicker.cpp @@ -17,23 +17,17 @@ // For compilers that support precompilation, includes "wx.h". #include "wx/wxprec.h" -#include "wx/gtk/private.h" +#if wxUSE_FONTPICKERCTRL + #include "wx/fontpicker.h" #include "wx/fontutil.h" // for wxNativeFontInfo #include "wx/gtk/private.h" -#include -#include - - - // ============================================================================ // implementation // ============================================================================ -#if wxUSE_FONTPICKERCTRL && defined(__WXGTK24__) - //----------------------------------------------------------------------------- // "font-set" //----------------------------------------------------------------------------- @@ -48,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); } } @@ -56,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, @@ -64,47 +58,40 @@ 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; + wxFAIL_MSG( wxT("wxFontButton creation failed") ); + return false; + } - if (!PreCreation( parent, pos, size ) || - !wxControl::CreateBase(parent, id, pos, size, style, validator, name)) - { - wxFAIL_MSG( wxT("wxFontButton creation failed") ); - return false; - } + m_widget = gtk_font_button_new(); - m_widget = gtk_font_button_new(); + // set initial font + m_selectedFont = initial.IsOk() ? initial : *wxNORMAL_FONT; + UpdateFont(); - // set initial font - m_selectedFont = initial; - 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(m_widget); - 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); - SetBestSize(size); - } - else - return wxGenericFontButton::Create(parent, id, initial, pos, size, - style, validator, name); return true; } @@ -114,16 +101,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 +#endif // wxUSE_FONTPICKERCTRL