summaryrefslogtreecommitdiffstats
path: root/info.c
diff options
context:
space:
mode:
authorGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-11-19 12:06:20 -0500
committerGravatar Linus Torvalds <torvalds@linux-foundation.org>2011-11-19 12:06:20 -0500
commit7e920844ac34587534cc108b7028ccb0e2c1b082 (patch)
treefd8e1c3d5ede953cf4cb9a9b01efc7cf1e74533c /info.c
parent1efcf4538b8a034e8b288d5b9c375ba99b1d845f (diff)
downloadsubsurface-7e920844ac34587534cc108b7028ccb0e2c1b082.tar.gz
Add an 'edit' menu item to the dive info text fields
It just pops up the dive info edit box. This way you can be in the dive info tab, and not have to go to the dive list just to double-click on the dive. This thing still needs some polish, but it's now usable. Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'info.c')
-rw-r--r--info.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/info.c b/info.c
index df07c8e66..c9522a857 100644
--- a/info.c
+++ b/info.c
@@ -95,6 +95,19 @@ void show_dive_info(struct dive *dive)
dive && dive->notes ? dive->notes : "", -1);
}
+static void info_menu_edit_cb(GtkMenuItem *menuitem, gpointer user_data)
+{
+ edit_dive_info(current_dive);
+}
+
+static void populate_popup_cb(GtkTextView *entry, GtkMenu *menu, gpointer user_data)
+{
+ GtkWidget *item = gtk_menu_item_new_with_label("Edit");
+ g_signal_connect(item, "activate", G_CALLBACK(info_menu_edit_cb), NULL);
+ gtk_widget_show(item); /* Yes, really */
+ gtk_menu_prepend(menu, item);
+}
+
static GtkEntry *text_value(GtkWidget *box, const char *label)
{
GtkWidget *widget;
@@ -105,6 +118,7 @@ static GtkEntry *text_value(GtkWidget *box, const char *label)
gtk_widget_set_can_focus(widget, FALSE);
gtk_editable_set_editable(GTK_EDITABLE(widget), FALSE);
gtk_container_add(GTK_CONTAINER(frame), widget);
+ g_signal_connect(widget, "populate-popup", G_CALLBACK(populate_popup_cb), NULL);
return GTK_ENTRY(widget);
}
@@ -160,6 +174,7 @@ static GtkTextView *text_view(GtkWidget *box, const char *label, enum writable w
gtk_widget_set_can_focus(view, FALSE);
gtk_text_view_set_editable(GTK_TEXT_VIEW(view), FALSE);
gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE);
+ g_signal_connect(view, "populate-popup", G_CALLBACK(populate_popup_cb), NULL);
}
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD);
gtk_container_add(GTK_CONTAINER(scrolled_window), view);