Mercurial > geeqie
changeset 1378:32ff4da1cb20
prepared exif pane for popup menu
author | nadvornik |
---|---|
date | Wed, 04 Mar 2009 22:34:11 +0000 |
parents | dab37628f5d8 |
children | e2db3b6068d7 |
files | src/bar_exif.c |
diffstat | 1 files changed, 33 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/bar_exif.c Wed Mar 04 21:33:19 2009 +0000 +++ b/src/bar_exif.c Wed Mar 04 22:34:11 2009 +0000 @@ -20,6 +20,7 @@ #include "history_list.h" #include "misc.h" #include "ui_misc.h" +#include "ui_menu.h" #include "bar.h" #include "rcfile.h" #include "dnd.h" @@ -114,7 +115,7 @@ gtk_misc_set_alignment(GTK_MISC(ee->value_label), 0.0, 0.5); gtk_box_pack_start(GTK_BOX(ee->hbox), ee->value_label, TRUE, TRUE, 1); gtk_widget_show(ee->value_label); - gtk_box_pack_start(GTK_BOX(ped->vbox), ee->ebox, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(ped->vbox), ee->ebox, FALSE, FALSE, 0); bar_pane_exif_entry_dnd_init(ee->ebox); @@ -136,7 +137,7 @@ gtk_container_remove(GTK_CONTAINER(old_ped->vbox), entry); gtk_size_group_add_widget(ped->size_group, ee->title_label); - gtk_box_pack_start(GTK_BOX(ped->vbox), entry, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(ped->vbox), entry, FALSE, FALSE, 0); } static void bar_pane_exif_entry_update_title(ExifEntry *ee) @@ -349,6 +350,31 @@ } + +static void bar_pane_exif_menu_popup(GtkWidget *data) +{ + GtkWidget *menu; + + menu = popup_menu_short_lived(); + + menu_item_add_stock(menu, _("Configure"), GTK_STOCK_GO_UP, NULL, data); + gtk_menu_popup(GTK_MENU(menu), NULL, NULL, NULL, data, 0, GDK_CURRENT_TIME); +} + + +static gboolean bar_pane_exif_menu_cb(GtkWidget *widget, GdkEventButton *bevent, gpointer data) +{ + if (bevent->button == MOUSE_BUTTON_RIGHT) + { + bar_pane_exif_menu_popup(widget); + return TRUE; + } + return FALSE; +} + + + + static void bar_pane_exif_entry_write_config(GtkWidget *entry, GString *outstr, gint indent) { ExifEntry *ee = g_object_get_data(G_OBJECT(entry), "entry_data"); @@ -440,8 +466,11 @@ ped->pane.expanded = expanded; ped->size_group = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); + ped->widget = gtk_event_box_new();; ped->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP); - ped->widget = ped->vbox; + gtk_container_add(GTK_CONTAINER(ped->widget), ped->vbox); + gtk_widget_show(ped->vbox); + ped->min_height = MIN_HEIGHT; g_object_set_data(G_OBJECT(ped->widget), "pane_data", ped); g_signal_connect_after(G_OBJECT(ped->widget), "destroy", @@ -452,6 +481,7 @@ G_CALLBACK(bar_pane_exif_size_allocate), ped); bar_pane_exif_dnd_init(ped->widget); + g_signal_connect(ped->widget, "button_press_event", G_CALLBACK(bar_pane_exif_menu_cb), ped); if (populate) {