[maemo-commits] [maemo-commits] r9670 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildondesktop

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Tue Feb 6 14:08:13 EET 2007
Author: moimart
Date: 2007-02-06 14:08:12 +0200 (Tue, 06 Feb 2007)
New Revision: 9670

Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
Log:

	* libhildondesktop/hildon-desktop-panel-expandable.c:
        - Implemented position for statusbar
        * libhildondesktop/hildon-desktop-window-dialog.c:
        - Set the number of items to 7 for expandable panel.
 	* ChangeLog updated.



Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-02-06 11:55:36 UTC (rev 9669)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2007-02-06 12:08:12 UTC (rev 9670)
@@ -1,3 +1,10 @@
+2007-02-06  Moises Martinez  <moises.martinez at nokia.com>
+
+	* libhildondesktop/hildon-desktop-panel-expandable.c: 
+	- Implemented position for statusbar
+	* libhildondesktop/hildon-desktop-window-dialog.c:
+	- Set the number of items to 7 for expandable panel.
+
 2007-02-06  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	* src/hd-desktop.c, libhildondesktop/hildon-desktop-window.[ch]: move

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c	2007-02-06 11:55:36 UTC (rev 9669)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-expandable.c	2007-02-06 12:08:12 UTC (rev 9670)
@@ -42,9 +42,12 @@
 {
   guint       items_p_row;
   guint       n_items;
+  guint	      current_position;
 
   GHashTable *items;
 
+  GList	     *queued_items;
+
   GtkWindow  *extension_window;
   GtkTable   *extension_table;
 
@@ -130,14 +133,17 @@
 {
   panel->priv = HILDON_DESKTOP_PANEL_EXPANDABLE_GET_PRIVATE (panel);
 
-  panel->priv->items_p_row = 0;
-  panel->priv->n_items = 0;
+  panel->priv->items_p_row = 
+      panel->priv->n_items = 
+      panel->priv->current_position = 0;
   
   panel->priv->items = g_hash_table_new_full (g_str_hash,
 		  			      g_str_equal,
 					      (GDestroyNotify) g_free,
 					      (GDestroyNotify) gtk_widget_destroy);
 
+  panel->priv->queued_items = NULL;
+  
   panel->priv->extension_opened = FALSE;
 
   panel->priv->extension_table = NULL;
@@ -288,6 +294,8 @@
 		    G_CALLBACK (hildon_desktop_panel_expandable_button_destroyed),
 		    (gpointer)panel);
 
+  g_object_set (G_OBJECT (item), "position", ex_panel->priv->current_position++, NULL);
+
   if (STATUSBAR_IS_ITEM (button))
   {
     g_signal_connect_after (STATUSBAR_ITEM (item),
@@ -336,6 +344,8 @@
 			 HILDON_DESKTOP_ITEM (item)->id,
 			 (gpointer)item);
   }
+
+  g_debug ("Number of items: %d",ex_panel->priv->n_items);
 }
 
 static void 
@@ -405,14 +415,25 @@
 					     HildonDesktopItem *item,
 					     HildonDesktopPanelExpandable *panel)
 {
+  panel->priv->queued_items = 
+    g_list_append (panel->priv->queued_items, item);
+}
 
-  hildon_desktop_panel_expandable_add_button (HILDON_DESKTOP_PANEL (panel),
-		      			      GTK_WIDGET (item));
+static gint 
+hildon_desktop_panel_expandable_sort_items (gconstpointer a, gconstpointer b)
+{
+   gint p1,p2;
 
-  if (STATUSBAR_IS_ITEM (item) && !STATUSBAR_ITEM (item)->condition)
-    g_debug ("not unreffing");
-  else
-    g_object_unref (G_OBJECT (item));
+   g_object_get (G_OBJECT (a), "position", &p1, NULL);
+   g_object_get (G_OBJECT (b), "position", &p2, NULL);
+
+   if (p1 < p2) 
+     return -1;
+   else 
+   if (p1 == p2) 
+    return 0;
+   else 
+    return 1;
 }
 
 static void 
@@ -422,7 +443,7 @@
 	
   GList *children_panel, *children_table, *l;
 
-  children_panel = children_table = NULL;
+  panel->priv->queued_items = children_panel = children_table = NULL;
 
   children_panel = gtk_container_get_children (GTK_CONTAINER (panel));
   children_table = gtk_container_get_children (GTK_CONTAINER (panel->priv->extension_table));
@@ -443,17 +464,35 @@
 		    	  GTK_WIDGET (l->data));
   }
 
-  panel->priv->n_items = 0;
-
+  panel->priv->n_items = panel->priv->current_position = 0;
+  
   g_hash_table_foreach (panel->priv->items,
 		  	(GHFunc)hildon_desktop_panel_expandable_hash_adding,
 			(gpointer)panel);
+  
+  panel->priv->queued_items = 
+    g_list_sort (panel->priv->queued_items,
+     	         (GCompareFunc)hildon_desktop_panel_expandable_sort_items);
 
+  for (l = panel->priv->queued_items; l; l = g_list_next (l))
+    g_debug ("position %s: %d",HILDON_DESKTOP_ITEM (l->data)->id, HILDON_DESKTOP_PANEL_ITEM (l->data)->position); 
+
+  for (l = panel->priv->queued_items; l; l = g_list_next (l))
+  {
+    hildon_desktop_panel_expandable_add_button (HILDON_DESKTOP_PANEL (panel),
+		      			        GTK_WIDGET (l->data));
+
+    if (STATUSBAR_IS_ITEM (l->data) && !STATUSBAR_ITEM (l->data)->condition)
+      g_debug ("not unreffing");
+    else
+      g_object_unref (G_OBJECT (l->data));
+  }	  
+
+  g_list_free (panel->priv->queued_items);
   g_list_free (children_panel);
   g_list_free (children_table);
 }
 
-
 static GtkWidget * 
 hildon_desktop_panel_expandable_add_arrow (HildonDesktopPanelExpandable *panel)
 {

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c	2007-02-06 11:55:36 UTC (rev 9669)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildondesktop/hildon-desktop-panel-window-dialog.c	2007-02-06 12:08:12 UTC (rev 9670)
@@ -127,7 +127,7 @@
   gtk_widget_push_composite_child ();
 
   HILDON_DESKTOP_WINDOW (window)->container = 
-    g_object_new (HILDON_DESKTOP_TYPE_PANEL_EXPANDABLE, "items_row", 3, NULL);
+    g_object_new (HILDON_DESKTOP_TYPE_PANEL_EXPANDABLE, "items_row", 7,NULL);
 
   if (parent != NULL)
     gtk_container_add (parent,


More information about the maemo-commits mailing list