]> git.saurik.com Git - wxWidgets.git/blobdiff - src/gtk/fontpicker.cpp
don't forward Enter presses to the default button if any of the ancestor windows...
[wxWidgets.git] / src / gtk / fontpicker.cpp
index 8934897134e20edc3dca34caece95fec88c62e7d..a0e12a4978fbe14951268a5ff546d6764f4fdfc9 100644 (file)
 // 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 <gdk/gdk.h>
-#include <gtk/gtk.h>
-
-
-
 // ============================================================================
 // implementation
 // ============================================================================
 
-#if wxUSE_FONTPICKERCTRL && defined(__WXGTK24__)
-
 //-----------------------------------------------------------------------------
 // "font-set"
 //-----------------------------------------------------------------------------
@@ -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