This debug function can be used with GTKInspector to provide a visual
indication of where a widget is declared.
This is a documentation facility to aid developers new to the project.
Sample call:
GTK_DEBUG=interactive src/geeqie
22 files changed:
If the first word of the message is "error" or "warning" (case insensitive)
the message will be color-coded appropriately.
If the first word of the message is "error" or "warning" (case insensitive)
the message will be color-coded appropriately.
+
+GTKInspector:
+
+DEBUG_NAME(widget)
+For use with the GTKInspector to provide a visual indication of where objects are declared.
+
+Sample command line call:
+GTK_DEBUG=interactive src/geeqie
+
--------------------------------------------------------------------------------
GPL header, in every file, like this:
--------------------------------------------------------------------------------
GPL header, in every file, like this:
ew = g_new0(ExifWin, 1);
ew->window = window_new(GTK_WINDOW_TOPLEVEL, "view", NULL, NULL, _("Metadata"));
ew = g_new0(ExifWin, 1);
ew->window = window_new(GTK_WINDOW_TOPLEVEL, "view", NULL, NULL, _("Metadata"));
+ DEBUG_NAME(ew->window);
geometry.min_width = 900;
geometry.min_height = 600;
geometry.min_width = 900;
geometry.min_height = 600;
pd->bar = bar;
expander = gtk_expander_new(NULL);
pd->bar = bar;
expander = gtk_expander_new(NULL);
if (pd && pd->title)
{
gtk_expander_set_label_widget(GTK_EXPANDER(expander), pd->title);
if (pd && pd->title)
{
gtk_expander_set_label_widget(GTK_EXPANDER(expander), pd->title);
bd->lw = lw;
bd->widget = gtk_vbox_new(FALSE, PREF_PAD_GAP);
bd->lw = lw;
bd->widget = gtk_vbox_new(FALSE, PREF_PAD_GAP);
+ DEBUG_NAME(bd->widget);
g_object_set_data(G_OBJECT(bd->widget), "bar_data", bd);
g_signal_connect(G_OBJECT(bd->widget), "destroy",
G_CALLBACK(bar_destroy), bd);
g_object_set_data(G_OBJECT(bd->widget), "bar_data", bd);
g_signal_connect(G_OBJECT(bd->widget), "destroy",
G_CALLBACK(bar_destroy), bd);
gtk_widget_set_size_request(bd->widget, bd->width, -1);
box = gtk_hbox_new(FALSE, 0);
gtk_widget_set_size_request(bd->widget, bd->width, -1);
box = gtk_hbox_new(FALSE, 0);
bd->label_file_name = gtk_label_new("");
gtk_label_set_ellipsize(GTK_LABEL(bd->label_file_name), PANGO_ELLIPSIZE_END);
bd->label_file_name = gtk_label_new("");
gtk_label_set_ellipsize(GTK_LABEL(bd->label_file_name), PANGO_ELLIPSIZE_END);
gtk_widget_show(box);
scrolled = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_show(box);
scrolled = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_box_pack_start(GTK_BOX(bd->widget), scrolled, TRUE, TRUE, 0);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_box_pack_start(GTK_BOX(bd->widget), scrolled, TRUE, TRUE, 0);
gtk_viewport_set_shadow_type(GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(scrolled))), GTK_SHADOW_NONE);
add_box = gtk_vbox_new(FALSE, 0);
gtk_viewport_set_shadow_type(GTK_VIEWPORT(gtk_bin_get_child(GTK_BIN(scrolled))), GTK_SHADOW_NONE);
add_box = gtk_vbox_new(FALSE, 0);
gtk_box_pack_end(GTK_BOX(bd->widget), add_box, FALSE, FALSE, 0);
tbar = pref_toolbar_new(add_box, GTK_TOOLBAR_ICONS);
bd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
gtk_box_pack_end(GTK_BOX(bd->widget), add_box, FALSE, FALSE, 0);
tbar = pref_toolbar_new(add_box, GTK_TOOLBAR_ICONS);
bd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
pgd->height = height;
frame = gtk_frame_new(NULL);
pgd->height = height;
frame = gtk_frame_new(NULL);
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gpswidget = gtk_champlain_embed_new();
vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gpswidget = gtk_champlain_embed_new();
sd->undo_collection = NULL;
sd->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
sd->undo_collection = NULL;
sd->vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
g_object_set_data(G_OBJECT(sd->vbox), "bar_sort_data", sd);
g_signal_connect(G_OBJECT(sd->vbox), "destroy",
G_CALLBACK(bar_sort_destroy), sd);
g_object_set_data(G_OBJECT(sd->vbox), "bar_sort_data", sd);
g_signal_connect(G_OBJECT(sd->vbox), "destroy",
G_CALLBACK(bar_sort_destroy), sd);
G_CALLBACK(bar_sort_mode_cb), sd);
sd->folder_group = pref_box_new(sd->vbox, FALSE, GTK_ORIENTATION_VERTICAL, 0);
G_CALLBACK(bar_sort_mode_cb), sd);
sd->folder_group = pref_box_new(sd->vbox, FALSE, GTK_ORIENTATION_VERTICAL, 0);
+ DEBUG_NAME(sd->folder_group);
buttongrp = pref_radiobutton_new(sd->folder_group, NULL,
_("Copy"), (sd->action == BAR_SORT_COPY),
buttongrp = pref_radiobutton_new(sd->folder_group, NULL,
_("Copy"), (sd->action == BAR_SORT_COPY),
G_CALLBACK(bar_sort_set_selection_selected_cb), sd);
sd->bookmarks = bookmark_list_new(SORT_KEY_FOLDERS, bar_sort_bookmark_select, sd);
G_CALLBACK(bar_sort_set_selection_selected_cb), sd);
sd->bookmarks = bookmark_list_new(SORT_KEY_FOLDERS, bar_sort_bookmark_select, sd);
+ DEBUG_NAME(sd->bookmarks);
gtk_box_pack_start(GTK_BOX(sd->vbox), sd->bookmarks, TRUE, TRUE, 0);
gtk_widget_show(sd->bookmarks);
tbar = pref_toolbar_new(sd->vbox, GTK_TOOLBAR_ICONS);
gtk_box_pack_start(GTK_BOX(sd->vbox), sd->bookmarks, TRUE, TRUE, 0);
gtk_widget_show(sd->bookmarks);
tbar = pref_toolbar_new(sd->vbox, GTK_TOOLBAR_ICONS);
sd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
_("Add Bookmark"),
sd->add_button = pref_toolbar_button(tbar, GTK_STOCK_ADD, NULL, FALSE,
_("Add Bookmark"),
cw->cd = collection_new(path);
cw->window = window_new(GTK_WINDOW_TOPLEVEL, "collection", PIXBUF_INLINE_ICON_BOOK, NULL, NULL);
cw->cd = collection_new(path);
cw->window = window_new(GTK_WINDOW_TOPLEVEL, "collection", PIXBUF_INLINE_ICON_BOOK, NULL, NULL);
+ DEBUG_NAME(cw->window);
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
gtk_widget_show(cw->status_box);
frame = gtk_frame_new(NULL);
gtk_widget_show(cw->status_box);
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(cw->status_box), frame, TRUE, TRUE, 0);
gtk_widget_show(frame);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(cw->status_box), frame, TRUE, TRUE, 0);
gtk_widget_show(frame);
+/**
+ * @brief For use with the GTKInspector (>GTK 3.14)
+ *
+ * To simplify finding where objects are declared
+ * Sample command line call:
+ * GTK_DEBUG=interactive src/geeqie
+ */
+#define DEBUG_NAME(widget) do \
+ { \
+ gtk_widget_set_name(GTK_WIDGET(widget), g_strdup_printf("%s:%d", __FILE__, __LINE__, NULL)); \
+ } while(0)
+
#else /* DEBUG */
#define get_regexp() (0)
#else /* DEBUG */
#define get_regexp() (0)
#define DEBUG_N(n, ...) do { } while(0)
#define DEBUG_N(n, ...) do { } while(0)
+#define DEBUG_NAME(widget) do { } while(0)
+
#endif /* DEBUG */
#define DEBUG_0(...) DEBUG_N(0, __VA_ARGS__)
#endif /* DEBUG */
#define DEBUG_0(...) DEBUG_N(0, __VA_ARGS__)
ew->window = window_new(GTK_WINDOW_TOPLEVEL, "Desktop", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Desktop file"));
ew->window = window_new(GTK_WINDOW_TOPLEVEL, "Desktop", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Desktop file"));
+ DEBUG_NAME(ew->window);
gtk_window_set_type_hint(GTK_WINDOW(ew->window), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(ew->window), "delete_event",
gtk_window_set_type_hint(GTK_WINDOW(ew->window), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(ew->window), "delete_event",
editor_list_window = ewl = g_new0(EditorListWindow, 1);
ewl->window = window_new(GTK_WINDOW_TOPLEVEL, "editors", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Plugins"));
editor_list_window = ewl = g_new0(EditorListWindow, 1);
ewl->window = window_new(GTK_WINDOW_TOPLEVEL, "editors", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Plugins"));
+ DEBUG_NAME(ewl->window);
gtk_window_set_type_hint(GTK_WINDOW(ewl->window), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(ewl->window), "delete_event",
G_CALLBACK(editor_list_window_delete), NULL);
gtk_window_set_type_hint(GTK_WINDOW(ewl->window), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(ewl->window), "delete_event",
G_CALLBACK(editor_list_window_delete), NULL);
if (options->duplicates_match == DUPE_MATCH_NAME_CI) dw->match_mask = DUPE_MATCH_NAME_CI;
dw->window = window_new(GTK_WINDOW_TOPLEVEL, "dupe", NULL, NULL, _("Find duplicates"));
if (options->duplicates_match == DUPE_MATCH_NAME_CI) dw->match_mask = DUPE_MATCH_NAME_CI;
dw->window = window_new(GTK_WINDOW_TOPLEVEL, "dupe", NULL, NULL, _("Find duplicates"));
+ DEBUG_NAME(dw->window);
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
gtk_widget_show(status_box);
frame = gtk_frame_new(NULL);
gtk_widget_show(status_box);
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(status_box), frame, TRUE, TRUE, 0);
gtk_widget_show(frame);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(status_box), frame, TRUE, TRUE, 0);
gtk_widget_show(frame);
&screen, &fs->same_region);
fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
&screen, &fs->same_region);
fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
+ DEBUG_NAME(fs->window);
g_signal_connect(G_OBJECT(fs->window), "delete_event",
G_CALLBACK(fullscreen_delete_cb), fs);
g_signal_connect(G_OBJECT(fs->window), "delete_event",
G_CALLBACK(fullscreen_delete_cb), fs);
if (!screen_value) return NULL;
vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
if (!screen_value) return NULL;
vbox = gtk_vbox_new(FALSE, PREF_PAD_GAP);
hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
if (text) pref_label_new(hbox, text);
hbox = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, PREF_PAD_SPACE);
if (text) pref_label_new(hbox, text);
if (frame)
{
imd->frame = gtk_frame_new(NULL);
if (frame)
{
imd->frame = gtk_frame_new(NULL);
+ DEBUG_NAME(imd->frame);
g_object_ref(imd->pr);
if (imd->has_frame != -1) gtk_container_remove(GTK_CONTAINER(imd->widget), imd->pr);
gtk_container_add(GTK_CONTAINER(imd->frame), imd->pr);
g_object_ref(imd->pr);
if (imd->has_frame != -1) gtk_container_remove(GTK_CONTAINER(imd->widget), imd->pr);
gtk_container_add(GTK_CONTAINER(imd->frame), imd->pr);
imd->orientation = 1;
imd->pr = GTK_WIDGET(pixbuf_renderer_new());
imd->orientation = 1;
imd->pr = GTK_WIDGET(pixbuf_renderer_new());
image_options_set(imd);
imd->widget = gtk_vbox_new(0, 0);
image_options_set(imd);
imd->widget = gtk_vbox_new(0, 0);
+ DEBUG_NAME(imd->widget);
image_set_frame(imd, frame);
image_set_frame(imd, frame);
vw = g_new0(ViewWindow, 1);
vw->window = window_new(GTK_WINDOW_TOPLEVEL, "view", PIXBUF_INLINE_ICON_VIEW, NULL, NULL);
vw = g_new0(ViewWindow, 1);
vw->window = window_new(GTK_WINDOW_TOPLEVEL, "view", PIXBUF_INLINE_ICON_VIEW, NULL, NULL);
+ DEBUG_NAME(vw->window);
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
box = gtk_vbox_new(FALSE, 0);
menu_tool_bar = layout_actions_menu_tool_bar(lw);
box = gtk_vbox_new(FALSE, 0);
menu_tool_bar = layout_actions_menu_tool_bar(lw);
+ DEBUG_NAME(menu_tool_bar);
gtk_widget_show(menu_tool_bar);
gtk_box_pack_start(GTK_BOX(lw->main_box), lw->menu_tool_bar, FALSE, FALSE, 0);
if (lw->options.toolbar_hidden) gtk_widget_hide(lw->toolbar[TOOLBAR_MAIN]);
tabcomp = tab_completion_new_with_history(&lw->path_entry, NULL, "path_list", -1,
layout_path_entry_cb, lw);
gtk_widget_show(menu_tool_bar);
gtk_box_pack_start(GTK_BOX(lw->main_box), lw->menu_tool_bar, FALSE, FALSE, 0);
if (lw->options.toolbar_hidden) gtk_widget_hide(lw->toolbar[TOOLBAR_MAIN]);
tabcomp = tab_completion_new_with_history(&lw->path_entry, NULL, "path_list", -1,
layout_path_entry_cb, lw);
tab_completion_add_tab_func(lw->path_entry, layout_path_entry_tab_cb, lw);
tab_completion_add_append_func(lw->path_entry, layout_path_entry_tab_append_cb, lw);
gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
tab_completion_add_tab_func(lw->path_entry, layout_path_entry_tab_cb, lw);
tab_completion_add_append_func(lw->path_entry, layout_path_entry_tab_append_cb, lw);
gtk_box_pack_start(GTK_BOX(box), tabcomp, FALSE, FALSE, 0);
#endif
box_folders = GTK_WIDGET(gtk_hpaned_new());
#endif
box_folders = GTK_WIDGET(gtk_hpaned_new());
+ DEBUG_NAME(box_folders);
gtk_box_pack_start(GTK_BOX(box), box_folders, TRUE, TRUE, 0);
lw->vd = vd_new(lw->options.dir_view_type, lw->dir_fd);
gtk_box_pack_start(GTK_BOX(box), box_folders, TRUE, TRUE, 0);
lw->vd = vd_new(lw->options.dir_view_type, lw->dir_fd);
vd_set_select_func(lw->vd, layout_vd_select_cb, lw);
lw->dir_view = lw->vd->widget;
vd_set_select_func(lw->vd, layout_vd_select_cb, lw);
lw->dir_view = lw->vd->widget;
+ DEBUG_NAME(lw->dir_view);
gtk_paned_add2(GTK_PANED(box_folders), lw->dir_view);
gtk_widget_show(lw->dir_view);
scd = shortcuts_new_default(lw);
gtk_paned_add2(GTK_PANED(box_folders), lw->dir_view);
gtk_widget_show(lw->dir_view);
scd = shortcuts_new_default(lw);
gtk_paned_add1(GTK_PANED(box_folders), scd);
gtk_paned_set_position(GTK_PANED(box_folders), lw->options.folder_window.vdivider_pos);
gtk_paned_add1(GTK_PANED(box_folders), scd);
gtk_paned_set_position(GTK_PANED(box_folders), lw->options.folder_window.vdivider_pos);
GtkWidget *button;
button = gtk_button_new_with_label(sort_type_get_text(lw->sort_method));
GtkWidget *button;
button = gtk_button_new_with_label(sort_type_get_text(lw->sort_method));
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(layout_sort_button_press_cb), lw);
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
g_signal_connect(G_OBJECT(button), "clicked",
G_CALLBACK(layout_sort_button_press_cb), lw);
gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE);
frame = gtk_frame_new(NULL);
frame = gtk_frame_new(NULL);
if (size) gtk_widget_set_size_request(frame, size, -1);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
if (size) gtk_widget_set_size_request(frame, size, -1);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
GtkWidget *frame;
frame = gtk_frame_new(NULL);
GtkWidget *frame;
frame = gtk_frame_new(NULL);
if (size) gtk_widget_set_size_request(frame, size, -1);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
if (start)
if (size) gtk_widget_set_size_request(frame, size, -1);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
if (start)
if (small_format)
{
lw->info_box = gtk_vbox_new(FALSE, 0);
if (small_format)
{
lw->info_box = gtk_vbox_new(FALSE, 0);
+ DEBUG_NAME(lw->info_box);
}
else
{
lw->info_box = gtk_hbox_new(FALSE, 0);
}
else
{
lw->info_box = gtk_hbox_new(FALSE, 0);
+ DEBUG_NAME(lw->info_box);
}
gtk_box_pack_end(GTK_BOX(box), lw->info_box, FALSE, FALSE, 0);
gtk_widget_show(lw->info_box);
}
gtk_box_pack_end(GTK_BOX(box), lw->info_box, FALSE, FALSE, 0);
gtk_widget_show(lw->info_box);
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
hbox = lw->info_box;
}
lw->info_progress_bar = gtk_progress_bar_new();
hbox = lw->info_box;
}
lw->info_progress_bar = gtk_progress_bar_new();
+ DEBUG_NAME(lw->info_progress_bar);
gtk_widget_set_size_request(lw->info_progress_bar, PROGRESS_WIDTH, -1);
#if GTK_CHECK_VERSION(3,0,0)
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(lw->info_progress_bar), "");
gtk_widget_set_size_request(lw->info_progress_bar, PROGRESS_WIDTH, -1);
#if GTK_CHECK_VERSION(3,0,0)
gtk_progress_bar_set_text(GTK_PROGRESS_BAR(lw->info_progress_bar), "");
gtk_widget_show(lw->info_sort);
lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
gtk_widget_show(lw->info_sort);
lw->info_status = layout_status_label(NULL, lw->info_box, TRUE, 0, (!small_format));
+ DEBUG_NAME(lw->info_status);
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_status), _("Folder contents (files selected)"));
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_status), _("Folder contents (files selected)"));
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
lw->info_details = layout_status_label(NULL, hbox, TRUE, 0, TRUE);
+ DEBUG_NAME(lw->info_details);
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_details), _("(Image dimensions) Image size"));
toolbar = layout_actions_toolbar(lw, TOOLBAR_STATUS);
toolbar_frame = gtk_frame_new(NULL);
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_details), _("(Image dimensions) Image size"));
toolbar = layout_actions_toolbar(lw, TOOLBAR_STATUS);
toolbar_frame = gtk_frame_new(NULL);
+ DEBUG_NAME(toolbar_frame);
gtk_frame_set_shadow_type(GTK_FRAME(toolbar_frame), GTK_SHADOW_IN);
gtk_container_add(GTK_CONTAINER(toolbar_frame), toolbar);
gtk_widget_show(toolbar_frame);
gtk_frame_set_shadow_type(GTK_FRAME(toolbar_frame), GTK_SHADOW_IN);
gtk_container_add(GTK_CONTAINER(toolbar_frame), toolbar);
gtk_widget_show(toolbar_frame);
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
if (small_format)
{
hbox = gtk_hbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
lw->info_pixel = layout_status_label(NULL, hbox, FALSE, 0, small_format); /* expand only in small format */
gtk_box_pack_start(GTK_BOX(lw->info_box), hbox, FALSE, FALSE, 0);
gtk_widget_show(hbox);
}
lw->info_pixel = layout_status_label(NULL, hbox, FALSE, 0, small_format); /* expand only in small format */
+ DEBUG_NAME(lw->info_pixel);
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_pixel), _("[Pixel x,y coord]: (Pixel R,G,B value)"));
if (!lw->options.show_info_pixel) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
}
gtk_widget_set_tooltip_text(GTK_WIDGET(lw->info_pixel), _("[Pixel x,y coord]: (Pixel R,G,B value)"));
if (!lw->options.show_info_pixel) gtk_widget_hide(gtk_widget_get_parent(lw->info_pixel));
}
GdkWindowHints hints;
lw->tools = window_new(GTK_WINDOW_TOPLEVEL, "tools", PIXBUF_INLINE_ICON_TOOLS, NULL, _("Tools"));
GdkWindowHints hints;
lw->tools = window_new(GTK_WINDOW_TOPLEVEL, "tools", PIXBUF_INLINE_ICON_TOOLS, NULL, _("Tools"));
g_signal_connect(G_OBJECT(lw->tools), "delete_event",
G_CALLBACK(layout_tools_delete_cb), lw);
layout_keyboard_init(lw, lw->tools);
g_signal_connect(G_OBJECT(lw->tools), "delete_event",
G_CALLBACK(layout_tools_delete_cb), lw);
layout_keyboard_init(lw, lw->tools);
layout_actions_add_window(lw, lw->tools);
vbox = gtk_vbox_new(FALSE, 0);
layout_actions_add_window(lw, lw->tools);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(lw->tools), vbox);
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(lw->menu_tool_bar), FALSE, FALSE, 0);
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(lw->tools), vbox);
gtk_box_pack_start(GTK_BOX(vbox), GTK_WIDGET(lw->menu_tool_bar), FALSE, FALSE, 0);
gtk_widget_show(vbox);
if (vertical)
{
lw->tools_pane = gtk_vpaned_new();
if (vertical)
{
lw->tools_pane = gtk_vpaned_new();
+ DEBUG_NAME(lw->tools_pane);
}
else
{
lw->tools_pane = gtk_hpaned_new();
}
else
{
lw->tools_pane = gtk_hpaned_new();
+ DEBUG_NAME(lw->tools_pane);
}
gtk_box_pack_start(GTK_BOX(vbox), lw->tools_pane, TRUE, TRUE, 0);
gtk_widget_show(lw->tools_pane);
}
gtk_box_pack_start(GTK_BOX(vbox), lw->tools_pane, TRUE, TRUE, 0);
gtk_widget_show(lw->tools_pane);
layout_actions_setup(lw);
lw->group_box = gtk_vbox_new(FALSE, 0);
layout_actions_setup(lw);
lw->group_box = gtk_vbox_new(FALSE, 0);
+ DEBUG_NAME(lw->group_box);
gtk_box_pack_end(GTK_BOX(lw->main_box), lw->group_box, TRUE, TRUE, 0);
gtk_widget_show(lw->group_box);
gtk_box_pack_end(GTK_BOX(lw->main_box), lw->group_box, TRUE, TRUE, 0);
gtk_widget_show(lw->group_box);
{
layout_split_change(lw, lw->split_mode); /* this re-creates image frame for the new configuration */
image_sb = lw->utility_box;
{
layout_split_change(lw, lw->split_mode); /* this re-creates image frame for the new configuration */
image_sb = lw->utility_box;
}
else
{
GtkWidget *image; /* image or split images together */
image = layout_image_setup_split(lw, lw->split_mode);
image_sb = layout_bars_prepare(lw, image);
}
else
{
GtkWidget *image; /* image or split images together */
image = layout_image_setup_split(lw, lw->split_mode);
image_sb = layout_bars_prepare(lw, image);
}
tools = layout_tools_new(lw);
}
tools = layout_tools_new(lw);
files = layout_list_new(lw);
files = layout_list_new(lw);
if (lw->options.tools_float || lw->options.tools_hidden)
if (lw->options.tools_float || lw->options.tools_hidden)
layout_grid_compute(lw, image_sb, tools, files, &w1, &w2, &w3);
v = lw->v_pane = gtk_vpaned_new();
layout_grid_compute(lw, image_sb, tools, files, &w1, &w2, &w3);
v = lw->v_pane = gtk_vpaned_new();
h = lw->h_pane = gtk_hpaned_new();
h = lw->h_pane = gtk_hpaned_new();
if (!layout_location_vertical(priority_location))
{
if (!layout_location_vertical(priority_location))
{
copy_layout_options(&lc->options, &lw->options);
lc->configwindow = window_new(GTK_WINDOW_TOPLEVEL, "Layout", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Window options and layout"));
copy_layout_options(&lc->options, &lw->options);
lc->configwindow = window_new(GTK_WINDOW_TOPLEVEL, "Layout", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Window options and layout"));
+ DEBUG_NAME(lc->configwindow);
gtk_window_set_type_hint(GTK_WINDOW(lc->configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(lc->configwindow), "delete_event",
gtk_window_set_type_hint(GTK_WINDOW(lc->configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(lc->configwindow), "delete_event",
gtk_container_set_border_width(GTK_CONTAINER(lc->configwindow), PREF_PAD_BORDER);
win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_set_border_width(GTK_CONTAINER(lc->configwindow), PREF_PAD_BORDER);
win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_add(GTK_CONTAINER(lc->configwindow), win_vbox);
gtk_widget_show(win_vbox);
gtk_container_add(GTK_CONTAINER(lc->configwindow), win_vbox);
gtk_widget_show(win_vbox);
}
frame = pref_frame_new(win_vbox, TRUE, NULL, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
}
frame = pref_frame_new(win_vbox, TRUE, NULL, GTK_ORIENTATION_VERTICAL, PREF_PAD_GAP);
vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_add(GTK_CONTAINER(frame), vbox);
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(frame), vbox);
gtk_widget_show(vbox);
group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL);
lc->layout_widget = layout_config_new();
group = pref_group_new(vbox, FALSE, _("Layout"), GTK_ORIENTATION_VERTICAL);
lc->layout_widget = layout_config_new();
+ DEBUG_NAME(lc->layout_widget);
layout_config_set(lc->layout_widget, lw->options.style, lw->options.order);
gtk_box_pack_start(GTK_BOX(group), lc->layout_widget, TRUE, TRUE, 0);
layout_config_set(lc->layout_widget, lw->options.style, lw->options.order);
gtk_box_pack_start(GTK_BOX(group), lc->layout_widget, TRUE, TRUE, 0);
/* window */
lw->window = window_new(GTK_WINDOW_TOPLEVEL, GQ_APPNAME_LC, NULL, NULL, NULL);
/* window */
lw->window = window_new(GTK_WINDOW_TOPLEVEL, GQ_APPNAME_LC, NULL, NULL, NULL);
+ DEBUG_NAME(lw->window);
gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
#endif
lw->main_box = gtk_vbox_new(FALSE, 0);
#endif
lw->main_box = gtk_vbox_new(FALSE, 0);
+ DEBUG_NAME(lw->main_box);
gtk_container_add(GTK_CONTAINER(lw->window), lw->main_box);
gtk_widget_show(lw->main_box);
gtk_container_add(GTK_CONTAINER(lw->window), lw->main_box);
gtk_widget_show(lw->main_box);
/* horizontal split means vpaned and vice versa */
if (horizontal)
/* horizontal split means vpaned and vice versa */
if (horizontal)
paned = gtk_vpaned_new();
paned = gtk_vpaned_new();
paned = gtk_hpaned_new();
paned = gtk_hpaned_new();
gtk_paned_pack1(GTK_PANED(paned), lw->split_images[0]->widget, TRUE, TRUE);
gtk_paned_pack2(GTK_PANED(paned), lw->split_images[1]->widget, TRUE, TRUE);
gtk_paned_pack1(GTK_PANED(paned), lw->split_images[0]->widget, TRUE, TRUE);
gtk_paned_pack2(GTK_PANED(paned), lw->split_images[1]->widget, TRUE, TRUE);
layout_image_setup_split_common(lw, 4);
hpaned = gtk_hpaned_new();
layout_image_setup_split_common(lw, 4);
hpaned = gtk_hpaned_new();
vpaned1 = gtk_vpaned_new();
vpaned1 = gtk_vpaned_new();
vpaned2 = gtk_vpaned_new();
vpaned2 = gtk_vpaned_new();
gtk_paned_pack1(GTK_PANED(vpaned1), lw->split_images[0]->widget, TRUE, TRUE);
gtk_paned_pack2(GTK_PANED(vpaned1), lw->split_images[2]->widget, TRUE, TRUE);
gtk_paned_pack1(GTK_PANED(vpaned1), lw->split_images[0]->widget, TRUE, TRUE);
gtk_paned_pack2(GTK_PANED(vpaned1), lw->split_images[2]->widget, TRUE, TRUE);
if (lw->menu_tool_bar) return lw->menu_tool_bar;
menu_bar = layout_actions_menu_bar(lw);
if (lw->menu_tool_bar) return lw->menu_tool_bar;
menu_bar = layout_actions_menu_bar(lw);
toolbar = layout_actions_toolbar(lw, TOOLBAR_MAIN);
toolbar = layout_actions_toolbar(lw, TOOLBAR_MAIN);
lw->menu_tool_bar = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(lw->menu_tool_bar), menu_bar, FALSE, FALSE, 0);
lw->menu_tool_bar = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(lw->menu_tool_bar), menu_bar, FALSE, FALSE, 0);
if (!lw->utility_box) return;
bar = bar_new(lw);
if (!lw->utility_box) return;
bar = bar_new(lw);
if (lw->utility_box) return lw->utility_box;
lw->utility_box = gtk_hbox_new(FALSE, PREF_PAD_GAP);
lw->utility_paned = gtk_hpaned_new();
if (lw->utility_box) return lw->utility_box;
lw->utility_box = gtk_hbox_new(FALSE, PREF_PAD_GAP);
lw->utility_paned = gtk_hpaned_new();
+ DEBUG_NAME(lw->utility_paned);
gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->utility_paned, TRUE, TRUE, 0);
gtk_paned_pack1(GTK_PANED(lw->utility_paned), image, TRUE, FALSE);
gtk_box_pack_start(GTK_BOX(lw->utility_box), lw->utility_paned, TRUE, TRUE, 0);
gtk_paned_pack1(GTK_PANED(lw->utility_paned), image, TRUE, FALSE);
logwin = g_new0(LogWindow, 1);
window = window_new(GTK_WINDOW_TOPLEVEL, "log", NULL, NULL, _("Log"));
logwin = g_new0(LogWindow, 1);
window = window_new(GTK_WINDOW_TOPLEVEL, "log", NULL, NULL, _("Log"));
win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_add(GTK_CONTAINER(window), win_vbox);
gtk_widget_show(win_vbox);
win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_add(GTK_CONTAINER(window), win_vbox);
gtk_widget_show(win_vbox);
pw->idle_id = 0;
pw->window = window_new(GTK_WINDOW_TOPLEVEL, "panview", NULL, NULL, _("Pan View"));
pw->idle_id = 0;
pw->window = window_new(GTK_WINDOW_TOPLEVEL, "panview", NULL, NULL, _("Pan View"));
+ DEBUG_NAME(pw->window);
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_width = DEFAULT_MINIMAL_WINDOW_SIZE;
geometry.min_height = DEFAULT_MINIMAL_WINDOW_SIZE;
gtk_container_set_border_width(GTK_CONTAINER(pw->window), 0);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_set_border_width(GTK_CONTAINER(pw->window), 0);
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(pw->window), vbox);
gtk_widget_show(vbox);
gtk_container_add(GTK_CONTAINER(pw->window), vbox);
gtk_widget_show(vbox);
box = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, 0);
frame = gtk_frame_new(NULL);
box = pref_box_new(vbox, FALSE, GTK_ORIENTATION_HORIZONTAL, 0);
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
gtk_box_pack_start(GTK_BOX(box), frame, TRUE, TRUE, 0);
pw->label_message = pref_label_new(hbox, "");
frame = gtk_frame_new(NULL);
pw->label_message = pref_label_new(hbox, "");
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
gtk_box_pack_end(GTK_BOX(box), frame, FALSE, FALSE, 0);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_widget_set_size_request(frame, ZOOM_LABEL_WIDTH, -1);
gtk_box_pack_end(GTK_BOX(box), frame, FALSE, FALSE, 0);
if (!c_options) c_options = init_options(NULL);
configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Preferences"));
if (!c_options) c_options = init_options(NULL);
configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Preferences"));
+ DEBUG_NAME(configwindow);
gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(configwindow), "delete_event",
G_CALLBACK(config_window_delete), NULL);
gtk_window_set_type_hint(GTK_WINDOW(configwindow), GDK_WINDOW_TYPE_HINT_DIALOG);
g_signal_connect(G_OBJECT(configwindow), "delete_event",
G_CALLBACK(config_window_delete), NULL);
}
sd->window = window_new(GTK_WINDOW_TOPLEVEL, "search", NULL, NULL, _("Image search"));
}
sd->window = window_new(GTK_WINDOW_TOPLEVEL, "search", NULL, NULL, _("Image search"));
+ DEBUG_NAME(sd->window);
gtk_window_set_resizable(GTK_WINDOW(sd->window), TRUE);
gtk_window_set_resizable(GTK_WINDOW(sd->window), TRUE);
G_CALLBACK(search_thumb_toggle_cb), sd);
frame = gtk_frame_new(NULL);
G_CALLBACK(search_thumb_toggle_cb), sd);
frame = gtk_frame_new(NULL);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, PREF_PAD_SPACE);
gtk_widget_show(frame);
gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(hbox), frame, TRUE, TRUE, PREF_PAD_SPACE);
gtk_widget_show(frame);
/* window */
window = window_new(GTK_WINDOW_TOPLEVEL, subclass, NULL, NULL, title);
/* window */
window = window_new(GTK_WINDOW_TOPLEVEL, subclass, NULL, NULL, title);
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
gtk_window_set_default_size(GTK_WINDOW(window), HELP_WINDOW_WIDTH, HELP_WINDOW_HEIGHT);
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
gtk_window_set_default_size(GTK_WINDOW(window), HELP_WINDOW_WIDTH, HELP_WINDOW_HEIGHT);
if (filter)
{
paned = gtk_hpaned_new();
if (filter)
{
paned = gtk_hpaned_new();
gtk_table_attach(GTK_TABLE(table), paned, 0, 3, 1, 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
gtk_widget_show(paned);
gtk_table_attach(GTK_TABLE(table), paned, 0, 3, 1, 2,
GTK_EXPAND | GTK_FILL, GTK_EXPAND | GTK_FILL, 0, 0);
gtk_widget_show(paned);
gd->cancel_cb = cancel_cb;
gd->dialog = window_new(GTK_WINDOW_TOPLEVEL, role, NULL, NULL, title);
gd->cancel_cb = cancel_cb;
gd->dialog = window_new(GTK_WINDOW_TOPLEVEL, role, NULL, NULL, title);
+ DEBUG_NAME(gd->dialog);
gtk_window_set_type_hint(GTK_WINDOW(gd->dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
if (options->save_dialog_window_positions)
gtk_window_set_type_hint(GTK_WINDOW(gd->dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
if (options->save_dialog_window_positions)