gtk_widget_show(cd->gd->dialog);
}
-static void cache_manager_sim_clear_ok_cb(GenericDialog *gd, gpointer data)
-{
- cache_maintain_home(FALSE, TRUE, NULL);
-}
-
static void cache_manager_sim_load_cb(GtkWidget *widget, gpointer data)
{
const gchar *path = layout_get_path(NULL);
guint param_id,
const GValue *value,
GParamSpec *pspec);
+static void gqv_cell_renderer_icon_init_wrapper(void *, void *);
static void gqv_cell_renderer_icon_init(GQvCellRendererIcon *celltext);
+static void gqv_cell_renderer_icon_class_init_wrapper(void *, void *);
static void gqv_cell_renderer_icon_class_init(GQvCellRendererIconClass *class);
static void gqv_cell_renderer_icon_finalize(GObject *object);
#if GTK_CHECK_VERSION(3,0,0)
sizeof(GQvCellRendererIconClass), /* class_size */
NULL, /* base_init */
NULL, /* base_finalize */
- (GClassInitFunc) gqv_cell_renderer_icon_class_init, /* class_init */
+ (GClassInitFunc) gqv_cell_renderer_icon_class_init_wrapper, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
sizeof(GQvCellRendererIcon), /* instance_size */
0, /* n_preallocs */
- (GInstanceInitFunc) gqv_cell_renderer_icon_init, /* instance_init */
+ (GInstanceInitFunc) gqv_cell_renderer_icon_init_wrapper, /* instance_init */
NULL, /* value_table */
};
return cell_icon_type;
}
+static void
+gqv_cell_renderer_icon_init_wrapper(void *data, void *user_data)
+{
+ gqv_cell_renderer_icon_init(data);
+}
+
static void
gqv_cell_renderer_icon_init(GQvCellRendererIcon *cellicon)
{
gtk_cell_renderer_set_padding(GTK_CELL_RENDERER(cellicon), 2, 2);
}
+static void
+gqv_cell_renderer_icon_class_init_wrapper(void *data, void *user_data)
+{
+ gqv_cell_renderer_icon_class_init(data);
+}
+
static void
gqv_cell_renderer_icon_class_init(GQvCellRendererIconClass *class)
{
}
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return g_list_reverse(list);
if (di_n == di) found = TRUE;
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return found;
if (di) list = g_list_prepend(list, di);
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
dw->color_frozen = TRUE;
gtk_tree_model_get_iter(store, &iter, tpath);
gtk_tree_model_get(store, &iter, DUPE_COLUMN_POINTER, &di, -1);
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
if (event->state & GDK_CONTROL_MASK)
static guint signals[SIGNAL_COUNT] = { 0 };
static void image_loader_init(GTypeInstance *instance, gpointer g_class);
+static void image_loader_class_init_wrapper(void *data, void *user_data);
static void image_loader_class_init(ImageLoaderClass *class);
static void image_loader_finalize(GObject *object);
static void image_loader_stop(ImageLoader *il);
sizeof(ImageLoaderClass),
NULL, /* base_init */
NULL, /* base_finalize */
- (GClassInitFunc)image_loader_class_init, /* class_init */
+ (GClassInitFunc)image_loader_class_init_wrapper, /* class_init */
NULL, /* class_finalize */
NULL, /* class_data */
sizeof(ImageLoader),
DEBUG_1("new image loader %p, bufsize=%" G_GSIZE_FORMAT " idle_loop=%u", il, il->read_buffer_size, il->idle_read_loop_count);
}
+static void image_loader_class_init_wrapper(void *data, void *user_data)
+{
+ image_loader_class_init(data);
+}
+
static void image_loader_class_init(ImageLoaderClass *class)
{
GObjectClass *gobject_class = G_OBJECT_CLASS (class);
static void image_loader_setup_loader(ImageLoader *il)
{
+#if defined HAVE_TIFF || defined HAVE_PDF || defined HAVE_HEIF || defined HAVE_DJVU
gchar *format;
+#endif
g_mutex_lock(il->data_mutex);
#ifdef HAVE_FFMPEGTHUMBNAILER
static gboolean image_loader_begin(ImageLoader *il)
{
- gssize b;
+#if defined HAVE_TIFF || defined HAVE_PDF || defined HAVE_HEIF || defined HAVE_DJVU
gchar *format;
+#endif
+ gssize b;
if (il->pixbuf) return FALSE;
break;
case FORMAT_CLASS_VIDEO:
pixbuf = pixbuf_inline(PIXBUF_INLINE_VIDEO);
+ break;
case FORMAT_CLASS_COLLECTION:
pixbuf = pixbuf_inline(PIXBUF_INLINE_COLLECTION);
break;
static void image_loader_djvu_set_page_num(gpointer loader, gint page_num)
{
- ImageLoader *il = (ImageLoader *) loader;
ImageLoaderDJVU *ld = (ImageLoaderDJVU *) loader;
ld->page_num = page_num;
};
+#if HAVE_FFMPEGTHUMBNAILER_RGB
static void image_loader_ft_log_cb(ThumbnailerLogLevel log_level, const char* msg)
{
if (log_level == ThumbnailerLogLevelError)
else
DEBUG_1("ImageLoaderFFmpegthumbnailer: %s",msg);
}
+#endif
void image_loader_ft_destroy_image_data(guchar *pixels, gpointer data)
{
static void image_loader_heif_set_page_num(gpointer loader, gint page_num)
{
- ImageLoader *il = (ImageLoader *) loader;
ImageLoaderHEIF *ld = (ImageLoaderHEIF *) loader;
ld->page_num = page_num;
static gboolean image_loader_j2k_load(gpointer loader, const guchar *buf, gsize count, GError **error)
{
ImageLoaderJ2K *ld = (ImageLoaderJ2K *) loader;
- ImageLoader *il = ld->data;
opj_stream_t *stream;
opj_codec_t *codec;
opj_dparameters_t parameters;
static void image_loader_pdf_set_page_num(gpointer loader, gint page_num)
{
- ImageLoader *il = (ImageLoader *) loader;
ImageLoaderPDF *ld = (ImageLoaderPDF *) loader;
ld->page_num = page_num;
image_alter_orientation(vw->imd, vw->imd->image_fd, type);
}
+#if !GTK_CHECK_VERSION(3,0,0)
static void view_wallpaper_cb(GtkWidget *widget, gpointer data)
{
ViewWindow *vw = data;
imd = view_window_active_image(vw);
image_to_root_window(imd, (image_zoom_get(imd) == 0.0));
}
+#endif
static void view_zoom_in_cb(GtkWidget *widget, gpointer data)
{
#include <stddef.h>
-static char *keymap_template [] = {
+char *keymap_template [] = {
"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>",
"<!-- Created with Inkscape (http://www.inkscape.org/) -->",
"",
--- /dev/null
+/*
+ * Copyright (C) 2020 Andreas Rönnquist <andreas@ronnquist.net>
+ * Copyright (C) 2020 The Geeqie Team
+ *
+ * Author: John Ellis
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
+#ifndef KEYMAP_TEMPLATE_H
+#define KEYMAP_TEMPLATE_H
+
+extern char *keymap_template [];
+
+#endif
file_util_start_editor_from_file(key, layout_image_get_fd(lw), lw->window);
}
+#if !GTK_CHECK_VERSION(3,0,0)
static void li_pop_menu_wallpaper_cb(GtkWidget *widget, gpointer data)
{
LayoutWindow *lw = data;
layout_image_to_root(lw);
}
+#endif
static void li_pop_menu_alter_cb(GtkWidget *widget, gpointer data)
{
#include <sys/wait.h>
#include <gdk/gdkkeysyms.h> /* for keyboard values */
-#include "keymap_template.c"
+#include "keymap_template.h"
#define MENU_EDIT_ACTION_OFFSET 16
#define FILE_COLUMN_POINTER 0
static void layout_menu_new_window_cb(GtkWidget *widget, gpointer data)
{
- LayoutWindow *nw = NULL;
gint n;
n = GPOINTER_TO_INT(data);
{ "ExifRotate", GTK_STOCK_ORIENTATION_PORTRAIT, N_("_Exif rotate"), "<alt>X", N_("Exif rotate"), CB(layout_menu_exif_rotate_cb), FALSE },
{ "DrawRectangle", PIXBUF_INLINE_ICON_DRAW_RECTANGLE, N_("Draw Rectangle"), NULL, N_("Draw Rectangle"), CB(layout_menu_select_rectangle_cb), FALSE },
{ "OverUnderExposed", PIXBUF_INLINE_ICON_EXPOSURE, N_("Over/Under Exposed"), "<shift>E", N_("Over/Under Exposed"), CB(layout_menu_select_overunderexposed_cb), FALSE },
- { "SplitPaneSync", PIXBUF_INLINE_SPLIT_PANE_SYNC, N_("Split Pane Sync"), NULL, N_("Split Pane Sync"), CB(layout_menu_split_pane_sync_cb) },
+ { "SplitPaneSync", PIXBUF_INLINE_SPLIT_PANE_SYNC, N_("Split Pane Sync"), NULL, N_("Split Pane Sync"), CB(layout_menu_split_pane_sync_cb), FALSE },
};
static GtkRadioActionEntry menu_radio_entries[] = {
gboolean use_image = FALSE;
gint i;
gchar action_name[15];
+#ifdef HAVE_LCMS
gchar *image_profile;
gchar *screen_profile;
-
+#endif
if (!lw->action_group) return;
if (!layout_image_color_profile_get(lw, &input, &use_image)) return;
#endif
}
+#ifdef HAVE_CLUTTER
static gboolean parse_command_line_for_clutter_option(gint argc, gchar *argv[])
{
const gchar *clutter_option = "--disable-clutter";
return ret;
}
+#endif
/*
*-----------------------------------------------------------------------------
return cores;
}
+void tree_path_free_wrapper(void *data, void *useradata)
+{
+ gtk_tree_path_free(data);
+}
+
/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
gchar *convert_rating_to_stars(gint rating);
gchar *get_symbolic_link(const gchar *path_utf8);
gint get_cpu_cores(void);
+void tree_path_free_wrapper(void *data, void *useradata);
#endif /* MISC_H */
/* vim: set shiftwidth=8 softtabstop=0 cindent cinoptions={1s: */
*-------------------------------------------------------------------
*/
+static void pixbuf_renderer_class_init_wrapper(void *g_class, void *class_data)
+{
+ pixbuf_renderer_class_init(g_class);
+}
+
+static void pixbuf_renderer_init_wrapper(PixbufRenderer *pr, void *class_data)
+{
+ pixbuf_renderer_init(pr);
+}
+
GType pixbuf_renderer_get_type(void)
{
static GType pixbuf_renderer_type = 0;
sizeof(PixbufRendererClass), /* class_size */
NULL, /* base_init */
NULL, /* base_finalize */
- (GClassInitFunc)pixbuf_renderer_class_init,
+ (GClassInitFunc)pixbuf_renderer_class_init_wrapper,
NULL, /* class_finalize */
NULL, /* class_data */
sizeof(PixbufRenderer), /* instance_size */
0, /* n_preallocs */
- (GInstanceInitFunc)pixbuf_renderer_init, /* instance_init */
+ (GInstanceInitFunc)pixbuf_renderer_init_wrapper, /* instance_init */
NULL, /* value_table */
};
static void config_window_apply(void)
{
- gint i;
gboolean refresh = FALSE;
+#ifdef HAVE_LCMS2
+ int i = 0;
+#endif
config_entry_to_option(safe_delete_path_entry, &options->file_ops.safe_delete_path, remove_trailing_slash);
GtkWidget *table;
GtkWidget *spin;
GtkWidget *two_pass;
+#ifdef HAVE_CLUTTER
GtkWidget *gpu_accel;
+#endif
vbox = scrolled_notebook_page(notebook, _("Image"));
return -1;
}
+
static gboolean search_result_row_selected(SearchData *sd, FileData *fd)
{
GtkTreeModel *store;
if (mfd_n->fd == fd) found = TRUE;
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return found;
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
if (bytes) *bytes = total;
flist = g_list_prepend(flist, mfd->fd);
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
work = flist;
return FALSE;
}
+
static gboolean search_result_keypress_cb(GtkWidget *widget, GdkEventKey *event, gpointer data)
{
SearchData *sd = data;
gtk_tree_model_get_iter(store, &iter, tpath);
gtk_tree_model_get(store, &iter, SEARCH_COLUMN_POINTER, &mfd, -1);
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
if (event->state & GDK_CONTROL_MASK)
}
}
-static void search_and_run_destroy(gpointer data)
+static gboolean search_and_run_destroy(gpointer data)
{
SarData *sar = data;
sar->lw->sar_window = NULL;
gtk_widget_destroy(sar->window);
+
+ return TRUE;
}
static gboolean entry_box_activate_cb(GtkWidget *widget, gpointer data)
return path8;
}
+void list_free_wrapper(void *data, void *userdata)
+{
+ g_free(data);
+}
+
void string_list_free(GList *list)
{
- g_list_foreach(list, (GFunc)g_free, NULL);
+ g_list_foreach(list, (GFunc)list_free_wrapper, NULL);
g_list_free(list);
}
static void download_web_file_cancel_button_cb(GenericDialog *gd, gpointer data)
{
WebData* web = data;
- GError *error = NULL;
g_cancellable_cancel(web->cancellable);
}
gtk_action_activate(action);
}
ret = TRUE;
- break;
}
+ break;
case MOUSE_BUTTON_9:
if (options->mouse_button_9)
{
if (vd->layout) layout_refresh(vd->layout);
}
-static void vd_pop_menu_new_rename_cb(gboolean success, const gchar *new_path, gpointer data)
-{
- ViewDir *vd = data;
- FileData *fd = NULL;
- if (!success) return;
-
- switch (vd->type)
- {
- case DIRVIEW_LIST:
- {
- vd_refresh(vd);
- fd = vdlist_row_by_path(vd, new_path, NULL);
- };
- break;
- case DIRVIEW_TREE:
- {
- FileData *new_fd = file_data_new_dir(new_path);
- fd = vdtree_populate_path(vd, new_fd, TRUE, TRUE);
- file_data_unref(new_fd);
- }
- break;
- }
- vd_rename_by_data(vd, fd);
-}
-
static void vd_pop_menu_new_folder_cb(gboolean success, const gchar *new_path, gpointer data)
{
ViewDir *vd = data;
GtkTreePath *tpath;
FileData *fd = NULL;
GdkDragAction action;
- GdkModifierType mask;
vd->click_fd = NULL;
* so. This is a workaround.
*/
#if GTK_CHECK_VERSION(3,0,0)
+ GdkModifierType mask;
+
gdk_window_get_pointer(gtk_widget_get_window(widget), NULL, NULL, &mask);
if (mask & GDK_CONTROL_MASK)
{
while (!fd && valid && tree_view_row_get_visibility(GTK_TREE_VIEW(vf->listview), &iter, FALSE) == 0)
{
- GList *work;
-
gtk_tree_model_get(store, &iter, FILE_COLUMN_POINTER, &nfd, -1);
if (nfd && nfd->rating == STAR_RATING_NOT_READ)
if (fd_n == fd) found = TRUE;
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return found;
}
count = g_list_length(slist);
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return count;
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return g_list_reverse(list);
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
return g_list_reverse(list);
work = work->next;
}
- g_list_foreach(slist, (GFunc)gtk_tree_path_free, NULL);
+ g_list_foreach(slist, (GFunc)tree_path_free_wrapper, NULL);
g_list_free(slist);
}