[gtk+/font-chooser] GtkFontChooserDialog: GtkFontButton now uses GtkFontChooserDialog instead of GtkFontSelectionDialog



commit 5cdc9a2ab726d82908859c59eabfe06cda7772ca
Author: Alberto Ruiz <aruiz gnome org>
Date:   Thu Jul 28 00:22:22 2011 +0100

    GtkFontChooserDialog: GtkFontButton now uses GtkFontChooserDialog instead of GtkFontSelectionDialog

 gtk/gtkfontbutton.c           |   99 ++++++++++++++++++----------------------
 tests/testfontchooserdialog.c |   12 ++---
 2 files changed, 50 insertions(+), 61 deletions(-)
---
diff --git a/gtk/gtkfontbutton.c b/gtk/gtkfontbutton.c
index a1b1e13..2e863a8 100644
--- a/gtk/gtkfontbutton.c
+++ b/gtk/gtkfontbutton.c
@@ -33,7 +33,7 @@
 #include "gtkmain.h"
 #include "gtkhbox.h"
 #include "gtklabel.h"
-#include "gtkfontsel.h"
+#include "gtkfontchooserdialog.h"
 #include "gtkimage.h"
 #include "gtkmarshalers.h"
 #include "gtkseparator.h"
@@ -46,12 +46,12 @@
 
 /**
  * SECTION:gtkfontbutton
- * @Short_description: A button to launch a font selection dialog
+ * @Short_description: A button to launch a font chooser dialog
  * @Title: GtkFontButton
- * @See_also: #GtkFontSelectionDialog, #GtkColorButton.
+ * @See_also: #GtkFontChooserDialog, #GtkColorButton.
  *
  * The #GtkFontButton is a button which displays the currently selected
- * font an allows to open a font selection dialog to change the font.
+ * font an allows to open a font chooser dialog to change the font.
  * It is suitable widget for selecting a font in a preference dialog.
  */
 
@@ -105,9 +105,8 @@ static void gtk_font_button_set_property           (GObject            *object,
 static void gtk_font_button_clicked                 (GtkButton         *button);
 
 /* Dialog response functions */
-static void dialog_ok_clicked                       (GtkWidget         *widget,
-                                                     gpointer           data);
-static void dialog_cancel_clicked                   (GtkWidget         *widget,
+static void response_cb                             (GtkDialog         *dialog,
+                                                     gint               response_id,
                                                      gpointer           data);
 static void dialog_destroy                          (GtkWidget         *widget,
                                                      gpointer           data);
@@ -141,7 +140,7 @@ gtk_font_button_class_init (GtkFontButtonClass *klass)
   /**
    * GtkFontButton:title:
    * 
-   * The title of the font selection dialog.
+   * The title of the font chooser dialog.
    *
    * Since: 2.4
    */
@@ -149,7 +148,7 @@ gtk_font_button_class_init (GtkFontButtonClass *klass)
                                    PROP_TITLE,
                                    g_param_spec_string ("title",
                                                         P_("Title"),
-                                                        P_("The title of the font selection dialog"),
+                                                        P_("The title of the font chooser dialog"),
                                                         _("Pick a Font"),
                                                         (GTK_PARAM_READABLE |
                                                          GTK_PARAM_WRITABLE)));
@@ -387,7 +386,7 @@ gtk_font_button_new (void)
 
 /**
  * gtk_font_button_new_with_font:
- * @fontname: Name of font to display in font selection dialog
+ * @fontname: Name of font to display in font chooser dialog
  *
  * Creates a new font picker widget.
  *
@@ -404,9 +403,9 @@ gtk_font_button_new_with_font (const gchar *fontname)
 /**
  * gtk_font_button_set_title:
  * @font_button: a #GtkFontButton
- * @title: a string containing the font selection dialog title
+ * @title: a string containing the font chooser dialog title
  *
- * Sets the title for the font selection dialog.  
+ * Sets the title for the font chooser dialog.  
  *
  * Since: 2.4
  */
@@ -432,7 +431,7 @@ gtk_font_button_set_title (GtkFontButton *font_button,
  * gtk_font_button_get_title:
  * @font_button: a #GtkFontButton
  *
- * Retrieves the title of the font selection dialog.
+ * Retrieves the title of the font chooser dialog.
  *
  * Returns: an internal copy of the title string which must not be freed.
  *
@@ -524,7 +523,7 @@ gtk_font_button_get_use_size (GtkFontButton *font_button)
  */
 void  
 gtk_font_button_set_use_size (GtkFontButton *font_button,
-			      gboolean       use_size)
+                              gboolean       use_size)
 {
   g_return_if_fail (GTK_IS_FONT_BUTTON (font_button));
   
@@ -661,12 +660,12 @@ gtk_font_button_get_font_name (GtkFontButton *font_button)
 /**
  * gtk_font_button_set_font_name:
  * @font_button: a #GtkFontButton
- * @fontname: Name of font to display in font selection dialog
+ * @fontname: Name of font to display in font chooser dialog
  *
  * Sets or updates the currently-displayed font in font picker dialog.
  *
- * Returns: Return value of gtk_font_selection_dialog_set_font_name() if the
- * font selection dialog exists, otherwise %FALSE.
+ * Returns: Return value of gtk_font_chooser_dialog_set_font_name() if the
+ * font chooser dialog exists, otherwise %FALSE.
  *
  * Since: 2.4
  */
@@ -690,8 +689,8 @@ gtk_font_button_set_font_name (GtkFontButton *font_button,
   gtk_font_button_update_font_info (font_button);
   
   if (font_button->priv->font_dialog)
-    result = gtk_font_selection_dialog_set_font_name (GTK_FONT_SELECTION_DIALOG (font_button->priv->font_dialog), 
-                                                      font_button->priv->fontname);
+    result = gtk_font_chooser_dialog_set_font_name (GTK_FONT_CHOOSER_DIALOG (font_button->priv->font_dialog), 
+                                                    font_button->priv->fontname);
   else
     result = FALSE;
 
@@ -703,8 +702,8 @@ gtk_font_button_set_font_name (GtkFontButton *font_button,
 static void
 gtk_font_button_clicked (GtkButton *button)
 {
-  GtkFontSelectionDialog *font_dialog;
-  GtkFontButton    *font_button = GTK_FONT_BUTTON (button);
+  GtkFontChooserDialog *font_dialog;
+  GtkFontButton        *font_button = GTK_FONT_BUTTON (button);
   
   if (!font_button->priv->font_dialog) 
     {
@@ -712,48 +711,50 @@ gtk_font_button_clicked (GtkButton *button)
       
       parent = gtk_widget_get_toplevel (GTK_WIDGET (font_button));
       
-      font_button->priv->font_dialog = gtk_font_selection_dialog_new (font_button->priv->title);
+      font_button->priv->font_dialog = gtk_font_chooser_dialog_new (font_button->priv->title,
+                                                                    NULL);
       
-      font_dialog = GTK_FONT_SELECTION_DIALOG (font_button->priv->font_dialog);
+      font_dialog = GTK_FONT_CHOOSER_DIALOG (font_button->priv->font_dialog);
       
       if (gtk_widget_is_toplevel (parent) && GTK_IS_WINDOW (parent))
         {
           if (GTK_WINDOW (parent) != gtk_window_get_transient_for (GTK_WINDOW (font_dialog)))
- 	    gtk_window_set_transient_for (GTK_WINDOW (font_dialog), GTK_WINDOW (parent));
-	       
-	  gtk_window_set_modal (GTK_WINDOW (font_dialog),
-				gtk_window_get_modal (GTK_WINDOW (parent)));
-	}
-
-      g_signal_connect (gtk_font_selection_dialog_get_ok_button (font_dialog), "clicked",
-                        G_CALLBACK (dialog_ok_clicked), font_button);
-      g_signal_connect (gtk_font_selection_dialog_get_cancel_button (font_dialog), "clicked",
-			G_CALLBACK (dialog_cancel_clicked), font_button);
+            gtk_window_set_transient_for (GTK_WINDOW (font_dialog), GTK_WINDOW (parent));
+
+          gtk_window_set_modal (GTK_WINDOW (font_dialog),
+                                gtk_window_get_modal (GTK_WINDOW (parent)));
+        }
+
+      g_signal_connect (font_dialog, "response",
+                        G_CALLBACK (response_cb), font_button);
+
       g_signal_connect (font_dialog, "destroy",
                         G_CALLBACK (dialog_destroy), font_button);
     }
   
   if (!gtk_widget_get_visible (font_button->priv->font_dialog))
     {
-      font_dialog = GTK_FONT_SELECTION_DIALOG (font_button->priv->font_dialog);
-      
-      gtk_font_selection_dialog_set_font_name (font_dialog, font_button->priv->fontname);
-      
+      font_dialog = GTK_FONT_CHOOSER_DIALOG (font_button->priv->font_dialog);
+      gtk_font_chooser_dialog_set_font_name (font_dialog, font_button->priv->fontname);
     } 
 
   gtk_window_present (GTK_WINDOW (font_button->priv->font_dialog));
 }
 
+
 static void
-dialog_ok_clicked (GtkWidget *widget,
-		   gpointer   data)
+response_cb (GtkDialog *dialog,
+             gint       response_id,
+             gpointer   data)
 {
   GtkFontButton *font_button = GTK_FONT_BUTTON (data);
-  
   gtk_widget_hide (font_button->priv->font_dialog);
-  
+
+  if (response_id != GTK_RESPONSE_OK)
+    return;
+
   g_free (font_button->priv->fontname);
-  font_button->priv->fontname = gtk_font_selection_dialog_get_font_name (GTK_FONT_SELECTION_DIALOG (font_button->priv->font_dialog));
+  font_button->priv->fontname = gtk_font_chooser_dialog_get_font_name (GTK_FONT_CHOOSER_DIALOG (font_button->priv->font_dialog));
   
   /* Set label font */
   gtk_font_button_update_font_info (font_button);
@@ -764,19 +765,9 @@ dialog_ok_clicked (GtkWidget *widget,
   g_signal_emit (font_button, font_button_signals[FONT_SET], 0);
 }
 
-
-static void
-dialog_cancel_clicked (GtkWidget *widget,
-		       gpointer   data)
-{
-  GtkFontButton *font_button = GTK_FONT_BUTTON (data);
-  
-  gtk_widget_hide (font_button->priv->font_dialog);  
-}
-
 static void
 dialog_destroy (GtkWidget *widget,
-		gpointer   data)
+                gpointer   data)
 {
   GtkFontButton *font_button = GTK_FONT_BUTTON (data);
     
@@ -852,7 +843,7 @@ gtk_font_button_update_font_info (GtkFontButton *font_button)
   family = pango_font_description_get_family (desc);
   
 #if 0
-  /* This gives the wrong names, e.g. Italic when the font selection
+  /* This gives the wrong names, e.g. Italic when the font chooser
    * dialog displayed Oblique.
    */
   pango_font_description_unset_fields (desc, PANGO_FONT_MASK_FAMILY | PANGO_FONT_MASK_SIZE);
diff --git a/tests/testfontchooserdialog.c b/tests/testfontchooserdialog.c
index d242698..952ec8c 100644
--- a/tests/testfontchooserdialog.c
+++ b/tests/testfontchooserdialog.c
@@ -23,16 +23,14 @@
 int
 main (int argc, char *argv[])
 {
-  GtkWidget *dialog;
-  GtkWidget *ok;
+  GtkWidget *window;
 
   gtk_init (&argc, &argv);
 
-  dialog = gtk_font_chooser_dialog_new (NULL, NULL);
-
-  gtk_dialog_run (GTK_DIALOG (dialog));
-
-  gtk_widget_destroy (dialog);
+  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
+  gtk_container_add (GTK_CONTAINER (window), gtk_font_button_new ());
+  gtk_widget_show_all (window);
 
+  gtk_main ();
   return 0;
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]