From: Lutz M. <lu...@us...> - 2004-10-17 13:54:33
|
Update of /cvsroot/libexif/libexif-gtk/libexif-gtk In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv27336/libexif-gtk Modified Files: Makefile.am gtk-exif-browser.c gtk-exif-content-list.c gtk-exif-entry-generic.c gtk-exif-entry-option.c gtk-exif-entry-resolution.c Removed Files: gtk-exif-entry-exposure.c gtk-exif-entry-exposure.h gtk-exif-tag-menu.c gtk-exif-tag-menu.h Log Message: 2004-10-17 Lutz Mueller <lu...@us...> First part of a patch to get libexif-gtk to compile again against current gtk. For now, libexif-gtk does not compile at all. * gtk-extensions/gtk-option-menu-option.[c,h]: Removed. * libexif-gtk/gtk-exif-browser.c: Redirect EXPOSURE_PROGRAM to the generic entry. * libexif-gtk/gtk-exif-tag-menu.[c,h]: Removed. * libexif-gtk/gtk-exif-entry-exposure.[c,h]: Removed. Now covered by the generic entry. * configure.in: CURRENT = 5. --- gtk-exif-tag-menu.h DELETED --- Index: Makefile.am =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/Makefile.am,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Makefile.am 7 Jan 2003 17:43:50 -0000 1.12 +++ Makefile.am 17 Oct 2004 13:54:23 -0000 1.13 @@ -16,7 +16,6 @@ gtk-exif-entry-ascii.h \ gtk-exif-entry-copyright.h \ gtk-exif-entry-date.h \ - gtk-exif-entry-exposure.h \ gtk-exif-entry-generic.h \ gtk-exif-entry-flash.h \ gtk-exif-entry-number.h \ @@ -24,8 +23,7 @@ gtk-exif-entry-rational.h \ gtk-exif-entry-resolution.h \ gtk-exif-entry-user-comment.h \ - gtk-exif-entry-version.h \ - gtk-exif-tag-menu.h + gtk-exif-entry-version.h libexif_gtk_la_SOURCES = \ gtk-exif-browser.c \ @@ -35,7 +33,6 @@ gtk-exif-entry-copyright.c \ gtk-exif-entry-date.c \ gtk-exif-entry-generic.c \ - gtk-exif-entry-exposure.c \ gtk-exif-entry-flash.c \ gtk-exif-entry-number.c \ gtk-exif-entry-option.c \ @@ -43,7 +40,6 @@ gtk-exif-entry-resolution.c \ gtk-exif-entry-user-comment.c \ gtk-exif-entry-version.c \ - gtk-exif-tag-menu.c \ gtk-exif-util.h libexif_gtk_la_LDFLAGS = -version-info @LIBEXIF_GTK_VERSION_INFO@ libexif_gtk_la_LIBADD = \ Index: gtk-exif-entry-option.c =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/gtk-exif-entry-option.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- gtk-exif-entry-option.c 15 Dec 2002 11:41:29 -0000 1.7 +++ gtk-exif-entry-option.c 17 Oct 2004 13:54:23 -0000 1.8 @@ -30,14 +30,13 @@ #include <gtk/gtkframe.h> #include <gtk/gtklabel.h> #include <gtk/gtkentry.h> -#include <gtk/gtkoptionmenu.h> +#include <gtk/gtkcombobox.h> #include <gtk/gtkmenuitem.h> #include <gtk/gtkmenu.h> #include <gtk/gtkhbox.h> #include <libexif/exif-utils.h> -#include "gtk-extensions/gtk-option-menu-option.h" #include "gtk-extensions/gtk-options.h" #include "gtk-exif-util.h" @@ -64,7 +63,7 @@ struct _GtkExifEntryOptionPrivate { ExifEntry *entry; - GtkOptionMenuOption *menu; + GtkComboBox *menu; }; #define PARENT_TYPE GTK_EXIF_TYPE_ENTRY @@ -115,31 +114,31 @@ { ExifShort value; ExifByteOrder o; + GtkTreeIter iter; + GtkTreeModel *tm; g_return_if_fail (GTK_EXIF_IS_ENTRY_OPTION (entry)); o = exif_data_get_byte_order (entry->priv->entry->parent->parent); value = exif_get_short (entry->priv->entry->data, o); - gtk_option_menu_option_set (entry->priv->menu, value); + tm = gtk_combo_box_get_model (entry->priv->menu); + gtk_tree_model_get_iter_from_option (tm, value, &iter); + gtk_combo_box_set_active_iter (entry->priv->menu, &iter); } static void -gtk_exif_entry_option_save (GtkExifEntryOption *entry) +on_changed (GtkComboBox *cb, GtkExifEntryOption *e) { - ExifShort value; + GValue v = {0,}; ExifByteOrder o; + GtkTreeModel *tm = gtk_combo_box_get_model (cb); + GtkTreeIter iter; - o = exif_data_get_byte_order (entry->priv->entry->parent->parent); - value = gtk_option_menu_option_get (entry->priv->menu); - exif_set_short (entry->priv->entry->data, o, value); - g_signal_emit_by_name (GTK_OBJECT (entry), "entry_changed", - entry->priv->entry); -} - -static void -on_option_selected (GtkOptions *options, guint option, GtkExifEntryOption *entry) -{ - gtk_exif_entry_option_save (entry); + gtk_combo_box_get_active_iter (cb, &iter); + gtk_tree_model_get_value (tm, &iter, GTK_OPTIONS_OPTION_COLUMN, &v); + o = exif_data_get_byte_order (e->priv->entry->parent->parent); + exif_set_short (e->priv->entry->data, o, g_value_get_int (&v)); + gtk_exif_entry_changed (GTK_EXIF_ENTRY (e), e->priv->entry); } static GtkOptions options_sensing_method[] = { @@ -204,6 +203,21 @@ { 0, NULL} }; +static GtkOptions options_exposure_program[] = { + {0, N_("Not defined")}, + {1, N_("Manual")}, + {2, N_("Normal program")}, + {3, N_("Aperture priority")}, + {4, N_("Shutter priority")}, + {5, N_("Creative program (biased toward depth of field)")}, + {6, N_("Action program (biased toward fast shutter speed)")}, + {7, N_("Portrait mode (for closeup photos with the " + "background out of focus")}, + {8, N_("Landscape mode (for landscape photos with the " + "background in focus")}, + {0, NULL} +}; + GtkWidget * gtk_exif_entry_option_new (ExifEntry *e) { @@ -219,6 +233,7 @@ (e->tag == EXIF_TAG_LIGHT_SOURCE) || (e->tag == EXIF_TAG_ORIENTATION) || (e->tag == EXIF_TAG_YCBCR_POSITIONING) || + (e->tag == EXIF_TAG_EXPOSURE_PROGRAM) || (e->tag == EXIF_TAG_COMPRESSION), NULL); switch (e->tag) { @@ -246,6 +261,10 @@ title = N_("YCbCr Positioning:"); options = options_ycbcr_positioning; break; + case EXIF_TAG_EXPOSURE_PROGRAM: + title = N_("Exposure Program:"); + options = options_exposure_program; + break; default: return (NULL); } @@ -263,12 +282,13 @@ label = gtk_label_new (_(title)); gtk_widget_show (label); gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); - menu = gtk_option_menu_option_new (options); + menu = gtk_combo_box_new_with_model ( + gtk_tree_model_new_from_options (options)); gtk_widget_show (menu); gtk_box_pack_start (GTK_BOX (hbox), menu, FALSE, FALSE, 0); - entry->priv->menu = GTK_OPTION_MENU_OPTION (menu); - g_signal_connect (G_OBJECT (menu), "option_selected", - G_CALLBACK (on_option_selected), entry); + entry->priv->menu = GTK_COMBO_BOX (menu); + g_signal_connect (G_OBJECT (menu), "changed", + G_CALLBACK (on_changed), entry); gtk_exif_entry_option_load (entry); --- gtk-exif-entry-exposure.h DELETED --- Index: gtk-exif-content-list.c =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/gtk-exif-content-list.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- gtk-exif-content-list.c 1 Aug 2003 20:43:00 -0000 1.9 +++ gtk-exif-content-list.c 17 Oct 2004 13:54:23 -0000 1.10 @@ -29,7 +29,8 @@ #include <gtk/gtkcellrenderertext.h> #include <gtk/gtktreeselection.h> -#include "gtk-exif-tag-menu.h" +#include <gtk-extensions/gtk-menu-option.h> + #include "gtk-exif-util.h" #ifdef ENABLE_NLS @@ -396,13 +397,15 @@ gtk_exif_content_list_update_entry (GtkExifContentList *list, ExifEntry *e) { GtkTreeIter iter; + gchar s[1024]; g_return_if_fail (GTK_EXIF_IS_CONTENT_LIST (list)); g_return_if_fail (e != NULL); if (!gtk_exif_content_list_get_iter (list, e, &iter)) return; gtk_list_store_set (list->priv->store, &iter, - VALUE_COLUMN, exif_entry_get_value (e), -1); + VALUE_COLUMN, + exif_entry_get_value (e, s, sizeof (s)), -1); } void @@ -418,18 +421,19 @@ } void -gtk_exif_content_list_add_entry (GtkExifContentList *list, ExifEntry *entry) +gtk_exif_content_list_add_entry (GtkExifContentList *list, ExifEntry *e) { GtkTreeIter iter; + gchar s[1024]; g_return_if_fail (GTK_EXIF_IS_CONTENT_LIST (list)); gtk_list_store_append (list->priv->store, &iter); gtk_list_store_set (GTK_LIST_STORE (list->priv->store), &iter, - NAME_COLUMN, exif_tag_get_name (entry->tag), - VALUE_COLUMN, exif_entry_get_value (entry), - ENTRY_COLUMN, entry, -1); - g_signal_emit (list, signals[ENTRY_ADDED], 0, entry); + NAME_COLUMN, exif_tag_get_name (e->tag), + VALUE_COLUMN, exif_entry_get_value (e, s, sizeof (s)), + ENTRY_COLUMN, e, -1); + g_signal_emit (list, signals[ENTRY_ADDED], 0, e); } void --- gtk-exif-tag-menu.c DELETED --- Index: gtk-exif-browser.c =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/gtk-exif-browser.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -d -r1.16 -r1.17 --- gtk-exif-browser.c 1 Aug 2003 20:43:00 -0000 1.16 +++ gtk-exif-browser.c 17 Oct 2004 13:54:23 -0000 1.17 @@ -43,7 +43,6 @@ #include "gtk-exif-entry-ascii.h" #include "gtk-exif-entry-copyright.h" #include "gtk-exif-entry-date.h" -#include "gtk-exif-entry-exposure.h" #include "gtk-exif-entry-flash.h" #include "gtk-exif-entry-generic.h" #include "gtk-exif-entry-number.h" @@ -264,8 +263,6 @@ w = gtk_exif_entry_flash_new (entry); break; case EXIF_TAG_EXPOSURE_PROGRAM: - w = gtk_exif_entry_exposure_new (entry); - break; case EXIF_TAG_SENSING_METHOD: case EXIF_TAG_ORIENTATION: case EXIF_TAG_METERING_MODE: Index: gtk-exif-entry-resolution.c =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/gtk-exif-entry-resolution.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- gtk-exif-entry-resolution.c 1 Aug 2003 20:43:00 -0000 1.10 +++ gtk-exif-entry-resolution.c 17 Oct 2004 13:54:23 -0000 1.11 @@ -29,10 +29,11 @@ #include <gtk/gtkhbox.h> #include <gtk/gtksignal.h> #include <gtk/gtkframe.h> -#include <gtk/gtkoptionmenu.h> +#include <gtk/gtkcombobox.h> #include <gtk/gtkmenuitem.h> #include <gtk/gtkmenu.h> #include <gtk/gtklabel.h> +#include <gtk/gtktreestore.h> #include <libexif/exif-utils.h> @@ -69,7 +70,7 @@ struct _ResolutionUnitObjects { GtkToggleButton *check; - GtkOptionMenu *menu; + GtkComboBox *menu; }; struct _GtkExifEntryResolutionPrivate @@ -126,31 +127,33 @@ GTK_EXIF_CLASS (entry_resolution, EntryResolution, "EntryResolution") -static void -on_inch_activate (GtkMenuItem *item, GtkExifEntryResolution *entry) -{ - ExifEntry *e; - ExifByteOrder o; +enum { + UNIT_CENTIMETER = 3, + UNIT_INCH = 2 +}; - e = exif_content_get_entry (entry->priv->content, - entry->priv->tag_u); - g_return_if_fail (e != NULL); - o = exif_data_get_byte_order (e->parent->parent); - exif_set_short (e->data, o, 2); - gtk_exif_entry_changed (GTK_EXIF_ENTRY (entry), e); -} +enum { + UNIT_COLUMN, + NAME_COLUMN, + N_COLUMNS +}; static void -on_centimeter_activate (GtkMenuItem *item, GtkExifEntryResolution *entry) +on_unit_changed (GtkComboBox *cb, GtkExifEntryResolution *entry) { - ExifEntry *e; + GtkTreeModel *tm = gtk_combo_box_get_model (cb); + GtkTreeIter iter; + GValue v = {0,}; ExifByteOrder o; + ExifEntry *e; - e = exif_content_get_entry (entry->priv->content, - entry->priv->tag_u); - g_return_if_fail (e != NULL); + gtk_combo_box_get_active_iter (cb, &iter); + gtk_tree_model_get_value (tm, &iter, UNIT_COLUMN, &v); + + e = exif_content_get_entry (entry->priv->content, entry->priv->tag_u); + g_return_if_fail (e); o = exif_data_get_byte_order (e->parent->parent); - exif_set_short (e->data, o, 3); + exif_set_short (e->data, o, g_value_get_int (&v)); gtk_exif_entry_changed (GTK_EXIF_ENTRY (entry), e); } @@ -219,20 +222,20 @@ ExifEntry *e) { ExifByteOrder o; + GtkTreeModel *tm; + GValue v = {0,}; + GtkTreeIter iter; o = exif_data_get_byte_order (e->parent->parent); switch (e->format) { case EXIF_FORMAT_SHORT: - switch (exif_get_short (e->data, o)) { - case 2: - gtk_option_menu_set_history (entry->priv->u.menu, 1); - break; - case 3: - gtk_option_menu_set_history (entry->priv->u.menu, 0); - break; - default: - g_warning ("Invalid unit!"); - } + tm = gtk_combo_box_get_model (entry->priv->u.menu); + gtk_tree_model_get_iter_first (tm, &iter); + gtk_tree_model_get_value (tm, &iter, UNIT_COLUMN, &v); + while ((g_value_get_int (&v) != exif_get_short (e->data, o)) && + gtk_tree_model_iter_next (tm, &iter)) + gtk_tree_model_get_value (tm, &iter, UNIT_COLUMN, &v); + gtk_combo_box_set_active_iter (entry->priv->u.menu, &iter); break; default: g_warning ("Invalid format!"); @@ -366,9 +369,11 @@ gtk_exif_entry_resolution_new (ExifContent *content, gboolean focal_plane) { GtkExifEntryResolution *entry; - GtkWidget *hbox, *sp, *sq, *label, *menu, *item, *o, *c; + GtkWidget *hbox, *sp, *sq, *label, *o, *c; GtkObject *ap, *aq; ExifEntry *e; + GtkTreeIter iter; + GtkTreeModel *tm; g_return_val_if_fail (content != NULL, NULL); @@ -476,23 +481,20 @@ gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (c), (e != NULL)); g_signal_connect (GTK_OBJECT (c), "toggled", G_CALLBACK (on_unit_toggled), entry); - o = gtk_option_menu_new (); + tm = GTK_TREE_MODEL (gtk_list_store_new (N_COLUMNS, UNIT_COLUMN, + NAME_COLUMN)); + gtk_list_store_append (GTK_LIST_STORE (tm), &iter); + gtk_tree_store_set (GTK_TREE_STORE (tm), UNIT_COLUMN, UNIT_CENTIMETER, + NAME_COLUMN, _("Centimeter"), -1); + gtk_list_store_append (GTK_LIST_STORE (tm), &iter); + gtk_tree_store_set (GTK_TREE_STORE (tm), UNIT_COLUMN, UNIT_INCH, + NAME_COLUMN, _("Inch"), -1); + o = gtk_combo_box_new_with_model (tm); gtk_widget_show (o); gtk_box_pack_start (GTK_BOX (hbox), o, TRUE, TRUE, 0); - entry->priv->u.menu = GTK_OPTION_MENU (o); - menu = gtk_menu_new (); - gtk_widget_show (menu); - item = gtk_menu_item_new_with_label (_("Centimeter")); - gtk_widget_show (item); - gtk_container_add (GTK_CONTAINER (menu), item); - g_signal_connect (GTK_OBJECT (item), "activate", - G_CALLBACK (on_centimeter_activate), entry); - item = gtk_menu_item_new_with_label (_("Inch")); - gtk_widget_show (item); - gtk_container_add (GTK_CONTAINER (menu), item); - g_signal_connect (GTK_OBJECT (item), "activate", - G_CALLBACK (on_inch_activate), entry); - gtk_option_menu_set_menu (GTK_OPTION_MENU (o), menu); + g_signal_connect (G_OBJECT (o), "changed", + G_CALLBACK (on_unit_changed), entry); + entry->priv->u.menu = GTK_COMBO_BOX (o); if (e) gtk_exif_entry_resolution_load_unit (entry, e); --- gtk-exif-entry-exposure.c DELETED --- Index: gtk-exif-entry-generic.c =================================================================== RCS file: /cvsroot/libexif/libexif-gtk/libexif-gtk/gtk-exif-entry-generic.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- gtk-exif-entry-generic.c 15 Dec 2002 11:41:29 -0000 1.5 +++ gtk-exif-entry-generic.c 17 Oct 2004 13:54:23 -0000 1.6 @@ -88,7 +88,7 @@ { GtkExifEntryGeneric *entry; GtkWidget *table, *label; - gchar *txt; + gchar *txt, s[1024]; g_return_val_if_fail (e != NULL, NULL); @@ -136,7 +136,7 @@ label = gtk_label_new ("Value:"); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, 0, 0, 0, 0); - label = gtk_label_new (exif_entry_get_value (e)); + label = gtk_label_new (exif_entry_get_value (e, s, sizeof (s))); gtk_widget_show (label); gtk_table_attach (GTK_TABLE (table), label, 1, 2, 3, 4, 0, 0, 0, 0); |