cw->cd = collection_new(path);
- cw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- window_set_icon(cw->window, PIXBUF_INLINE_ICON_BOOK, NULL);
+ cw->window = window_new(GTK_WINDOW_TOPLEVEL, "collection", PIXBUF_INLINE_ICON_BOOK, NULL, NULL);
geometry.min_width = 32;
geometry.min_height = 32;
gtk_window_set_resizable(GTK_WINDOW(cw->window), TRUE);
collection_window_update_title(cw);
- gtk_window_set_wmclass(GTK_WINDOW(cw->window), "collection", GQ_WMCLASS);
gtk_container_set_border_width (GTK_CONTAINER (cw->window), 0);
g_signal_connect(G_OBJECT(cw->window), "delete_event",
dw->second_set = FALSE;
- dw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- window_set_icon(dw->window, NULL, NULL);
-
+ dw->window = window_new(GTK_WINDOW_TOPLEVEL, "dupe", NULL, NULL, _("Find duplicates"));
+
geometry.min_width = 32;
geometry.min_height = 32;
geometry.base_width = DUPE_DEF_WIDTH;
gtk_window_set_default_size(GTK_WINDOW(dw->window), DUPE_DEF_WIDTH, DUPE_DEF_HEIGHT);
gtk_window_set_resizable(GTK_WINDOW(dw->window), TRUE);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Find duplicates"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(dw->window), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(dw->window), "dupe", GQ_WMCLASS);
gtk_container_set_border_width (GTK_CONTAINER (dw->window), 0);
g_signal_connect(G_OBJECT(dw->window), "delete_event",
fullscreen_prefs_get_geometry(fullscreen_screen, window, &x, &y, &w, &h,
&screen, &same);
- fs->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- gtk_window_set_wmclass(GTK_WINDOW(fs->window), "fullscreen", GQ_WMCLASS);
+ fs->window = window_new(GTK_WINDOW_TOPLEVEL, "fullscreen", NULL, NULL, _("Full screen"));
/* this requests no decorations, if you still have them complain to the window manager author(s) */
gtk_window_set_decorated(GTK_WINDOW(fs->window), FALSE);
g_signal_connect(G_OBJECT(fs->window), "delete_event",
G_CALLBACK(fullscreen_delete_cb), fs);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Full screen"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(fs->window), title);
- g_free(title);
- }
-
geometry.min_width = w;
geometry.min_height = h;
geometry.max_width = w;
vw->list = NULL;
vw->list_pointer = NULL;
- vw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ vw->window = window_new(GTK_WINDOW_TOPLEVEL, "view", PIXBUF_INLINE_ICON_VIEW, NULL, NULL);
geometry.min_width = 8;
geometry.min_height = 8;
gtk_window_set_geometry_hints(GTK_WINDOW(vw->window), NULL, &geometry, GDK_HINT_MIN_SIZE);
gtk_window_set_resizable(GTK_WINDOW(vw->window), TRUE);
- gtk_window_set_title (GTK_WINDOW(vw->window), GQ_APPNAME);
- gtk_window_set_wmclass(GTK_WINDOW(vw->window), "view", GQ_WMCLASS);
gtk_container_set_border_width(GTK_CONTAINER(vw->window), 0);
- window_set_icon(vw->window, PIXBUF_INLINE_ICON_VIEW, NULL);
-
vw->imd = image_new(FALSE);
image_background_set_color(vw->imd, user_specified_window_background ? &window_background_color : NULL);
id->fd = (FileData *)id->list->data;
id->updated = FALSE;
- id->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ id->window = window_new(GTK_WINDOW_TOPLEVEL, "properties", NULL, NULL, _("Image properties"));
gtk_window_set_type_hint(GTK_WINDOW(id->window), GDK_WINDOW_TYPE_HINT_DIALOG);
- window_set_icon(id->window, NULL, NULL);
gtk_window_set_resizable(GTK_WINDOW(id->window), TRUE);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Image properties"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(id->window), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(id->window), "properties", GQ_WMCLASS);
geometry.min_width = 32;
geometry.min_height = 32;
GdkGeometry geometry;
GdkWindowHints hints;
- lw->tools = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ 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);
gtk_window_set_resizable(GTK_WINDOW(lw->tools), TRUE);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Tools"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(lw->tools), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(lw->tools), "tools", GQ_WMCLASS);
gtk_container_set_border_width(GTK_CONTAINER(lw->tools), 0);
-
- window_set_icon(lw->tools, PIXBUF_INLINE_ICON_TOOLS, NULL);
-
+
new_window = TRUE;
}
else
/* window */
- lw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ lw->window = window_new(GTK_WINDOW_TOPLEVEL, GQ_WMCLASS, NULL, NULL, NULL);
gtk_window_set_resizable(GTK_WINDOW(lw->window), TRUE);
-
- gtk_window_set_title(GTK_WINDOW(lw->window), GQ_APPNAME);
- gtk_window_set_wmclass(GTK_WINDOW(lw->window), GQ_WMCLASS, GQ_WMCLASS);
gtk_container_set_border_width(GTK_CONTAINER(lw->window), 0);
- window_set_icon(lw->window, NULL, NULL);
-
if (save_window_positions)
{
hint_mask = GDK_HINT_USER_POS;
*-----------------------------------------------------------------------------
*/
+GtkWidget *window_new(GtkWindowType type, const gchar *name, const gchar *icon,
+ const gchar *icon_file, const gchar *subtitle)
+{
+ gchar *title;
+ GtkWidget *window;
+
+ window = gtk_window_new(type);
+ if (!window) return NULL;
+
+ if (subtitle)
+ {
+ title = g_strdup_printf("%s - %s", subtitle, GQ_APPNAME);
+ }
+ else
+ {
+ title = g_strdup_printf("%s", GQ_APPNAME);
+ }
+
+ gtk_window_set_title(GTK_WINDOW(window), title);
+ g_free(title);
+
+ window_set_icon(window, icon, icon_file);
+ gtk_window_set_role(GTK_WINDOW(window), name);
+ gtk_window_set_wmclass(GTK_WINDOW(window), name, GQ_WMCLASS);
+
+ return window;
+}
+
void window_set_icon(GtkWidget *window, const gchar *icon, const gchar *file)
{
if (!icon && !file) icon = PIXBUF_INLINE_ICON;
* This also doubles as the main.c header.
*/
+GtkWidget *window_new(GtkWindowType type, const gchar *name, const gchar *icon,
+ const gchar *icon_file, const gchar *subtitle);
void window_set_icon(GtkWidget *window, const gchar *icon, const gchar *file);
gint window_maximized(GtkWidget *window);
pw->overlay_id = -1;
pw->idle_id = -1;
- pw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ pw->window = window_new(GTK_WINDOW_TOPLEVEL, "panview", NULL, NULL, _("Pan View"));
geometry.min_width = 8;
geometry.min_height = 8;
gtk_window_set_geometry_hints(GTK_WINDOW(pw->window), NULL, &geometry, GDK_HINT_MIN_SIZE);
gtk_window_set_resizable(GTK_WINDOW(pw->window), TRUE);
-
- {
- gchar *title = g_strdup_printf("%s - %s", _("Pan View"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(pw->window), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(pw->window), "view", GQ_WMCLASS);
gtk_container_set_border_width(GTK_CONTAINER(pw->window), 0);
- window_set_icon(pw->window, NULL, NULL);
-
vbox = gtk_vbox_new(FALSE, 0);
gtk_container_add(GTK_CONTAINER(pw->window), vbox);
gtk_widget_show(vbox);
GtkWidget *button;
GtkWidget *ct_button;
- configwindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ configwindow = window_new(GTK_WINDOW_TOPLEVEL, "preferences", PIXBUF_INLINE_ICON_CONFIG, NULL, _("Preferences"));
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_default_size(GTK_WINDOW(configwindow), CONFIG_WINDOW_DEF_WIDTH, CONFIG_WINDOW_DEF_HEIGHT);
gtk_window_set_resizable(GTK_WINDOW(configwindow), TRUE);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Preferences"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(configwindow), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(configwindow), "config", GQ_WMCLASS);
gtk_container_set_border_width(GTK_CONTAINER(configwindow), PREF_PAD_BORDER);
- window_set_icon(configwindow, PIXBUF_INLINE_ICON_CONFIG, NULL);
-
win_vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_container_add(GTK_CONTAINER(configwindow), win_vbox);
gtk_widget_show(win_vbox);
return;
}
- about = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ about = window_new(GTK_WINDOW_TOPLEVEL, "about", NULL, NULL, _("About"));
gtk_window_set_type_hint(GTK_WINDOW(about), GDK_WINDOW_TYPE_HINT_DIALOG);
- gtk_window_set_wmclass(GTK_WINDOW(about), "about", GQ_WMCLASS);
g_signal_connect(G_OBJECT(about), "delete_event",
G_CALLBACK(about_delete_cb), NULL);
- {
- gchar *title = g_strdup_printf("%s - %s", _("About"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(about), title);
- g_free(title);
- }
gtk_container_set_border_width(GTK_CONTAINER(about), PREF_PAD_BORDER);
vbox = gtk_vbox_new(FALSE, PREF_PAD_SPACE);
gtk_widget_grab_default(button);
gtk_widget_show(button);
- window_set_icon(about, NULL, NULL);
gtk_widget_show(about);
}
sd->search_idle_id = -1;
sd->update_idle_id = -1;
- sd->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- window_set_icon(sd->window, NULL, NULL);
+ sd->window = window_new(GTK_WINDOW_TOPLEVEL, "search", NULL, NULL, _("Image search"));
gtk_window_set_resizable(GTK_WINDOW(sd->window), TRUE);
- {
- gchar *title = g_strdup_printf("%s - %s", _("Image search"), GQ_APPNAME);
- gtk_window_set_title(GTK_WINDOW(sd->window), title);
- g_free(title);
- }
- gtk_window_set_wmclass(GTK_WINDOW(sd->window), "search", GQ_WMCLASS);
geometry.min_width = 32;
geometry.min_height = 32;
#include <gtk/gtk.h>
+#include "main.h"
#include "ui_help.h"
#include "ui_fileops.h"
/* window */
- window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ window = window_new(GTK_WINDOW_TOPLEVEL, subclass, NULL, NULL, title);
gtk_window_set_resizable(GTK_WINDOW(window), TRUE);
#if 0
gtk_container_set_border_width(GTK_CONTAINER(window), PREF_PAD_BORDER);
#endif
- gtk_window_set_wmclass(GTK_WINDOW(window), subclass, wmclass);
-
gtk_window_set_default_size(GTK_WINDOW(window), HELP_WINDOW_WIDTH, HELP_WINDOW_HEIGHT);
- gtk_window_set_title(GTK_WINDOW(window), title);
-
g_signal_connect(G_OBJECT(window), "delete_event",
G_CALLBACK(help_window_delete_cb), NULL);
gd->data = data;
gd->cancel_cb = cancel_cb;
- gd->dialog = gtk_window_new(GTK_WINDOW_TOPLEVEL);
+ gd->dialog = window_new(GTK_WINDOW_TOPLEVEL, wmsubclass, NULL, NULL, title);
gtk_window_set_type_hint(GTK_WINDOW(gd->dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
- gtk_window_set_wmclass(GTK_WINDOW(gd->dialog), wmsubclass, wmclass);
+
if (parent)
{
GtkWindow *window = NULL;
G_CALLBACK(generic_dialog_key_press_cb), gd);
gtk_window_set_resizable(GTK_WINDOW(gd->dialog), TRUE);
- gtk_window_set_title(GTK_WINDOW (gd->dialog), title);
gtk_container_set_border_width(GTK_CONTAINER(gd->dialog), PREF_PAD_BORDER);
vbox = gtk_vbox_new(FALSE, PREF_PAD_BUTTON_SPACE);