diff options
author | Shaun McCance <shaunm@src.gnome.org> | 2005-02-01 21:58:47 +0000 |
---|---|---|
committer | Shaun McCance <shaunm@src.gnome.org> | 2005-02-01 21:58:47 +0000 |
commit | 3d88888dba6f1f1aab1c441a26f1e0bba59f1b38 (patch) | |
tree | 13ae266f61138a8fb277efb19e61e173fdb4b8d8 | |
parent | d729be5a059c41b3aa953af4f2c9c88131aa247d (diff) | |
download | yelp-3d88888dba6f1f1aab1c441a26f1e0bba59f1b38.tar.gz |
- Desensitivify buttons when nothing is selected (Don Scorgie)
* src/yelp-bookmarks.c:
- Desensitivify buttons when nothing is selected (Don Scorgie)
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | src/yelp-bookmarks.c | 44 |
2 files changed, 40 insertions, 9 deletions
@@ -1,5 +1,10 @@ 2005-02-01 Shaun McCance <shaunm@gnome.org> + * src/yelp-bookmarks.c: + - Desensitivify buttons when nothing is selected (Don Scorgie) + +2005-02-01 Shaun McCance <shaunm@gnome.org> + * data/icons/Makefile.am: * src/yelp-toc-pager.c: - Adding nice large yelpish icon from Human diff --git a/src/yelp-bookmarks.c b/src/yelp-bookmarks.c index e1552bcc..70ceab6c 100644 --- a/src/yelp-bookmarks.c +++ b/src/yelp-bookmarks.c @@ -63,6 +63,10 @@ static GtkTreeStore *actions_store; static gchar *dup_title; static GtkWidget *bookmarks_dialog = NULL; +static GtkWidget *edit_open_button = NULL; +static GtkWidget *edit_rename_button = NULL; +static GtkWidget *edit_remove_button = NULL; + static gboolean have_toc = FALSE; static gboolean have_doc = FALSE; @@ -143,7 +147,8 @@ static gboolean bookmarks_button_press_cb (GtkWidget *widget, static gboolean bookmarks_configure_cb (GtkWidget *widget, GdkEventConfigure *event, gpointer data); - +static void selection_changed_cb (GtkTreeSelection *selection, + gpointer data); static GtkActionEntry popup_entries[] = { { "OpenName", GTK_STOCK_OPEN, @@ -585,7 +590,6 @@ yelp_bookmarks_edit (void) GtkTreeView *view; GtkTreeSelection *select; GtkCellRenderer *renderer; - GtkWidget *button; gint width, height; if (!bookmarks_dialog) { @@ -620,7 +624,7 @@ yelp_bookmarks_edit (void) gtk_tree_view_set_model (view, GTK_TREE_MODEL (actions_store)); select = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); - + gtk_tree_selection_set_mode (select, GTK_SELECTION_SINGLE); gtk_tree_view_expand_all (GTK_TREE_VIEW (view)); @@ -633,18 +637,21 @@ yelp_bookmarks_edit (void) g_signal_connect (G_OBJECT (renderer), "edited", G_CALLBACK (bookmarks_cell_edited_cb), NULL); - button = glade_xml_get_widget (glade, "open_button"); - g_signal_connect (G_OBJECT (button), "clicked", + edit_open_button = glade_xml_get_widget (glade, "open_button"); + g_signal_connect (G_OBJECT (edit_open_button), "clicked", G_CALLBACK (bookmarks_open_button_cb), view); - button = glade_xml_get_widget (glade, "rename_button"); - g_signal_connect (G_OBJECT (button), "clicked", + edit_rename_button = glade_xml_get_widget (glade, "rename_button"); + g_signal_connect (G_OBJECT (edit_rename_button), "clicked", G_CALLBACK (bookmarks_rename_button_cb), view); - button = glade_xml_get_widget (glade, "remove_button"); - g_signal_connect (G_OBJECT (button), "clicked", + edit_remove_button = glade_xml_get_widget (glade, "remove_button"); + g_signal_connect (G_OBJECT (edit_remove_button), "clicked", G_CALLBACK (bookmarks_remove_button_cb), view); + g_signal_connect (G_OBJECT (select), "changed", + G_CALLBACK (selection_changed_cb), + NULL); g_signal_connect (G_OBJECT (view), "button-press-event", G_CALLBACK (bookmarks_button_press_cb), NULL); @@ -672,6 +679,25 @@ bookmarks_configure_cb (GtkWidget *widget, GdkEventConfigure *event, } static void +selection_changed_cb (GtkTreeSelection *selection, gpointer data) +{ + if (gtk_tree_selection_get_selected (selection, NULL, NULL)) { + /*A row is highlighted - sensitise the various widgets*/ + gtk_widget_set_sensitive (GTK_WIDGET (edit_open_button), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (edit_rename_button), TRUE); + gtk_widget_set_sensitive (GTK_WIDGET (edit_remove_button), TRUE); + } + else { + /*No row is highlighted - desensitise the various widgets*/ + gtk_widget_set_sensitive (GTK_WIDGET (edit_open_button), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (edit_rename_button), FALSE); + gtk_widget_set_sensitive (GTK_WIDGET (edit_remove_button), FALSE); + + } +} + + +static void bookmarks_open_button_cb (GtkWidget *widget, GtkTreeView *view) { GtkTreeIter iter; |