* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "main.h"
#include "advanced-exif.h"
+#include <cstring>
+
+#include <gdk/gdk.h>
+#include <glib-object.h>
+#include <glib.h>
+#include <pango/pango.h>
+
+#include <config.h>
+
+#include "compat.h"
+#include "debug.h"
+#include "dnd.h"
#include "exif.h"
#include "filedata.h"
#include "history-list.h"
+#include "intl.h"
#include "layout-util.h"
+#include "layout.h"
#include "misc.h"
+#include "options.h"
#include "ui-misc.h"
#include "window.h"
-#include "dnd.h"
-#define ADVANCED_EXIF_DATA_COLUMN_WIDTH 200
+struct ExifData;
+struct ExifItem;
+
+enum {
+ ADVANCED_EXIF_DATA_COLUMN_WIDTH = 200
+};
/*
*-------------------------------------------------------------------
*-------------------------------------------------------------------
*/
-typedef struct _ExifWin ExifWin;
-struct _ExifWin
+struct ExifWin
{
GtkWidget *window;
GtkWidget *vbox;
tag = g_strdup_printf("0x%04x", exif_item_get_tag_id(item));
tag_name = exif_item_get_tag_name(item);
format = exif_item_get_format_name(item, TRUE);
- text = exif_item_get_data_as_text(item);
+ text = exif_item_get_data_as_text(item, exif);
utf8_text = utf8_validate_or_convert(text);
g_free(text);
elements = g_strdup_printf("%d", exif_item_get_elements(item));
static gint n_exif_drag_types = 1;
-static void advanced_exif_dnd_get(GtkWidget *listview, GdkDragContext *UNUSED(context),
- GtkSelectionData *selection_data, guint UNUSED(info),
- guint UNUSED(time), gpointer UNUSED(data))
+static void advanced_exif_dnd_get(GtkWidget *listview, GdkDragContext *,
+ GtkSelectionData *selection_data,
+ guint, guint, gpointer)
{
- //ExifWin *ew = static_cast<//ExifWin *>(data);
GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(listview));
GtkTreeIter iter;
- if (gtk_tree_selection_get_selected(sel, NULL, &iter))
+ if (gtk_tree_selection_get_selected(sel, nullptr, &iter))
{
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(listview));
gchar *key;
gtk_tree_model_get(store, &iter, EXIF_ADVCOL_NAME, &key, -1);
gtk_selection_data_set_text(selection_data, key, -1);
- //printf("%s\n",key);
g_free(key);
}
}
-static void advanced_exif_dnd_begin(GtkWidget *listview, GdkDragContext *context, gpointer UNUSED(data))
+static void advanced_exif_dnd_begin(GtkWidget *listview, GdkDragContext *context, gpointer)
{
- //ExifWin *ew = static_cast<//ExifWin *>(data);
GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(listview));
GtkTreeIter iter;
- if (gtk_tree_selection_get_selected(sel, NULL, &iter))
+ if (gtk_tree_selection_get_selected(sel, nullptr, &iter))
{
GtkTreeModel *store = gtk_tree_view_get_model(GTK_TREE_VIEW(listview));
gchar *key;
static void advanced_exif_window_get_geometry(ExifWin *ew)
{
GdkWindow *window;
- LayoutWindow *lw = NULL;
+ LayoutWindow *lw = nullptr;
layout_valid(&lw);
advanced_exif_window_get_geometry(ew);
file_data_unref(ew->fd);
- gtk_widget_destroy(ew->window);
+ gq_gtk_widget_destroy(ew->window);
g_free(ew);
}
-static gboolean advanced_exif_delete_cb(GtkWidget *UNUSED(widget), GdkEvent *UNUSED(event), gpointer data)
+static gboolean advanced_exif_delete_cb(GtkWidget *, GdkEvent *, gpointer data)
{
auto ew = static_cast<ExifWin *>(data);
case EXIF_ADVCOL_FORMAT:
case EXIF_ADVCOL_ELEMENTS:
{
- gchar *s1, *s2;
+ gchar *s1;
+ gchar *s2;
gtk_tree_model_get(model, a, n, &s1, -1);
gtk_tree_model_get(model, b, n, &s2, -1);
return ret;
}
-static gboolean advanced_exif_mouseclick(GtkWidget *UNUSED(widget),
- GdkEventButton *UNUSED(bevent), gpointer data)
+#if HAVE_GTK4
+static gboolean advanced_exif_mouseclick(GtkWidget *, GdkEventButton *, gpointer data)
+{
+/* @FIXME GTK4 stub */
+ return TRUE;
+}
+#else
+static gboolean advanced_exif_mouseclick(GtkWidget *, GdkEventButton *, gpointer data)
{
auto ew = static_cast<ExifWin *>(data);
GtkTreePath *path;
return TRUE;
}
+#endif
-static gboolean advanced_exif_keypress(GtkWidget *UNUSED(widget), GdkEventKey *event, gpointer data)
+static gboolean advanced_exif_keypress(GtkWidget *, GdkEventKey *event, gpointer data)
{
auto ew = static_cast<ExifWin *>(data);
gboolean stop_signal = FALSE;
}
return stop_signal;
-} // static gboolean advanced_exif_...
+}
-static gboolean search_function_cb(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer UNUSED(data))
+static gboolean search_function_cb(GtkTreeModel *model, gint column, const gchar *key, GtkTreeIter *iter, gpointer)
{
gboolean ret = TRUE;
gchar *field_contents;
ew = g_new0(ExifWin, 1);
- ew->window = window_new(GTK_WINDOW_TOPLEVEL, "view", NULL, NULL, _("Metadata"));
+ ew->window = window_new("view", nullptr, nullptr, _("Metadata"));
DEBUG_NAME(ew->window);
geometry.min_width = 900;
geometry.min_height = 600;
- gtk_window_set_geometry_hints(GTK_WINDOW(ew->window), NULL, &geometry, GDK_HINT_MIN_SIZE);
+ gtk_window_set_geometry_hints(GTK_WINDOW(ew->window), nullptr, &geometry, GDK_HINT_MIN_SIZE);
gtk_window_set_resizable(GTK_WINDOW(ew->window), TRUE);
gtk_window_resize(GTK_WINDOW(ew->window), lw->options.advanced_exif_window.w, lw->options.advanced_exif_window.h);
if (lw->options.advanced_exif_window.x != 0 && lw->options.advanced_exif_window.y != 0)
{
- gtk_window_move(GTK_WINDOW(ew->window), lw->options.advanced_exif_window.x, lw->options.advanced_exif_window.y);
+ gq_gtk_window_move(GTK_WINDOW(ew->window), lw->options.advanced_exif_window.x, lw->options.advanced_exif_window.y);
}
g_object_set_data(G_OBJECT(ew->window), "advanced_exif_data", ew);
g_signal_connect(G_OBJECT(ew->window), "delete_event", G_CALLBACK(advanced_exif_delete_cb), ew);
ew->vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
- gtk_container_add(GTK_CONTAINER(ew->window), ew->vbox);
+ gq_gtk_container_add(GTK_WIDGET(ew->window), ew->vbox);
gtk_widget_show(ew->vbox);
box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_label_set_xalign(GTK_LABEL(ew->label_file_name), 0.5);
gtk_label_set_yalign(GTK_LABEL(ew->label_file_name), 0.5);
- gtk_box_pack_start(GTK_BOX(box), ew->label_file_name, TRUE, TRUE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(box), ew->label_file_name, TRUE, TRUE, 0);
gtk_widget_show(ew->label_file_name);
- gtk_box_pack_start(GTK_BOX(ew->vbox), box, FALSE, FALSE, 0);
+ gq_gtk_box_pack_start(GTK_BOX(ew->vbox), box, FALSE, FALSE, 0);
gtk_widget_show(box);
sortable = GTK_TREE_SORTABLE(store);
for (n = EXIF_ADVCOL_DESCRIPTION; n <= EXIF_ADVCOL_ELEMENTS; n++)
gtk_tree_sortable_set_sort_func(sortable, n, advanced_exif_sort_cb,
- GINT_TO_POINTER(n), NULL);
+ GINT_TO_POINTER(n), nullptr);
/* set initial sort order */
gtk_tree_sortable_set_sort_column_id(sortable, EXIF_ADVCOL_NAME, GTK_SORT_ASCENDING);
ew->listview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(store));
g_object_unref(store);
- gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(ew->listview), TRUE);
gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(ew->listview), TRUE);
advanced_exif_add_column(ew->listview, _("Description"), EXIF_ADVCOL_DESCRIPTION, FALSE);
gtk_tree_view_set_enable_search(GTK_TREE_VIEW(ew->listview), TRUE);
gtk_tree_view_set_search_column(GTK_TREE_VIEW(ew->listview), EXIF_ADVCOL_DESCRIPTION);
- gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(ew->listview), search_function_cb, ew, NULL);
+ gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(ew->listview), search_function_cb, ew, nullptr);
gtk_drag_source_set(ew->listview,
static_cast<GdkModifierType>(GDK_BUTTON1_MASK | GDK_BUTTON2_MASK),
g_signal_connect(G_OBJECT(ew->listview), "button_release_event",
G_CALLBACK(advanced_exif_mouseclick), ew);
- ew->scrolled = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(ew->scrolled), GTK_SHADOW_IN);
+ ew->scrolled = gq_gtk_scrolled_window_new(nullptr, nullptr);
+ gq_gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(ew->scrolled), GTK_SHADOW_IN);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(ew->scrolled),
GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
- gtk_box_pack_start(GTK_BOX(ew->vbox), ew->scrolled, TRUE, TRUE, 0);
- gtk_container_add(GTK_CONTAINER(ew->scrolled), ew->listview);
+ gq_gtk_box_pack_start(GTK_BOX(ew->vbox), ew->scrolled, TRUE, TRUE, 0);
+ gq_gtk_container_add(GTK_WIDGET(ew->scrolled), ew->listview);
gtk_widget_show(ew->listview);
gtk_widget_show(ew->scrolled);