[maemo-commits] [maemo-commits] r12928 - in projects/haf/trunk/hildon-desktop: . libhildondesktop src

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Mon Jul 30 18:26:36 EEST 2007
Author: lucasr
Date: 2007-07-30 18:26:33 +0300 (Mon, 30 Jul 2007)
New Revision: 12928

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
   projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c
   projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c
   projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
Log:
2007-07-30  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-switcher-menu.c, src/hd-applications-menu.c: use new "parent"
	property of HildonDesktopPopupMenu to correctly handle scroll buttons. 
	Several layout fixes. Use separator between menu items. Set names of
	scroll buttons in order to make the menu themable.
	* src/hd-switcher-menu-item.c: several layout fixes.
	* libhildondesktop/hildon-desktop-popup-menu.c: added "parent"
	property which holds the parent widget which defines the maximum
	height for the menu. Take the border-width from "parent" widget into
	account when setting its size. Several fixes in the sizing behavior.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-30 15:19:27 UTC (rev 12927)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-30 15:26:33 UTC (rev 12928)
@@ -1,3 +1,15 @@
+2007-07-30  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* src/hd-switcher-menu.c, src/hd-applications-menu.c: use new "parent"
+	property of HildonDesktopPopupMenu to correctly handle scroll buttons. 
+	Several layout fixes. Use separator between menu items. Set names of
+	scroll buttons in order to make the menu themable.
+	* src/hd-switcher-menu-item.c: several layout fixes.
+	* libhildondesktop/hildon-desktop-popup-menu.c: added "parent"
+	property which holds the parent widget which defines the maximum
+	height for the menu. Take the border-width from "parent" widget into
+	account when setting its size. Several fixes in the sizing behavior.
+
 2007-07-30  Johan Bilien  <johan.bilien at nokia.com>
 
 	* src/hd-app-menu-dialog.c:

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-07-30 15:19:27 UTC (rev 12927)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-popup-menu.c	2007-07-30 15:26:33 UTC (rev 12928)
@@ -42,7 +42,8 @@
 enum
 {
   PROP_POPUP_ITEM_HEIGHT=1,
-  PROP_POPUP_RESIZE_PARENT	  
+  PROP_POPUP_RESIZE_PARENT,
+  PROP_POPUP_PARENT,
 };
 
 enum
@@ -56,6 +57,8 @@
 
 struct _HildonDesktopPopupMenuPrivate
 {
+  GtkWidget    *parent;
+
   GtkWidget    *viewport;
   GtkWidget    *box_items;
 
@@ -103,6 +106,8 @@
 {
   menu->priv = HILDON_DESKTOP_POPUP_MENU_GET_PRIVATE (menu);
 
+  menu->priv->parent = NULL;
+  
   menu->priv->item_height  =
   menu->priv->n_items = 0;
 
@@ -174,6 +179,15 @@
                                             TRUE,
                                             G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
 
+  g_object_class_install_property (object_class,
+                                   PROP_POPUP_PARENT,
+                                   g_param_spec_object(
+                                           "parent",
+                                           "parent",
+                                           "The menu parent window that should be resized",
+                                            GTK_TYPE_WIDGET,
+                                            G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY));
+
 }
 
 static gboolean
@@ -386,6 +400,10 @@
       g_value_set_boolean (value, menu->priv->resize_parent);
       break;
 
+    case PROP_POPUP_PARENT:
+      g_value_set_object (value, menu->priv->parent);
+      break;
+
    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -410,6 +428,10 @@
       menu->priv->resize_parent = g_value_get_boolean (value);
       break;
 
+   case PROP_POPUP_PARENT:
+      menu->priv->parent = g_value_get_object (value);
+      break;
+
    default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
       break;
@@ -463,7 +485,7 @@
   GtkRequisition req;
   GtkAdjustment *adj;
   gdouble position;
-  gint delta = menu->priv->item_height;
+  gint delta = menu->priv->item_height + 1;
  
   adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (menu->priv->viewport));
 
@@ -472,11 +494,9 @@
   
   position = gtk_adjustment_get_value (adj);
 
-  GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
-
-  if (parent)
+  if (menu->priv->parent)
   {		  
-    gtk_widget_size_request (parent, &req);
+    gtk_widget_size_request (menu->priv->parent, &req);
  
     if ((gint) (position + (gdouble) delta) <= adj->upper - adj->page_size)
       gtk_adjustment_set_value (adj, position + (gdouble) delta); 
@@ -533,14 +553,12 @@
   gdouble upper_hack; 
   GtkRequisition req;
 
-  GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
+  gtk_widget_size_request (menu->priv->parent, &req);
 
-  gtk_widget_size_request (parent, &req);
-
   adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (menu->priv->viewport));
   
-  if (parent && GTK_IS_WINDOW (parent)) 
-    upper_hack = adj->upper - (req.height - menu->priv->item_height);
+  if (menu->priv->parent) 
+    upper_hack = adj->upper - (req.height - menu->priv->item_height + 1);
   else
     upper_hack = adj->upper;	  
 
@@ -662,23 +680,29 @@
 static void 
 hildon_desktop_popup_menu_parent_size (HildonDesktopPopupMenu *menu)
 {
+  GtkRequisition req, parent_req;
   GList *children = NULL, *l;
   gint d_height = 0;
+  gint max_height;
   gboolean show_scroll_controls = FALSE;
-  GtkRequisition req;
-  gint screen_height = gdk_screen_height ();
 
-  GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
- 
+  if (menu->priv->parent)
+    gtk_widget_size_request (menu->priv->parent, &parent_req);
+
+  if (!menu->priv->resize_parent && menu->priv->parent)
+    max_height = parent_req.height; 
+  else
+    max_height = gdk_screen_height ();
+
   children = gtk_container_get_children (GTK_CONTAINER (menu->priv->box_items));
-
+  
   for (l = children; l != NULL; l = g_list_next (l))
   {
     gtk_widget_size_request (GTK_WIDGET (l->data), &req);
 
     d_height += req.height;
 
-    if (d_height > screen_height)
+    if (d_height > max_height)
     {	  
       d_height -= menu->priv->item_height;	  
       show_scroll_controls = TRUE;
@@ -690,7 +714,7 @@
   {
     hildon_desktop_popup_menu_show_controls (menu);	  
     gtk_widget_set_size_request 
-       (menu->priv->viewport, -1, screen_height - menu->priv->item_height - 4); /*d_height - menu->priv->item_height);*/
+       (menu->priv->viewport, -1, max_height - menu->priv->item_height - 8);
   }
   else
   {
@@ -701,29 +725,36 @@
 
   gtk_widget_queue_resize (menu->priv->viewport);
  
-  if (menu->priv->resize_parent && GTK_IS_WINDOW (parent))
-  {	  
-    gtk_widget_size_request (parent, &req);
-    gtk_widget_set_size_request (parent,
+  if (menu->priv->resize_parent && GTK_IS_WINDOW (menu->priv->parent))
+  {
+    gint border_width;
+
+    g_object_get (G_OBJECT (menu->priv->parent),
+		  "border-width", &border_width,
+		  NULL); 
+    
+    gtk_widget_size_request (menu->priv->parent, &req);
+
+    gtk_widget_set_size_request (menu->priv->parent,
 		    		 req.width,
 				 show_scroll_controls ? 
-				 screen_height : 
-				 d_height);
+				 max_height : 
+				 d_height + (2 * border_width));
 
-    if (GTK_WIDGET_MAPPED (parent))
+    if (GTK_WIDGET_MAPPED (menu->priv->parent))
     {	    
       g_signal_emit_by_name (menu, "popup-menu-resize");
 	    
       gtk_widget_queue_resize (GTK_WIDGET (menu));    
-      gtk_widget_queue_resize (parent);
+      gtk_widget_queue_resize (menu->priv->parent);
     }
     
-    if (GTK_WIDGET_REALIZED (parent))
-      gdk_window_resize (parent->window,
+    if (GTK_WIDGET_REALIZED (menu->priv->parent))
+      gdk_window_resize (menu->priv->parent->window,
 		         req.width,
 			 show_scroll_controls ? 
-			 screen_height : 
-			 d_height);
+			 max_height : 
+	                 d_height + (2 * border_width));
   }
 
   g_list_free (children);
@@ -779,11 +810,9 @@
   g_return_if_fail (HILDON_DESKTOP_IS_POPUP_MENU (menu));
   g_return_if_fail (GTK_IS_MENU_ITEM (item));
 
-  GtkWidget *parent = gtk_widget_get_parent (GTK_WIDGET (menu));
-
-  if (GTK_IS_WINDOW (parent))
+  if (GTK_IS_WINDOW (menu->priv->parent))
   {
-      gtk_widget_size_request (parent, &req);
+      gtk_widget_size_request (menu->priv->parent, &req);
       item_width = req.width;
   }
   
@@ -807,7 +836,7 @@
 
   gtk_widget_set_size_request (menu->priv->box_buttons, 
 		  	       item_width, 
-			       menu->priv->item_height - 4);
+			       menu->priv->item_height);
 
   menu->priv->n_items++;
 

Modified: projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c	2007-07-30 15:19:27 UTC (rev 12927)
+++ projects/haf/trunk/hildon-desktop/src/hd-applications-menu.c	2007-07-30 15:26:33 UTC (rev 12928)
@@ -86,7 +86,7 @@
 #define MENU_ITEM_SUBMENU_ICON        "qgn_list_gene_fldr_cls"
 #define MENU_ITEM_SUBMENU_ICON_DIMMED "qgn_list_gene_nonreadable_fldr"
 #define MENU_ITEM_DEFAULT_APP_ICON    "qgn_list_gene_default_app"
-#define MENU_ITEM_ICON_SIZE           26
+#define MENU_ITEM_ICON_SIZE           64
 
 #define MENU_ITEM_EMPTY_SUBMENU_STRING _("tana_li_of_noapps")
 
@@ -165,6 +165,9 @@
   
   priv->button = hildon_desktop_toggle_button_new ();
 
+  gtk_widget_set_extension_events (GTK_WIDGET (priv->button),
+                                   GDK_EXTENSION_EVENTS_ALL);
+
   icon = gtk_image_new_from_pixbuf (get_icon (OTHERS_MENU_ICON_NAME,
 				 	      OTHERS_MENU_ICON_SIZE));
 
@@ -532,11 +535,13 @@
                  "Unable to launch.");
     }
   }
-  
+
+  hildon_desktop_popup_window_popdown (button->priv->popup_window);
+#if 0  
   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button->priv->button), 
 		                FALSE);
-
-  g_free(program);
+#endif
+  g_free (program);
 }
 
 static void
@@ -563,7 +568,8 @@
   gchar *item_service = NULL;
   gchar *item_desktop_id = NULL;
   gchar *item_text_domain = NULL;
-
+  gboolean first_item = TRUE;
+  
   if (model == NULL)
   {
     model = get_menu_contents ();
@@ -593,7 +599,7 @@
      
     gtk_tree_model_get (model, iter,
 		        TREE_MODEL_LOCALIZED_NAME, &item_name,
-		        TREE_MODEL_ICON, &item_icon,
+		        TREE_MODEL_THUMB_ICON, &item_icon,
 		        TREE_MODEL_EXEC, &item_exec,
 		        TREE_MODEL_SERVICE, &item_service,
 		        TREE_MODEL_DESKTOP_ID, &item_desktop_id,
@@ -624,7 +630,7 @@
       		          label,
       		          TRUE, 
       		          TRUE, 
-      		          15);
+      		          6);
       
       gtk_container_add (GTK_CONTAINER (menu_item), hbox);
       
@@ -670,6 +676,7 @@
     {
       /* Separator */
       menu_item = gtk_separator_menu_item_new ();
+      gtk_widget_set_size_request (GTK_WIDGET (menu_item), -1, 1);
     }
     else if (level > 0)
     {
@@ -706,11 +713,13 @@
 
 	image = gtk_image_new_from_pixbuf (item_icon);
 	
+        gtk_misc_set_alignment (GTK_MISC (image), 0.0, 0.5);
+
 	gtk_box_pack_start (GTK_BOX (hbox),
 			    image, 
 			    FALSE, 
 			    FALSE, 
-			    15);
+			    10);
 
         label = gtk_label_new ((item_text_domain && *item_text_domain) ?
 			        dgettext(item_text_domain, item_name) : _(item_name)), 
@@ -747,6 +756,19 @@
 
     if (menu_item)
     {
+      if (!first_item)
+      {
+        GtkWidget *separator = gtk_separator_menu_item_new ();
+
+	gtk_widget_set_size_request (GTK_WIDGET (separator), -1, 1);
+
+        menu_items = g_list_prepend (menu_items, separator);
+      }
+      else
+      {
+        first_item = FALSE;
+      }
+
       menu_items = g_list_prepend (menu_items, menu_item);
     }
       
@@ -853,18 +875,18 @@
   
   gtk_widget_set_name (GTK_WIDGET (popup_window), HD_APPS_MENU_POPUP_WINDOW_NAME);
 
-  gtk_widget_set_size_request (GTK_WIDGET (popup_window), 650, 480);
+  gtk_widget_set_size_request (GTK_WIDGET (popup_window), 640, 445);
 
   /* We don't attach the widget because if we do it, we cannot be on top of 
    * virtual keyboard. Anyway it should be transient to button->priv->button
    */
-  
   hildon_desktop_popup_window_attach_widget (popup_window, NULL);
   
   button->priv->menu_categories =
     HILDON_DESKTOP_POPUP_MENU (g_object_new (HILDON_DESKTOP_TYPE_POPUP_MENU,
-		  		    	     "item-height", 68,
+		  		    	     "item-height", 72,
 		  		    	     "resize-parent", FALSE,
+					     "parent", popup_window,
 				    	     NULL));
 
   g_signal_connect (G_OBJECT (button->priv->menu_categories),
@@ -903,8 +925,9 @@
 
   button->priv->menu_applications =
     HILDON_DESKTOP_POPUP_MENU (g_object_new (HILDON_DESKTOP_TYPE_POPUP_MENU,
-		  		    	     "item-height", 68,
+		  		    	     "item-height", 72,
 		  		    	     "resize-parent", FALSE,
+					     "parent", popup_window,
 				    	     NULL));
 
   gtk_widget_show (GTK_WIDGET (button->priv->menu_applications));

Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c	2007-07-30 15:19:27 UTC (rev 12927)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu-item.c	2007-07-30 15:26:33 UTC (rev 12928)
@@ -68,19 +68,19 @@
 #define ANIM_FPS      2
 
 /* Hardcoded pixel perfecting values */
-#define AS_BUTTON_BORDER_WIDTH  0
-#define AS_MENU_BORDER_WIDTH    20
-#define AS_TIP_BORDER_WIDTH 	20
-#define AS_BUTTON_HEIGHT        38
-#define AS_ROW_HEIGHT 		30
-#define AS_ICON_SIZE            26
-#define AS_CLOSE_BUTTON_SIZE    16
+#define AS_BUTTON_BORDER_WIDTH     0
+#define AS_MENU_BORDER_WIDTH       20
+#define AS_TIP_BORDER_WIDTH 	   20
+#define AS_BUTTON_HEIGHT           38
+#define AS_ROW_HEIGHT 		   30
+#define AS_ICON_SIZE               26
+#define AS_CLOSE_BUTTON_SIZE       16
 #define AS_CLOSE_BUTTON_THUMB_SIZE 40
-#define AS_TOOLTIP_WIDTH        360
-#define AS_MENU_ITEM_WIDTH      360
-#define AS_INTERNAL_PADDING     10
-#define AS_SEPARATOR_HEIGHT     10
-#define AS_BUTTON_BOX_PADDING   10
+#define AS_TOOLTIP_WIDTH           360
+#define AS_MENU_ITEM_WIDTH         360
+#define AS_INTERNAL_PADDING        10
+#define AS_SEPARATOR_HEIGHT        10
+#define AS_BUTTON_BOX_PADDING      10
 
 /*
  * HDSwitcherMenuItem

Modified: projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-07-30 15:19:27 UTC (rev 12927)
+++ projects/haf/trunk/hildon-desktop/src/hd-switcher-menu.c	2007-07-30 15:26:33 UTC (rev 12928)
@@ -87,8 +87,8 @@
 #define AS_MENU_BORDER_WIDTH    20
 #define AS_TIP_BORDER_WIDTH 	20
 #define AS_BUTTON_HEIGHT        38
-#define AS_MENU_BUTTON_HEIGHT  116
-#define AS_ROW_HEIGHT 		    30
+#define AS_MENU_BUTTON_HEIGHT   116
+#define AS_ROW_HEIGHT 		30
 #define AS_ICON_SIZE            26
 #define AS_TOOLTIP_WIDTH        360
 #define AS_MENU_ITEM_WIDTH      360
@@ -102,8 +102,6 @@
 #define SWITCHER_BUTTON_UP "qgn_list_tasknavigator_appswitcher"
 #define SWITCHER_BUTTON_DOWN "qgn_list_tasknavigator_appswitcher"
 
-#define SWITCHER_BUTTON_NAME ""
-
 #define SWITCHER_TOGGLE_BUTTON GTK_BIN(switcher)->child
 
 #define SWITCHER_DETTACHED_TIMEOUT 5000
@@ -113,13 +111,13 @@
 #define HD_SWITCHER_MENU_APP_WINDOW_NAME      "hildon-switcher-menu-app-window"
 #define HD_SWITCHER_MENU_APP_MENU_NAME        "hildon-switcher-menu-app-menu"
 #define HD_SWITCHER_MENU_APP_MENU_ITEM_NAME   "hildon-switcher-menu-app-item"
-#define HD_SWITCHER_MENU_APP_BUTTON_UP_NAME   ""
-#define HD_SWITCHER_MENU_APP_BUTTON_DOWN_NAME ""
+#define HD_SWITCHER_MENU_APP_BUTTON_UP_NAME   "hildon-switcher-menu-app-button"
+#define HD_SWITCHER_MENU_APP_BUTTON_DOWN_NAME "hildon-switcher-menu-app-button"
 #define HD_SWITCHER_MENU_NOT_WINDOW_NAME      "hildon-switcher-menu-not-window"
 #define HD_SWITCHER_MENU_NOT_MENU_NAME        "hildon-switcher-menu-not-menu"
 #define HD_SWITCHER_MENU_NOT_MENU_ITEM_NAME   "hildon-switcher-menu-not-item"
-#define HD_SWITCHER_MENU_NOT_BUTTON_UP_NAME   ""
-#define HD_SWITCHER_MENU_NOT_BUTTON_DOWN_NAME ""
+#define HD_SWITCHER_MENU_NOT_BUTTON_UP_NAME   "hildon-switcher-menu-not-button"
+#define HD_SWITCHER_MENU_NOT_BUTTON_DOWN_NAME "hildon-switcher-menu-not-button"
 
 enum 
 {
@@ -279,6 +277,18 @@
   hildon_desktop_popup_recalculate_position (switcher->priv->popup_window);  
 }	
 
+static GtkWidget *
+hd_switcher_menu_create_separator ()
+{
+  GtkWidget *separator;
+
+  separator = gtk_separator_menu_item_new ();
+
+  gtk_widget_set_size_request (separator, -1, 1);
+
+  return separator;
+}
+
 static GdkPixbuf *
 hd_switcher_menu_get_icon_from_theme (HDSwitcherMenu *switcher,
                                      const gchar     *icon_name,
@@ -596,7 +606,7 @@
     
     hildon_desktop_popup_menu_add_item
       (switcher->priv->menu_notifications,
-      GTK_MENU_ITEM (gtk_separator_menu_item_new ()));
+      GTK_MENU_ITEM (hd_switcher_menu_create_separator ()));
 
     menu_item = hd_switcher_menu_item_new_from_notification_group
       (ngroup->notifications, icon, summary, ngroup->dbus_callback, TRUE);
@@ -744,9 +754,10 @@
 {
   GObject *object;
   HDSwitcherMenu *switcher;
-  GtkWidget *button;
   HDWM *hdwm = hd_wm_get_singleton ();
-  GdkPixbuf *pixbuf, *icon_up = NULL, *icon_down = NULL;
+  const GtkWidget *button_up, *button_down;
+  GdkPixbuf *pixbuf;
+  GtkWidget *button, *arrow;
 
   object = G_OBJECT_CLASS (hd_switcher_menu_parent_class)->constructor (gtype,
            	                                                        n_params,
@@ -775,11 +786,9 @@
     HILDON_DESKTOP_POPUP_WINDOW 
       (hildon_desktop_popup_window_new (1,GTK_ORIENTATION_HORIZONTAL,HD_POPUP_WINDOW_DIRECTION_RIGHT_BOTTOM));	     
 
-#if 0
   g_object_set (G_OBJECT (switcher->priv->popup_window), 
 		"border-width", 4,
 		NULL);
-#endif  
  
   /* We don't attach the widget because if we do it, we cannot be on top of 
    * virtual keyboard. Anyway it should be transient to button
@@ -791,11 +800,9 @@
   switcher->priv->notifications_window = 
     hildon_desktop_popup_window_get_pane (switcher->priv->popup_window, 0);
 
-#if 0
   g_object_set (G_OBJECT (switcher->priv->notifications_window), 
 		"border-width", 4,
 		NULL);
-#endif
   
   gtk_widget_set_size_request (GTK_WIDGET (switcher->priv->popup_window),
 			       340, 100);
@@ -806,11 +813,13 @@
   switcher->priv->menu_applications =
     HILDON_DESKTOP_POPUP_MENU (g_object_new (HILDON_DESKTOP_TYPE_POPUP_MENU,
 		  		    	     "item-height", 72,
+		  		    	     "parent", switcher->priv->popup_window,
 				    	     NULL));	    
 
   switcher->priv->menu_notifications =
     HILDON_DESKTOP_POPUP_MENU (g_object_new (HILDON_DESKTOP_TYPE_POPUP_MENU,
 		  			     "item-height", 72,
+		  		    	     "parent", switcher->priv->notifications_window,
 					     NULL));
 
   gtk_container_add (GTK_CONTAINER (switcher->priv->popup_window),
@@ -822,54 +831,42 @@
   gtk_widget_show (GTK_WIDGET (switcher->priv->menu_applications));
   gtk_widget_show (GTK_WIDGET (switcher->priv->menu_notifications));
 
-  icon_up = 
-    hd_switcher_menu_get_icon_from_theme (switcher,
-		                          SWITCHER_BUTTON_UP,
-		    			  -1);
+  button_up = 
+    hildon_desktop_popup_menu_get_scroll_button_up (switcher->priv->menu_applications);
 
-  icon_down = 
-    hd_switcher_menu_get_icon_from_theme (switcher,
-		    			  SWITCHER_BUTTON_DOWN,
-		    			  -1);
-	  
-  if (icon_up && icon_down)
-  {
-    const GtkWidget *button_up, *button_down;
-    GtkWidget *image_up, *image_down;
+  gtk_widget_set_name (GTK_WIDGET (button_up), HD_SWITCHER_MENU_APP_BUTTON_UP_NAME);
+  
+  arrow = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_NONE);
+  gtk_container_add (GTK_CONTAINER (button_up), arrow);
+  gtk_widget_show (arrow);
+ 
+  button_down =
+    hildon_desktop_popup_menu_get_scroll_button_down (switcher->priv->menu_applications);
 
-    button_up = 
-      hildon_desktop_popup_menu_get_scroll_button_up (switcher->priv->menu_applications);
-    button_down =
-      hildon_desktop_popup_menu_get_scroll_button_down (switcher->priv->menu_applications);
+  gtk_widget_set_name (GTK_WIDGET (button_down), HD_SWITCHER_MENU_APP_BUTTON_DOWN_NAME);
+  
+  arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
+  gtk_container_add (GTK_CONTAINER (button_down), arrow);
+  gtk_widget_show (arrow);
+ 
+  button_up = 
+    hildon_desktop_popup_menu_get_scroll_button_up (switcher->priv->menu_notifications);
 
-    gtk_widget_set_name (GTK_WIDGET (button_up), SWITCHER_BUTTON_NAME);
-    gtk_widget_set_name (GTK_WIDGET (button_down), SWITCHER_BUTTON_NAME);
-    
-    image_up   = gtk_image_new_from_pixbuf (icon_up);
-    image_down = gtk_image_new_from_pixbuf (icon_down);
+  gtk_widget_set_name (GTK_WIDGET (button_up), HD_SWITCHER_MENU_NOT_BUTTON_UP_NAME);
+  
+  arrow = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_NONE);
+  gtk_container_add (GTK_CONTAINER (button_up), arrow);
+  gtk_widget_show (arrow);
  
-    gtk_container_add (GTK_CONTAINER (button_up),   image_up);
-    gtk_container_add (GTK_CONTAINER (button_down), image_down);
-    gtk_widget_show (image_up);
-    gtk_widget_show (image_down);
-    
-    button_up = 
-      hildon_desktop_popup_menu_get_scroll_button_up (switcher->priv->menu_notifications);
-    button_down =
-      hildon_desktop_popup_menu_get_scroll_button_down (switcher->priv->menu_notifications);
+  button_down =
+    hildon_desktop_popup_menu_get_scroll_button_down (switcher->priv->menu_notifications);
 
-    gtk_widget_set_name (GTK_WIDGET (button_up), SWITCHER_BUTTON_NAME);
-    gtk_widget_set_name (GTK_WIDGET (button_down), SWITCHER_BUTTON_NAME);
+  gtk_widget_set_name (GTK_WIDGET (button_down), HD_SWITCHER_MENU_NOT_BUTTON_DOWN_NAME);
+  
+  arrow = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_NONE);
+  gtk_container_add (GTK_CONTAINER (button_down), arrow);
+  gtk_widget_show (arrow);
 
-    image_up   = gtk_image_new_from_pixbuf (icon_up);
-    image_down = gtk_image_new_from_pixbuf (icon_down);
-
-    gtk_container_add (GTK_CONTAINER (button_up),   image_up);
-    gtk_container_add (GTK_CONTAINER (button_down), image_down);
-    gtk_widget_show (image_up);
-    gtk_widget_show (image_down);
-  } 
-
   gtk_widget_set_name (GTK_WIDGET (switcher->priv->popup_window), 
 		       HD_SWITCHER_MENU_APP_WINDOW_NAME);
   gtk_widget_set_name (GTK_WIDGET (switcher->priv->notifications_window), 
@@ -880,7 +877,6 @@
   gtk_widget_set_name (GTK_WIDGET (switcher->priv->menu_notifications), 
 		       HD_SWITCHER_MENU_NOT_MENU_NAME);
   
-  
   g_signal_connect (switcher->priv->popup_window,
 		    "key-press-event",
 		    G_CALLBACK (hd_switcher_menu_popup_window_keypress_cb),
@@ -1612,7 +1608,7 @@
         if (first_item)
           hildon_desktop_popup_menu_add_item
             (switcher->priv->menu_notifications,
-            GTK_MENU_ITEM (gtk_separator_menu_item_new ()));
+            GTK_MENU_ITEM (hd_switcher_menu_create_separator ()));
 
         menu_item =
           hd_switcher_menu_item_new_from_notification
@@ -1687,7 +1683,7 @@
 
     if (l == apps)
     {
-      separator = gtk_separator_menu_item_new ();
+      separator = hd_switcher_menu_create_separator ();
 
       hildon_desktop_popup_menu_add_item
        (switcher->priv->menu_applications, GTK_MENU_ITEM (separator));
@@ -1720,7 +1716,7 @@
     /* Append the separator for this app*/
     if (l->next != NULL)
     {
-      separator = gtk_separator_menu_item_new ();
+      separator = hd_switcher_menu_create_separator ();
 
       hildon_desktop_popup_menu_add_item
         (switcher->priv->menu_applications, GTK_MENU_ITEM (separator));


More information about the maemo-commits mailing list