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

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Fri Jul 6 15:42:08 EEST 2007
Author: jobi
Date: 2007-07-06 15:42:06 +0300 (Fri, 06 Jul 2007)
New Revision: 12680

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c
   projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.c
   projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.h
   projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h
Log:

2007-07-06  Johan Bilien  <johan.bilien at nokia.com>

	* libhildondesktop/hd-app-menu-tree.[ch]:
	- added "item-selected" signal when a menu item is selected
	* libhildondesktop/hd-app-menu-dialog.[ch]:
	- dim the Rename and Delete button when a menu item is selected
	- set the insensitive messages for these.



Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-06 12:32:29 UTC (rev 12679)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2007-07-06 12:42:06 UTC (rev 12680)
@@ -1,5 +1,13 @@
 2007-07-06  Johan Bilien  <johan.bilien at nokia.com>
 
+	* libhildondesktop/hd-app-menu-tree.[ch]:
+	- added "item-selected" signal when a menu item is selected
+	* libhildondesktop/hd-app-menu-dialog.[ch]:
+	- dim the Rename and Delete button when a menu item is selected
+	- set the insensitive messages for these.
+
+2007-07-06  Johan Bilien  <johan.bilien at nokia.com>
+
 	* libhildondesktop/hd-app-menu-tree.c: use LOCALIZED_NAME for
 	adding and renaming categories
 

Modified: projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c	2007-07-06 12:32:29 UTC (rev 12679)
+++ projects/haf/trunk/hildon-desktop/src/hd-app-menu-dialog.c	2007-07-06 12:42:06 UTC (rev 12680)
@@ -35,6 +35,7 @@
 #include <hildon/hildon-defines.h>
 #include <hildon/hildon-caption.h>
 #include <hildon/hildon-banner.h>
+#include <hildon/hildon-helper.h>
 
 #define HD_APP_MENU_DIALOG_WIDTH        590
 #define HD_APP_MENU_DIALOG_HEIGHT       (8*30 + 2*HILDON_MARGIN_DEFAULT)
@@ -80,11 +81,15 @@
 static void
 hd_app_menu_dialog_delete_category (HDAppMenuDialog *dialog);
 
+static void
+hd_app_menu_dialog_item_selected (HDAppMenuDialog      *dialog,
+                                  GtkTreeIter          *iter);
+
 struct _HDAppMenuDialogPrivate
 {
   GtkTreeModel         *model;
 
-  GtkWidget            *new_button, *move_button, *delete_button, *done_button;
+  GtkWidget            *new_button, *rename_button, *delete_button, *done_button;
   GtkWidget            *tree;
 };
 
@@ -159,11 +164,15 @@
                                                HD_APP_MENU_DIALOG_DELETE,
                                                RESPONSE_DELETE);
   gtk_widget_show (priv->delete_button);
+  hildon_helper_set_insensitive_message (priv->delete_button,
+                                         HD_APP_MENU_DIALOG_NO_APP_DEL);
 
-  priv->move_button = gtk_dialog_add_button (dialog,
-                                             HD_APP_MENU_DIALOG_MOVE,
-                                             RESPONSE_RENAME);
-  gtk_widget_show (priv->move_button);
+  priv->rename_button = gtk_dialog_add_button (dialog,
+                                               HD_APP_MENU_DIALOG_MOVE,
+                                               RESPONSE_RENAME);
+  gtk_widget_show (priv->rename_button);
+  hildon_helper_set_insensitive_message (priv->rename_button,
+                                         HD_APP_MENU_DIALOG_NO_APP_REN);
 
   /* Use CANCEL so the ESC key closes the dialog */
   priv->done_button = gtk_dialog_add_button (dialog,
@@ -176,6 +185,11 @@
                              "width-request",  HD_APP_MENU_DIALOG_WIDTH,
                              "height-request", HD_APP_MENU_DIALOG_HEIGHT,
                              NULL);
+
+  g_signal_connect_swapped (priv->tree, "item-selected",
+                            G_CALLBACK (hd_app_menu_dialog_item_selected),
+                            dialog);
+
   gtk_box_pack_end (GTK_BOX (dialog->vbox), priv->tree, TRUE, TRUE, 0);
 
   return object;
@@ -401,6 +415,26 @@
 
 }
 
+static void
+hd_app_menu_dialog_item_selected (HDAppMenuDialog      *dialog,
+                                  GtkTreeIter          *iter)
+{
+  HDAppMenuDialogPrivate       *priv;
+
+  priv = dialog->priv;
+
+  if (iter != NULL)
+  {
+    gtk_widget_set_sensitive (priv->delete_button, FALSE);
+    gtk_widget_set_sensitive (priv->rename_button, FALSE);
+  }
+  else
+  {
+    gtk_widget_set_sensitive (priv->delete_button, TRUE);
+    gtk_widget_set_sensitive (priv->rename_button, TRUE);
+  }
+}
+
 void
 hd_app_menu_dialog_set_model (HDAppMenuDialog  *dialog,
                               GtkTreeModel     *model)

Modified: projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.c
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.c	2007-07-06 12:32:29 UTC (rev 12679)
+++ projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.c	2007-07-06 12:42:06 UTC (rev 12680)
@@ -35,6 +35,15 @@
   PROP_MODEL = 1
 };
 
+/* Signals */
+enum
+{
+  ITEM_SELECTED,
+  N_SIGNALS
+};
+
+static guint SIGNALS[N_SIGNALS] = {0};
+
 static GObject *
 hd_app_menu_tree_constructor (GType                   type,
                               guint                   n_construct_params,
@@ -56,6 +65,9 @@
 hd_app_menu_tree_navigation_changed (HDAppMenuTree *tree);
 
 static void
+hd_app_menu_tree_content_changed (HDAppMenuTree *tree);
+
+static void
 hd_app_menu_tree_content_drag_received (HDAppMenuTree  *tree,
                                         GdkDragContext         *context,
                                         gint                    x,
@@ -115,6 +127,19 @@
                                    PROP_MODEL,
                                    pspec);
 
+  SIGNALS[ITEM_SELECTED] = g_signal_new ("item-selected",
+                                         G_OBJECT_CLASS_TYPE (object_class),
+                                         G_SIGNAL_RUN_LAST,
+                                         G_STRUCT_OFFSET (HDAppMenuTreeClass,
+                                                          item_selected),
+                                         NULL,
+                                         NULL,
+                                         g_cclosure_marshal_VOID__OBJECT,
+                                         G_TYPE_NONE,
+                                         1,
+                                         GTK_TYPE_TREE_ITER);
+
+
   g_type_class_add_private (klass, sizeof (HDAppMenuTreePrivate));
 }
 
@@ -234,6 +259,10 @@
                             G_CALLBACK (hd_app_menu_tree_content_drag_received),
                             object);
 
+  g_signal_connect_swapped (priv->content_pane, "cursor-changed",
+                            G_CALLBACK (hd_app_menu_tree_content_changed),
+                            object);
+
   priv->content_selection =
       gtk_tree_view_get_selection (GTK_TREE_VIEW (priv->content_pane));
 
@@ -318,6 +347,43 @@
 }
 
 static void
+hd_app_menu_tree_content_changed (HDAppMenuTree *tree)
+{
+  HDAppMenuTreePrivate *priv;
+  GtkTreeIter           iter;
+  GtkTreePath          *cursor_path, *main_path;
+
+  priv = tree->priv;
+
+  gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->content_pane),
+                            &cursor_path,
+                            NULL);
+
+  if (!cursor_path)
+  {
+    g_signal_emit (tree, SIGNALS[ITEM_SELECTED], 0, NULL);
+    return;
+  }
+
+  main_path =
+      gtk_tree_model_filter_convert_path_to_child_path (GTK_TREE_MODEL_FILTER (priv->content_model),
+                                                        cursor_path);
+
+  if (!main_path)
+  {
+    gtk_tree_path_free (cursor_path);
+    return;
+  }
+
+  if (gtk_tree_model_get_iter (priv->model, &iter, main_path))
+    g_signal_emit (tree, SIGNALS[ITEM_SELECTED], 0, &iter);
+
+  gtk_tree_path_free (cursor_path);
+  gtk_tree_path_free (main_path);
+  return;
+}
+
+static void
 hd_app_menu_tree_navigation_changed (HDAppMenuTree *tree)
 {
   HDAppMenuTreePrivate *priv;
@@ -343,6 +409,9 @@
   gtk_tree_view_set_model (GTK_TREE_VIEW (priv->content_pane),
                            priv->content_model);
 
+  /* Content was unselected */
+  g_signal_emit (tree, SIGNALS[ITEM_SELECTED], 0, NULL);
+
   if (gtk_tree_model_get_iter_first (priv->content_model, &iter))
   {
     if (priv->content_pane->parent != GTK_WIDGET (tree))
@@ -612,15 +681,12 @@
   if (!GTK_IS_TREE_MODEL (priv->model))
     return FALSE;
 
-  g_debug ("Running get_selected");
-
   gtk_tree_view_get_cursor (GTK_TREE_VIEW (priv->navigation_pane),
                             &cursor_path,
                             NULL);
 
   if (!cursor_path)
   {
-    g_debug ("No currently selected cat");
     return FALSE;
   }
 
@@ -630,16 +696,12 @@
 
   gtk_tree_path_free (cursor_path);
   if (!main_path)
-  {
-    g_debug ("Could not translate path");
     return FALSE;
-  }
 
   result = gtk_tree_model_get_iter (priv->model, iter, main_path);
 
 
   gtk_tree_path_free (main_path);
-  g_debug ("Returning: %i", result);
 
   return result;
 }

Modified: projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.h
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.h	2007-07-06 12:32:29 UTC (rev 12679)
+++ projects/haf/trunk/hildon-desktop/src/hd-app-menu-tree.h	2007-07-06 12:42:06 UTC (rev 12680)
@@ -51,6 +51,8 @@
 struct _HDAppMenuTreeClass
 {
   GtkHPanedClass                parent_class;
+  void                          (*item_selected)        (HDAppMenuTree *tree,
+                                                         GtkTreeIter    iter);
 };
 
 GType   hd_app_menu_tree_get_type       (void);

Modified: projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h
===================================================================
--- projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h	2007-07-06 12:32:29 UTC (rev 12679)
+++ projects/haf/trunk/hildon-desktop/src/hd-applications-menu-settings-l10n.h	2007-07-06 12:42:06 UTC (rev 12680)
@@ -49,6 +49,9 @@
 
 #define HD_APP_MENU_DIALOG_ONLY_EMPTY           _OAT("tncpa_ib_only_empty_fold")
 
+#define HD_APP_MENU_DIALOG_NO_APP_DEL           _OAT("tncpa_ib_no_app_del")
+#define HD_APP_MENU_DIALOG_NO_APP_REN           _OAT("tncpa_ib_no_app_ren")
 
+
 #endif
 


More information about the maemo-commits mailing list