[maemo-commits] [maemo-commits] r9372 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Jan 26 16:37:36 EET 2007
Author: timj
Date: 2007-01-26 16:37:34 +0200 (Fri, 26 Jan 2007)
New Revision: 9372

Modified:
   projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkentrycompletion.c
   projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenu.c
Log:
Fri Jan 26 15:31:35 2007  Tim Janik  <timj at imendio.com>

        * Backports:

        * gtk/gtkentrycompletion.c:
        * gtk/gtkcombobox.c:
        * gtk/gtkmenu.c: set various widget names to allow style and theme
        alterations via rc-file definitions.

        * gtk/gtkcombobox.c (gtk_combo_box_set_popup_widget): explicitely set
        frame border width to 0, since the default frame border width might be
        altered by other maemo patches.




Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-26 14:32:59 UTC (rev 9371)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/ChangeLog	2007-01-26 14:37:34 UTC (rev 9372)
@@ -1,3 +1,16 @@
+Fri Jan 26 15:31:35 2007  Tim Janik  <timj at imendio.com>
+
+	* Backports:
+
+	* gtk/gtkentrycompletion.c:
+	* gtk/gtkcombobox.c:
+	* gtk/gtkmenu.c: set various widget names to allow style and theme
+	alterations via rc-file definitions.
+
+	* gtk/gtkcombobox.c (gtk_combo_box_set_popup_widget): explicitely set
+	frame border width to 0, since the default frame border width might be
+	altered by other maemo patches.
+
 2007-01-26  Michael Natterer  <mitch at imendio.com>
 
 	* modules/input/gtkimcontextxim.c (gtk_im_context_xim_finalize):

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c	2007-01-26 14:32:59 UTC (rev 9371)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkcombobox.c	2007-01-26 14:37:34 UTC (rev 9372)
@@ -1274,6 +1274,9 @@
 	  GtkWidget *toplevel;
 	  
           combo_box->priv->popup_window = gtk_window_new (GTK_WINDOW_POPUP);
+#ifdef MAEMO_CHANGES
+          gtk_widget_set_name (combo_box->priv->popup_window, "hildon-combobox-window"); 
+#endif /* MAEMO_CHANGES */
 
 	  gtk_window_set_type_hint (GTK_WINDOW (combo_box->priv->popup_window),
 				    GDK_WINDOW_TYPE_HINT_COMBO);
@@ -1299,6 +1302,12 @@
                                  gtk_widget_get_screen (GTK_WIDGET (combo_box)));
 
           combo_box->priv->popup_frame = gtk_frame_new (NULL);
+          
+#ifdef MAEMO_CHANGES
+          /* Hildon: undo the changes made to GtkFrame defaults */
+          gtk_container_set_border_width (GTK_CONTAINER (combo_box->priv->popup_frame), 0);
+#endif /* MAEMO_CHANGES */
+
           gtk_frame_set_shadow_type (GTK_FRAME (combo_box->priv->popup_frame),
                                      GTK_SHADOW_ETCHED_IN);
           gtk_container_add (GTK_CONTAINER (combo_box->priv->popup_window),

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkentrycompletion.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkentrycompletion.c	2007-01-26 14:32:59 UTC (rev 9371)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkentrycompletion.c	2007-01-26 14:37:34 UTC (rev 9372)
@@ -455,6 +455,10 @@
   gtk_box_pack_start (GTK_BOX (priv->vbox), priv->scrolled_window,
                       TRUE, TRUE, 0);
 
+#ifdef MAEMO_CHANGES
+  gtk_widget_set_name (priv->popup_window, "hildon-completion-window"); 
+#endif /* MAEMO_CHANGES */
+
   /* we don't want to see the action treeview when no actions have
    * been inserted, so we pack the action treeview after the first
    * action has been added

Modified: projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenu.c
===================================================================
--- projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenu.c	2007-01-26 14:32:59 UTC (rev 9371)
+++ projects/haf/branches/gtk+/maemo-gtk-2-10/gtk/gtkmenu.c	2007-01-26 14:37:34 UTC (rev 9372)
@@ -43,6 +43,9 @@
 #include "gtksettings.h"
 #include "gtkprivate.h"
 #include "gtkintl.h"
+#ifdef MAEMO_CHANGES
+#include "gtkmenubar.h"
+#endif /* MAEMO_CHANGES */
 #include "gtkalias.h"
 
 
@@ -1243,6 +1246,49 @@
   return FALSE;
 }
 
+#ifdef MAEMO_CHANGES
+#define HILDON_MENU_NAME_SHARP                  "menu_with_corners"
+/* needed to allow different themeing for first level menus */
+#define HILDON_MENU_NAME_ROUND_FIRST_LEVEL      "menu_without_corners_first_level"
+#define HILDON_MENU_NAME_ROUND                  "menu_without_corners"
+#define HILDON_MENU_NAME_FORCE_SHARP            "menu_force_with_corners"
+#define HILDON_MENU_NAME_FORCE_ROUND            "menu_force_without_corners"
+
+/* Little help function for making some sanity tests on this menu.
+ * Checks that given widget really is a menu and that it has no name 
+ * assigned to it yet.
+ * Names used to do hildon theming:
+ * HILDON_MENU_NAME_SHARP for menu with sharp upper corners
+ * HILDON_MENU_NAME_ROUND for menu with round corners
+ */
+static gboolean 
+maemo_menu_check_name (GtkWidget *widget) 
+{
+  gboolean legal_name = FALSE;
+  gchar **tmp = NULL;
+  const gchar *name = NULL;
+  static gchar *menu_names[] = { "GtkMenu",
+				 HILDON_MENU_NAME_SHARP,
+				 HILDON_MENU_NAME_ROUND,
+				 HILDON_MENU_NAME_ROUND_FIRST_LEVEL,
+				 NULL };
+  if (GTK_IS_MENU (widget) &&
+      (name = gtk_widget_get_name (widget)))
+    {
+      if (!g_ascii_strcasecmp (name, HILDON_MENU_NAME_FORCE_SHARP) || !g_ascii_strcasecmp (name, HILDON_MENU_NAME_FORCE_ROUND))
+	return FALSE;
+      for (tmp = menu_names; *tmp; tmp++) 
+        if (!g_ascii_strcasecmp (name, *tmp ))
+	  {
+  	    legal_name = TRUE;
+	    break;
+          }
+    }
+  
+  return legal_name;
+}
+#endif /* MAEMO_CHANGES */
+
 /**
  * gtk_menu_popup:
  * @menu: a #GtkMenu.
@@ -1344,6 +1390,19 @@
     {
       if (popup_grab_on_window (xgrab_shell->window, activate_time, grab_keyboard))
 	GTK_MENU_SHELL (xgrab_shell)->have_xgrab = TRUE;
+
+#ifdef MAEMO_CHANGES
+      /* Maemo: enable rc-file theming */
+      if (maemo_menu_check_name (widget))
+        {
+          if (GTK_IS_MENU_BAR (parent_menu_shell))
+            gtk_widget_set_name (widget, HILDON_MENU_NAME_SHARP);
+          else if (GTK_IS_MENU (parent_menu_shell))
+            gtk_widget_set_name( widget, HILDON_MENU_NAME_ROUND);
+          else
+            gtk_widget_set_name (widget, HILDON_MENU_NAME_ROUND_FIRST_LEVEL);
+        }
+#endif /* MAEMO_CHANGES */
     }
   else
     {
@@ -1353,6 +1412,12 @@
       transfer_window = menu_grab_transfer_window_get (menu);
       if (popup_grab_on_window (transfer_window, activate_time, grab_keyboard))
 	GTK_MENU_SHELL (xgrab_shell)->have_xgrab = TRUE;
+
+#ifdef MAEMO_CHANGES
+      /* Maemo: enable rc-file theming */
+      if (maemo_menu_check_name (widget))
+        gtk_widget_set_name (widget, HILDON_MENU_NAME_ROUND_FIRST_LEVEL);
+#endif /* MAEMO_CHANGES */
     }
 
   if (!GTK_MENU_SHELL (xgrab_shell)->have_xgrab)


More information about the maemo-commits mailing list