[gnome-utils] Cleanup chart context menu
- From: Paolo Borelli <pborelli src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-utils] Cleanup chart context menu
- Date: Sat, 24 Jul 2010 20:02:11 +0000 (UTC)
commit e76369c680154c27afd2bc90fec89f02dfe57d7e
Author: Paolo Borelli <pborelli gnome org>
Date: Sat Jul 24 21:21:37 2010 +0200
Cleanup chart context menu
baobab/src/baobab.c | 71 +++++++++++++++++++++++++++++++++++++++++-------
baobab/src/baobab.h | 20 +++++++-------
baobab/src/callbacks.c | 52 -----------------------------------
baobab/src/callbacks.h | 3 --
4 files changed, 71 insertions(+), 75 deletions(-)
---
diff --git a/baobab/src/baobab.c b/baobab/src/baobab.c
index ac7d503..d032070 100644
--- a/baobab/src/baobab.c
+++ b/baobab/src/baobab.c
@@ -915,16 +915,16 @@ baobab_shutdown (void)
g_object_unref (baobab.gconf_client);
}
-static void
+static BaobabChartMenu *
create_context_menu (void)
{
- ContextMenu *menu = NULL;
+ BaobabChartMenu *menu = NULL;
- baobab.chart_menu = g_new0 (ContextMenu, 1);
+ baobab.chart_menu = g_new0 (BaobabChartMenu, 1);
menu = baobab.chart_menu;
menu->widget = gtk_menu_new ();
-
+
menu->up_item = gtk_image_menu_item_new_with_label (_("Move to parent folder"));
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu->up_item),
gtk_image_new_from_stock(GTK_STOCK_GO_UP, GTK_ICON_SIZE_MENU));
@@ -932,14 +932,14 @@ create_context_menu (void)
menu->zoom_in_item = gtk_image_menu_item_new_with_label (_("Zoom in")) ;
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu->zoom_in_item),
gtk_image_new_from_stock(GTK_STOCK_ADD, GTK_ICON_SIZE_MENU));
-
+
menu->zoom_out_item = gtk_image_menu_item_new_with_label (_("Zoom out"));
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu->zoom_out_item),
- gtk_image_new_from_stock(GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU));
-
+ gtk_image_new_from_stock(GTK_STOCK_REMOVE, GTK_ICON_SIZE_MENU));
+
menu->snapshot_item = gtk_image_menu_item_new_with_label (_("Save screenshot"));
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM (menu->snapshot_item),
- gtk_image_new_from_file (BAOBAB_PIX_DIR "shot.png"));
+ gtk_image_new_from_file (BAOBAB_PIX_DIR "shot.png"));
gtk_menu_shell_append (GTK_MENU_SHELL (menu->widget),
menu->up_item);
@@ -965,8 +965,59 @@ create_context_menu (void)
G_CALLBACK (on_chart_snapshot_cb), NULL);
gtk_widget_show_all (menu->widget);
+
+ return menu;
}
+static void
+on_chart_item_activated (BaobabChart *chart, GtkTreeIter *iter)
+{
+ GtkTreePath *path;
+
+ path = gtk_tree_model_get_path (GTK_TREE_MODEL (baobab.model), iter);
+
+ if (!gtk_tree_view_row_expanded (GTK_TREE_VIEW (baobab.tree_view), path))
+ gtk_tree_view_expand_to_path (GTK_TREE_VIEW (baobab.tree_view), path);
+
+ gtk_tree_view_set_cursor (GTK_TREE_VIEW (baobab.tree_view),
+ path, NULL, FALSE);
+ gtk_tree_path_free (path);
+}
+
+static gboolean
+on_chart_button_release (BaobabChart *chart,
+ GdkEventButton *event,
+ gpointer data)
+{
+ if (baobab_chart_is_frozen (baobab.current_chart))
+ return FALSE;
+
+ if (event->button== 3) /* right button */
+ {
+ GtkTreePath *root_path;
+ BaobabChartMenu *menu;
+
+ root_path = baobab_chart_get_root (baobab.current_chart);
+
+ menu = baobab.chart_menu;
+ gtk_widget_set_sensitive (menu->up_item,
+ ((root_path != NULL) &&
+ (gtk_tree_path_get_depth (root_path) > 1)));
+ gtk_widget_set_sensitive (menu->zoom_in_item,
+ baobab_chart_can_zoom_in (baobab.current_chart));
+ gtk_widget_set_sensitive (menu->zoom_out_item,
+ baobab_chart_can_zoom_out (baobab.current_chart));
+
+ /* show the menu */
+ gtk_menu_popup (GTK_MENU (menu->widget),
+ NULL, NULL, NULL, NULL,
+ event->button, event->time);
+
+ gtk_tree_path_free (root_path);
+ }
+
+ return FALSE;
+}
static void
drag_data_received_handl (GtkWidget *widget,
@@ -1041,6 +1092,8 @@ initialize_charts (void)
TRUE,
0, GTK_PACK_END);
+ baobab.chart_menu = create_context_menu ();
+
/* Baobab's Treemap Chart */
baobab.treemap_chart = baobab_treemap_new ();
baobab_chart_set_model_with_columns (baobab.treemap_chart,
@@ -1094,8 +1147,6 @@ initialize_charts (void)
baobab.current_chart);
gtk_widget_show_all (chart_frame);
- create_context_menu ();
-
check_drop_targets (FALSE);
}
diff --git a/baobab/src/baobab.h b/baobab/src/baobab.h
index f7a009f..b737609 100644
--- a/baobab/src/baobab.h
+++ b/baobab/src/baobab.h
@@ -46,16 +46,16 @@ struct BaobabSearchOpt;
#define BAOBAB_ENABLE_HOME_MONITOR_KEY BAOBAB_KEY_DIR "/properties/enable_home_monitor"
#define SYSTEM_TOOLBAR_STYLE_KEY "/desktop/gnome/interface/toolbar_style"
-typedef struct _ContextMenu ContextMenu;
+typedef struct _BaobabChartMenu BaobabChartMenu;
-struct _ContextMenu {
- GtkWidget* widget;
- GtkWidget* up_item;
- GtkWidget* zoom_in_item;
- GtkWidget* zoom_out_item;
- GtkWidget* subfolders_item;
- GtkWidget* snapshot_item;
- GtkWidget* set_root_item;
+struct _BaobabChartMenu {
+ GtkWidget *widget;
+ GtkWidget *up_item;
+ GtkWidget *zoom_in_item;
+ GtkWidget *zoom_out_item;
+ GtkWidget *subfolders_item;
+ GtkWidget *snapshot_item;
+ GtkWidget *set_root_item;
};
struct _baobab_application {
@@ -66,7 +66,7 @@ struct _baobab_application {
GtkWidget *treemap_chart;
GtkWidget *current_chart;
GtkWidget *chart_type_combo;
- ContextMenu *chart_menu;
+ BaobabChartMenu *chart_menu;
GtkWidget *toolbar;
GtkWidget *spinner;
GtkWidget *statusbar;
diff --git a/baobab/src/callbacks.c b/baobab/src/callbacks.c
index f3398be..bf08768 100644
--- a/baobab/src/callbacks.c
+++ b/baobab/src/callbacks.c
@@ -343,58 +343,6 @@ on_tv_selection_changed (GtkTreeSelection *selection, gpointer user_data)
}
void
-on_chart_item_activated (BaobabChart *chart, GtkTreeIter *iter)
-{
- GtkTreePath *path;
-
- path = gtk_tree_model_get_path (GTK_TREE_MODEL (baobab.model), iter);
-
- if (!gtk_tree_view_row_expanded (GTK_TREE_VIEW (baobab.tree_view), path))
- gtk_tree_view_expand_to_path (GTK_TREE_VIEW (baobab.tree_view), path);
-
- gtk_tree_view_set_cursor (GTK_TREE_VIEW (baobab.tree_view),
- path, NULL, FALSE);
- gtk_tree_path_free (path);
-}
-
-gboolean
-on_chart_button_release (BaobabChart *chart,
- GdkEventButton *event,
- gpointer data)
-{
- ContextMenu *menu;
-
- if (baobab_chart_is_frozen (baobab.current_chart))
- return FALSE;
-
- menu = baobab.chart_menu;
-
- if (event->button== 3) /* right button */
- {
- GtkTreePath *root_path = NULL;
-
- root_path = baobab_chart_get_root (baobab.current_chart);
-
- gtk_widget_set_sensitive (menu->up_item,
- ((root_path != NULL) &&
- (gtk_tree_path_get_depth (root_path) > 1)));
- gtk_widget_set_sensitive (menu->zoom_in_item,
- baobab_chart_can_zoom_in (baobab.current_chart));
- gtk_widget_set_sensitive (menu->zoom_out_item,
- baobab_chart_can_zoom_out (baobab.current_chart));
-
- /* show the menu */
- gtk_menu_popup (GTK_MENU (menu->widget),
- NULL, NULL, NULL, NULL,
- event->button, event->time);
-
- gtk_tree_path_free (root_path);
- }
-
- return FALSE;
-}
-
-void
on_move_upwards_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data)
{
baobab_chart_move_up_root (baobab.current_chart);
diff --git a/baobab/src/callbacks.h b/baobab/src/callbacks.h
index 72aff34..93e70fb 100644
--- a/baobab/src/callbacks.h
+++ b/baobab/src/callbacks.h
@@ -53,9 +53,6 @@ void on_view_sb_activate (GtkToggleAction *action, gpointer user_data);
void on_ck_allocated_activate (GtkToggleAction *action, gpointer user_data);
void on_helpcontents_activate (GtkAction *a, gpointer user_data);
void on_tv_selection_changed (GtkTreeSelection *selection, gpointer user_data);
-void on_chart_item_activated (BaobabChart *chart, GtkTreeIter *iter);
-gboolean on_chart_button_release (BaobabChart *chart, GdkEventButton *event,
- gpointer data);
void on_move_upwards_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data);
void on_zoom_in_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data);
void on_zoom_out_cb (GtkCheckMenuItem *checkmenuitem, gpointer user_data);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]