[maemo-commits] [maemo-commits] r12680 - in projects/haf/trunk/hildon-desktop: . src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Fri Jul 6 15:42:08 EEST 2007
- Previous message: [maemo-commits] r12679 - projects/haf/trunk/gtkfilesystemmemory/debian
- Next message: [maemo-commits] r12681 - projects/haf/trunk/gtk+/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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
- Previous message: [maemo-commits] r12679 - projects/haf/trunk/gtkfilesystemmemory/debian
- Next message: [maemo-commits] r12681 - projects/haf/trunk/gtk+/debian
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]