[Xfce4-commits] <midori:master> sokoke_entry_set_default_text becomes gtk_entry_set_placeholder_text

Christian Dywan noreply at xfce.org
Wed Nov 9 22:08:05 CET 2011


Updating branch refs/heads/master
         to a121d24d355c7a773d19a689dd92e6ecf405c6a2 (commit)
       from 179e33d054af13f933ed92fa79489921c29bce25 (commit)

commit a121d24d355c7a773d19a689dd92e6ecf405c6a2
Author: Christian Dywan <christian at twotoasts.de>
Date:   Wed Nov 9 21:45:23 2011 +0100

    sokoke_entry_set_default_text becomes gtk_entry_set_placeholder_text
    
    GTK+ 3.2 and Hildon 2.2 have the exact same feature built-in.

 katze/gtk3-compat.c          |  103 ++++++++++++++++++++++++++++++++++++++++++
 katze/gtk3-compat.h          |    6 +++
 midori/midori-searchaction.c |    4 +-
 midori/sokoke.c              |  101 -----------------------------------------
 4 files changed, 111 insertions(+), 103 deletions(-)

diff --git a/katze/gtk3-compat.c b/katze/gtk3-compat.c
index cffff31..0c0a436 100644
--- a/katze/gtk3-compat.c
+++ b/katze/gtk3-compat.c
@@ -1,5 +1,108 @@
 #include "katze/gtk3-compat.h"
 
+#if !GTK_CHECK_VERSION (3, 2, 0) && !defined (HAVE_HILDON_2_2)
+static void
+sokoke_widget_set_pango_font_style (GtkWidget* widget,
+                                    PangoStyle style)
+{
+    /* Conveniently change the pango font style
+       For some reason we need to reset if we actually want the normal style */
+    if (style == PANGO_STYLE_NORMAL)
+        gtk_widget_modify_font (widget, NULL);
+    else
+    {
+        PangoFontDescription* font_description = pango_font_description_new ();
+        pango_font_description_set_style (font_description, PANGO_STYLE_ITALIC);
+        gtk_widget_modify_font (widget, font_description);
+        pango_font_description_free (font_description);
+    }
+}
+
+static gboolean
+sokoke_on_entry_focus_in_event (GtkEntry*      entry,
+                                GdkEventFocus* event,
+                                gpointer       userdata)
+{
+    gint has_default = GPOINTER_TO_INT (
+        g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
+    if (has_default)
+    {
+        gtk_entry_set_text (entry, "");
+        g_object_set_data (G_OBJECT (entry), "sokoke_has_default",
+                           GINT_TO_POINTER (0));
+        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
+                                            PANGO_STYLE_NORMAL);
+    }
+    return FALSE;
+}
+
+static gboolean
+sokoke_on_entry_focus_out_event (GtkEntry*      entry,
+                                 GdkEventFocus* event,
+                                 gpointer       userdata)
+{
+    const gchar* text = gtk_entry_get_text (entry);
+    if (text && !*text)
+    {
+        const gchar* default_text = (const gchar*)g_object_get_data (
+            G_OBJECT (entry), "sokoke_default_text");
+        gtk_entry_set_text (entry, default_text);
+        g_object_set_data (G_OBJECT (entry),
+                           "sokoke_has_default", GINT_TO_POINTER (1));
+        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
+                                            PANGO_STYLE_ITALIC);
+    }
+    return FALSE;
+}
+
+static void
+sokoke_on_entry_drag_data_received (GtkEntry*       entry,
+                                    GdkDragContext* drag_context,
+                                    gint            x,
+                                    gint            y,
+                                    guint           timestamp,
+                                    gpointer        user_data)
+{
+    sokoke_on_entry_focus_in_event (entry, NULL, NULL);
+}
+
+void
+gtk_entry_set_placeholder_text (GtkEntry*    entry,
+                                const gchar* default_text)
+{
+    /* Note: The default text initially overwrites any previous text */
+    gchar* old_value = g_object_get_data (G_OBJECT (entry),
+                                          "sokoke_default_text");
+    if (!old_value)
+    {
+        g_object_set_data (G_OBJECT (entry), "sokoke_has_default",
+                           GINT_TO_POINTER (1));
+        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
+                                            PANGO_STYLE_ITALIC);
+        gtk_entry_set_text (entry, default_text);
+        g_signal_connect (entry, "drag-data-received",
+            G_CALLBACK (sokoke_on_entry_drag_data_received), NULL);
+        g_signal_connect (entry, "focus-in-event",
+            G_CALLBACK (sokoke_on_entry_focus_in_event), NULL);
+        g_signal_connect (entry, "focus-out-event",
+           G_CALLBACK (sokoke_on_entry_focus_out_event), NULL);
+    }
+    else if (!gtk_widget_has_focus (GTK_WIDGET (entry)))
+    {
+        gint has_default = GPOINTER_TO_INT (
+            g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
+        if (has_default)
+        {
+            gtk_entry_set_text (entry, default_text);
+            sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
+                                                PANGO_STYLE_ITALIC);
+        }
+    }
+    g_object_set_data (G_OBJECT (entry), "sokoke_default_text",
+                       (gpointer)default_text);
+}
+#endif
+
 #if !GTK_CHECK_VERSION (2, 12, 0)
 
 void
diff --git a/katze/gtk3-compat.h b/katze/gtk3-compat.h
index 2f058de..a59ff93 100644
--- a/katze/gtk3-compat.h
+++ b/katze/gtk3-compat.h
@@ -63,6 +63,12 @@ G_BEGIN_DECLS
     #define GTK_DIALOG_NO_SEPARATOR 0
 #endif
 
+#if !GTK_CHECK_VERSION (3, 2, 0) && defined (HAVE_HILDON_2_2)
+    #define gtk_entry_set_placeholder_text hildon_gtk_entry_set_placeholder_text
+#elif !GTK_CHECK_VERSION (3, 2, 0)
+    #define gtk_entry_set_placeholder_text sokoke_entry_set_default_text
+#endif
+
 #if !GTK_CHECK_VERSION(2, 12, 0)
 
 void
diff --git a/midori/midori-searchaction.c b/midori/midori-searchaction.c
index 687cb77..0042581 100644
--- a/midori/midori-searchaction.c
+++ b/midori/midori-searchaction.c
@@ -536,7 +536,7 @@ midori_search_action_set_entry_icon (MidoriSearchAction* search_action,
         else
             gtk_icon_entry_set_icon_from_icon_name (GTK_ICON_ENTRY (entry),
                 GTK_ICON_ENTRY_PRIMARY, icon_name);
-        sokoke_entry_set_default_text (GTK_ENTRY (entry),
+        gtk_entry_set_placeholder_text (GTK_ENTRY (entry),
             katze_item_get_name (search_action->current_item));
     }
     else
@@ -544,7 +544,7 @@ midori_search_action_set_entry_icon (MidoriSearchAction* search_action,
         gtk_icon_entry_set_icon_from_stock (GTK_ICON_ENTRY (entry),
                                             GTK_ICON_ENTRY_PRIMARY,
                                             GTK_STOCK_FIND);
-        sokoke_entry_set_default_text (GTK_ENTRY (entry), "");
+        gtk_entry_set_placeholder_text (GTK_ENTRY (entry), "");
     }
 }
 
diff --git a/midori/sokoke.c b/midori/sokoke.c
index 6387491..2c2ee9d 100644
--- a/midori/sokoke.c
+++ b/midori/sokoke.c
@@ -850,107 +850,6 @@ sokoke_xfce_header_new (const gchar* icon,
     return NULL;
 }
 
-static void
-sokoke_widget_set_pango_font_style (GtkWidget* widget,
-                                    PangoStyle style)
-{
-    /* Conveniently change the pango font style
-       For some reason we need to reset if we actually want the normal style */
-    if (style == PANGO_STYLE_NORMAL)
-        gtk_widget_modify_font (widget, NULL);
-    else
-    {
-        PangoFontDescription* font_description = pango_font_description_new ();
-        pango_font_description_set_style (font_description, PANGO_STYLE_ITALIC);
-        gtk_widget_modify_font (widget, font_description);
-        pango_font_description_free (font_description);
-    }
-}
-
-static gboolean
-sokoke_on_entry_focus_in_event (GtkEntry*      entry,
-                                GdkEventFocus* event,
-                                gpointer       userdata)
-{
-    gint has_default = GPOINTER_TO_INT (
-        g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
-    if (has_default)
-    {
-        gtk_entry_set_text (entry, "");
-        g_object_set_data (G_OBJECT (entry), "sokoke_has_default",
-                           GINT_TO_POINTER (0));
-        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
-                                            PANGO_STYLE_NORMAL);
-    }
-    return FALSE;
-}
-
-static gboolean
-sokoke_on_entry_focus_out_event (GtkEntry*      entry,
-                                 GdkEventFocus* event,
-                                 gpointer       userdata)
-{
-    const gchar* text = gtk_entry_get_text (entry);
-    if (text && !*text)
-    {
-        const gchar* default_text = (const gchar*)g_object_get_data (
-            G_OBJECT (entry), "sokoke_default_text");
-        gtk_entry_set_text (entry, default_text);
-        g_object_set_data (G_OBJECT (entry),
-                           "sokoke_has_default", GINT_TO_POINTER (1));
-        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
-                                            PANGO_STYLE_ITALIC);
-    }
-    return FALSE;
-}
-
-static void
-sokoke_on_entry_drag_data_received (GtkEntry*       entry,
-                                    GdkDragContext* drag_context,
-                                    gint            x,
-                                    gint            y,
-                                    guint           timestamp,
-                                    gpointer        user_data)
-{
-    sokoke_on_entry_focus_in_event (entry, NULL, NULL);
-}
-
-void
-sokoke_entry_set_default_text (GtkEntry*    entry,
-                               const gchar* default_text)
-{
-    /* Note: The default text initially overwrites any previous text */
-    gchar* old_value = g_object_get_data (G_OBJECT (entry),
-                                          "sokoke_default_text");
-    if (!old_value)
-    {
-        g_object_set_data (G_OBJECT (entry), "sokoke_has_default",
-                           GINT_TO_POINTER (1));
-        sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
-                                            PANGO_STYLE_ITALIC);
-        gtk_entry_set_text (entry, default_text);
-        g_signal_connect (entry, "drag-data-received",
-            G_CALLBACK (sokoke_on_entry_drag_data_received), NULL);
-        g_signal_connect (entry, "focus-in-event",
-            G_CALLBACK (sokoke_on_entry_focus_in_event), NULL);
-        g_signal_connect (entry, "focus-out-event",
-           G_CALLBACK (sokoke_on_entry_focus_out_event), NULL);
-    }
-    else if (!gtk_widget_has_focus (GTK_WIDGET (entry)))
-    {
-        gint has_default = GPOINTER_TO_INT (
-            g_object_get_data (G_OBJECT (entry), "sokoke_has_default"));
-        if (has_default)
-        {
-            gtk_entry_set_text (entry, default_text);
-            sokoke_widget_set_pango_font_style (GTK_WIDGET (entry),
-                                                PANGO_STYLE_ITALIC);
-        }
-    }
-    g_object_set_data (G_OBJECT (entry), "sokoke_default_text",
-                       (gpointer)default_text);
-}
-
 gchar*
 sokoke_key_file_get_string_default (GKeyFile*    key_file,
                                     const gchar* group,


More information about the Xfce4-commits mailing list