diff options
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/Makefile.target | 35 | ||||
-rw-r--r-- | gtk/compat.c | 132 | ||||
-rw-r--r-- | gtk/compat.h | 25 | ||||
-rw-r--r-- | gtk/cookies.c | 33 | ||||
-rw-r--r-- | gtk/dialogs/about.c | 14 | ||||
-rw-r--r-- | gtk/dialogs/options.c | 36 | ||||
-rw-r--r-- | gtk/dialogs/source.c | 281 | ||||
-rw-r--r-- | gtk/download.c | 1211 | ||||
-rw-r--r-- | gtk/gui.c | 146 | ||||
-rw-r--r-- | gtk/gui.h | 3 | ||||
-rw-r--r-- | gtk/history.c | 43 | ||||
-rw-r--r-- | gtk/hotlist.c | 32 | ||||
-rw-r--r-- | gtk/login.c | 31 | ||||
-rw-r--r-- | gtk/menu.c | 1 | ||||
-rw-r--r-- | gtk/plotters.h | 1 | ||||
-rw-r--r-- | gtk/print.c | 6 | ||||
-rw-r--r-- | gtk/res/cookies.gtk2.ui (renamed from gtk/res/cookies.glade) | 112 | ||||
-rw-r--r-- | gtk/res/cookies.gtk3.ui | 205 | ||||
-rw-r--r-- | gtk/res/downloads.gtk2.ui (renamed from gtk/res/downloads.glade) | 70 | ||||
-rw-r--r-- | gtk/res/downloads.gtk3.ui | 175 | ||||
-rw-r--r-- | gtk/res/history.gtk2.ui | 242 | ||||
-rw-r--r-- | gtk/res/history.gtk3.ui (renamed from gtk/res/history.glade) | 197 | ||||
-rw-r--r-- | gtk/res/hotlist.gtk2.ui (renamed from gtk/res/hotlist.glade) | 139 | ||||
-rw-r--r-- | gtk/res/hotlist.gtk3.ui | 254 | ||||
-rw-r--r-- | gtk/res/login.gtk2.ui (renamed from gtk/res/login.glade) | 109 | ||||
-rw-r--r-- | gtk/res/login.gtk3.ui | 223 | ||||
-rw-r--r-- | gtk/res/menu_cursor.png | bin | 0 -> 255 bytes | |||
-rw-r--r-- | gtk/res/menu_cursor.xbm | 6 | ||||
-rw-r--r-- | gtk/res/menu_cursor_mask.xbm | 6 | ||||
-rw-r--r-- | gtk/res/menu_cursor_mask.xpm | 22 | ||||
-rw-r--r-- | gtk/res/netsurf.gtk2.ui (renamed from gtk/res/netsurf.glade) | 207 | ||||
-rw-r--r-- | gtk/res/netsurf.gtk3.ui | 207 | ||||
-rw-r--r-- | gtk/res/options.gtk2.ui (renamed from gtk/res/options.glade) | 1195 | ||||
-rw-r--r-- | gtk/res/options.gtk3.ui | 2709 | ||||
-rw-r--r-- | gtk/res/password.glade | 443 | ||||
-rw-r--r-- | gtk/res/password.gtk2.ui | 415 | ||||
-rw-r--r-- | gtk/res/password.gtk3.ui | 415 | ||||
-rw-r--r-- | gtk/res/source.gtk2.ui (renamed from gtk/res/source.glade) | 168 | ||||
-rw-r--r-- | gtk/res/source.gtk3.ui | 179 | ||||
-rw-r--r-- | gtk/res/ssl.gtk2.ui (renamed from gtk/res/ssl.glade) | 110 | ||||
-rw-r--r-- | gtk/res/ssl.gtk3.ui | 202 | ||||
-rw-r--r-- | gtk/res/tabcontents.gtk2.ui | 75 | ||||
-rw-r--r-- | gtk/res/tabcontents.gtk3.ui | 87 | ||||
-rw-r--r-- | gtk/res/toolbar.glade | 206 | ||||
-rw-r--r-- | gtk/res/toolbar.gtk2.ui | 189 | ||||
-rw-r--r-- | gtk/res/toolbar.gtk3.ui | 189 | ||||
-rw-r--r-- | gtk/res/warning.gtk2.ui (renamed from gtk/res/warning.glade) | 42 | ||||
-rw-r--r-- | gtk/res/warning.gtk3.ui | 77 | ||||
-rw-r--r-- | gtk/scaffolding.c | 98 | ||||
-rw-r--r-- | gtk/scaffolding.h | 2 | ||||
-rw-r--r-- | gtk/search.c | 5 | ||||
-rw-r--r-- | gtk/tabs.c | 20 | ||||
-rw-r--r-- | gtk/theme.c | 2 | ||||
-rw-r--r-- | gtk/toolbar.c | 48 | ||||
-rw-r--r-- | gtk/treeview.c | 138 | ||||
-rw-r--r-- | gtk/window.c | 479 |
56 files changed, 8594 insertions, 3103 deletions
diff --git a/gtk/Makefile.target b/gtk/Makefile.target index 71edb64a0..778093837 100644 --- a/gtk/Makefile.target +++ b/gtk/Makefile.target @@ -49,12 +49,12 @@ GTKCFLAGS := -std=c99 -Dgtk -Dnsgtk \ -D_NETBSD_SOURCE \ -DGTK_RESPATH=\"$(NETSURF_GTK_RESOURCES)\" \ $(WARNFLAGS) -I. -g \ - $(shell $(PKG_CONFIG) --cflags libglade-2.0 gtk+-2.0) \ + $(shell $(PKG_CONFIG) --cflags gtk+-$(NETSURF_GTK_MAJOR).0) \ $(shell $(PKG_CONFIG) --cflags libhubbub libcurl) \ $(shell $(PKG_CONFIG) --cflags openssl) \ $(shell xml2-config --cflags) -GTKLDFLAGS := $(shell $(PKG_CONFIG) --cflags --libs libglade-2.0 gtk+-2.0 gthread-2.0 gmodule-2.0 lcms) +GTKLDFLAGS := $(shell $(PKG_CONFIG) --cflags --libs gtk+-$(NETSURF_GTK_MAJOR).0 gthread-2.0 gmodule-2.0 lcms) CFLAGS += $(GTKCFLAGS) LDFLAGS += $(GTKLDFLAGS) @@ -67,22 +67,49 @@ ifeq ($(HOST),Windows_NT) CFLAGS += -U__STRICT_ANSI__ endif + +# ---------------------------------------------------------------------------- +# Pixbuf +# ---------------------------------------------------------------------------- + +GTK_IMAGE_menu_cursor := gtk/res/menu_cursor.png + +# 1: input file +# 2: output file +# 3: bitmap name +define convert_image + +S_PIXBUF += $(2) + +$(2): $(1) + $(Q)echo "#include <gdk-pixbuf/gdk-pixdata.h>" > $(2) + $(Q)gdk-pixbuf-csource --extern --struct --name=$(3) $(1) >> $(2) || \ + ( rm -f $(2) && false ) + +endef + # ---------------------------------------------------------------------------- # Source file setup # ---------------------------------------------------------------------------- +#converted pixbuf sources +S_PIXBUF := + +$(eval $(foreach V,$(filter GTK_IMAGE_%,$(.VARIABLES)),$(call convert_image,$($(V)),$(OBJROOT)/$(patsubst GTK_IMAGE_%,%,$(V)).c,$(patsubst GTK_IMAGE_%,%,$(V))_pixdata))) + # S_GTK are sources purely for the GTK build S_GTK := font_pango.c bitmap.c gui.c schedule.c thumbnail.c plotters.c \ treeview.c scaffolding.c gdk.c completion.c login.c throbber.c \ selection.c history.c window.c filetype.c download.c menu.c \ print.c save.c search.c tabs.c theme.c toolbar.c \ - sexy_icon_entry.c compat.c cookies.c hotlist.c system_colour.c \ + compat.c cookies.c hotlist.c system_colour.c \ $(addprefix dialogs/,options.c about.c source.c) + S_GTK := $(addprefix gtk/,$(S_GTK)) $(addprefix utils/,container.c) # code in utils/container.ch is non-universal it seems # This is the final source build list # Note this is deliberately *not* expanded here as common and image # are not yet available -SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_PDF) $(S_GTK) +SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_PDF) $(S_PIXBUF) $(S_GTK) EXETARGET := nsgtk diff --git a/gtk/compat.c b/gtk/compat.c index 8d8ac698b..191351408 100644 --- a/gtk/compat.c +++ b/gtk/compat.c @@ -20,6 +20,8 @@ * Compatibility functions for older GTK versions (implementation) */ +#include <stdint.h> + #include "gtk/compat.h" void nsgtk_widget_set_can_focus(GtkWidget *widget, gboolean can_focus) @@ -169,3 +171,133 @@ void nsgtk_entry_set_icon_from_stock(GtkWidget *entry, GtkEntryIconPosition icon #endif } + +void nsgtk_widget_override_background_color(GtkWidget *widget, GtkStateFlags state, uint16_t a, uint16_t r, uint16_t g, uint16_t b) +{ +#if GTK_CHECK_VERSION(3,0,0) + GdkRGBA colour; + colour.alpha = (double)a / 0xffff; + colour.red = (double)r / 0xffff; + colour.green = (double)g / 0xffff; + colour.blue = (double)b / 0xffff; + gtk_widget_override_background_color(widget, state, &colour); +#else + GdkColor colour; + colour.pixel = a; + colour.red = r; + colour.green = g; + colour.blue = b; + gtk_widget_modify_bg(widget, state, &colour ); +#endif +} + +GtkAdjustment *nsgtk_layout_get_vadjustment(GtkLayout *layout) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(layout)); +#else + return gtk_layout_get_vadjustment(layout); +#endif +} + +GtkAdjustment *nsgtk_layout_get_hadjustment(GtkLayout *layout) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(layout)); +#else + return gtk_layout_get_hadjustment(layout); +#endif +} + +void nsgtk_layout_set_hadjustment(GtkLayout *layout, GtkAdjustment *adj) +{ +#if GTK_CHECK_VERSION(3,0,0) + gtk_scrollable_set_hadjustment(GTK_SCROLLABLE(layout), adj); +#else + gtk_layout_set_hadjustment(layout, adj); +#endif +} + +void nsgtk_layout_set_vadjustment(GtkLayout *layout, GtkAdjustment *adj) +{ +#if GTK_CHECK_VERSION(3,0,0) + gtk_scrollable_set_vadjustment(GTK_SCROLLABLE(layout), adj); +#else + gtk_layout_set_vadjustment(layout, adj); +#endif +} + +GtkWidget *nsgtk_hbox_new(gboolean homogeneous, gint spacing) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_box_new(GTK_ORIENTATION_HORIZONTAL, spacing); +#else + return gtk_hbox_new(homogeneous, spacing); +#endif +} + +GtkWidget *nsgtk_vbox_new(gboolean homogeneous, gint spacing) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_box_new(GTK_ORIENTATION_VERTICAL, spacing); +#else + return gtk_vbox_new(homogeneous, spacing); +#endif +} + +GtkStateFlags nsgtk_widget_get_state_flags(GtkWidget *widget) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_widget_get_state_flags(widget); +#else + return gtk_widget_get_state(widget); +#endif +} + +GtkStyleContext *nsgtk_widget_get_style_context(GtkWidget *widget) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_widget_get_style_context(widget); +#else + return widget->style; +#endif +} + +const PangoFontDescription* nsgtk_style_context_get_font(GtkStyleContext *style, GtkStateFlags state) +{ +#if GTK_CHECK_VERSION(3,0,0) + return gtk_style_context_get_font(style, state); +#else + return style->font_desc; +#endif +} + +gulong nsgtk_connect_draw_event(GtkWidget *widget, GCallback callback, gpointer g) +{ +#if GTK_CHECK_VERSION(3,0,0) + return g_signal_connect(G_OBJECT(widget), "draw", callback, g); +#else + return g_signal_connect(G_OBJECT(widget), "expose_event", callback, g); +#endif +} + +void nsgdk_cursor_unref(GdkCursor *cursor) +{ +#if GTK_CHECK_VERSION(3,0,0) + g_object_unref(cursor); +#else + gdk_cursor_unref(cursor); +#endif +} + +void nsgtk_widget_modify_font(GtkWidget *widget, PangoFontDescription *font_desc) +{ +#if GTK_CHECK_VERSION(3,0,0) +/* FIXME */ + return; +#else + gtk_widget_modify_font(widget, font_desc); +#endif +} + + diff --git a/gtk/compat.h b/gtk/compat.h index b8f90e5e4..dea23e1db 100644 --- a/gtk/compat.h +++ b/gtk/compat.h @@ -46,8 +46,33 @@ typedef enum { } GtkEntryIconPosition; #endif +#if GTK_CHECK_VERSION (2, 90, 7) +#define GDK_KEY(symbol) GDK_KEY_##symbol +#else +#include <gdk/gdkkeysyms.h> +#define GDK_KEY(symbol) GDK_##symbol +#endif + +#if !GTK_CHECK_VERSION(3,0,0) +typedef GtkStateType GtkStateFlags; +typedef GtkStyle GtkStyleContext; +#endif + GtkWidget *nsgtk_entry_new(void); void nsgtk_entry_set_icon_from_pixbuf(GtkWidget *entry, GtkEntryIconPosition icon_pos, GdkPixbuf *pixbuf); void nsgtk_entry_set_icon_from_stock(GtkWidget *entry, GtkEntryIconPosition icon_pos, const gchar *stock_id); +void nsgtk_widget_override_background_color(GtkWidget *widget, GtkStateFlags state, uint16_t a, uint16_t r, uint16_t g, uint16_t b); +GtkAdjustment *nsgtk_layout_get_vadjustment(GtkLayout *layout); +GtkAdjustment *nsgtk_layout_get_hadjustment(GtkLayout *layout); +void nsgtk_layout_set_hadjustment(GtkLayout *layout, GtkAdjustment *adj); +void nsgtk_layout_set_vadjustment(GtkLayout *layout, GtkAdjustment *adj); +GtkWidget* nsgtk_hbox_new(gboolean homogeneous, gint spacing); +GtkWidget* nsgtk_vbox_new(gboolean homogeneous, gint spacing); +GtkStateFlags nsgtk_widget_get_state_flags(GtkWidget *widget); +GtkStyleContext* nsgtk_widget_get_style_context(GtkWidget *widget); +const PangoFontDescription* nsgtk_style_context_get_font(GtkStyleContext *style, GtkStateFlags state); +gulong nsgtk_connect_draw_event(GtkWidget *widget, GCallback callback, gpointer g); +void nsgdk_cursor_unref(GdkCursor *cursor); +void nsgtk_widget_modify_font(GtkWidget *widget, PangoFontDescription *font_desc); #endif /* NETSURF_GTK_COMPAT_H */ diff --git a/gtk/cookies.c b/gtk/cookies.c index 6427a1b06..dd62d568e 100644 --- a/gtk/cookies.c +++ b/gtk/cookies.c @@ -24,6 +24,7 @@ #include "desktop/cookies.h" #include "desktop/plotters.h" #include "desktop/tree.h" +#include "utils/log.h" #include "gtk/gui.h" #include "gtk/cookies.h" #include "gtk/plotters.h" @@ -80,7 +81,7 @@ static struct menu_events menu_events[] = { }; static struct nsgtk_treeview *cookies_window; -static GladeXML *gladeFile; +static GtkBuilder *gladeFile; GtkWindow *wndCookies; /** @@ -92,19 +93,23 @@ bool nsgtk_cookies_init(const char *glade_file_location) GtkScrolledWindow *scrolled; GtkDrawingArea *drawing_area; - gladeFile = glade_xml_new(glade_file_location, NULL, NULL); - if (gladeFile == NULL) + GError* error = NULL; + gladeFile = gtk_builder_new (); + if (!gtk_builder_add_from_file(gladeFile, glade_file_location, &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); return false; + } - glade_xml_signal_autoconnect(gladeFile); + gtk_builder_connect_signals(gladeFile, NULL); - wndCookies = GTK_WINDOW(glade_xml_get_widget(gladeFile, "wndCookies")); + wndCookies = GTK_WINDOW(gtk_builder_get_object(gladeFile, "wndCookies")); window = wndCookies; - scrolled = GTK_SCROLLED_WINDOW(glade_xml_get_widget(gladeFile, + scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(gladeFile, "cookiesScrolled")); - drawing_area = GTK_DRAWING_AREA(glade_xml_get_widget(gladeFile, + drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(gladeFile, "cookiesDrawingArea")); cookies_window = nsgtk_treeview_create(cookies_get_tree_flags(), window, @@ -134,12 +139,14 @@ bool nsgtk_cookies_init(const char *glade_file_location) void nsgtk_cookies_init_menu() { struct menu_events *event = menu_events; - - while (event->widget != NULL) - { - GtkWidget *w = glade_xml_get_widget(gladeFile, event->widget); - g_signal_connect(G_OBJECT(w), "activate", event->handler, - cookies_window); + GtkWidget *w; + + while (event->widget != NULL) { + w = GTK_WIDGET(gtk_builder_get_object(gladeFile, event->widget)); + if (w == NULL) { + LOG(("Unable to connect menu widget ""%s""", event->widget)); } else { + g_signal_connect(G_OBJECT(w), "activate", event->handler, cookies_window); + } event++; } } diff --git a/gtk/dialogs/about.c b/gtk/dialogs/about.c index 1f29103ad..c75a9787b 100644 --- a/gtk/dialogs/about.c +++ b/gtk/dialogs/about.c @@ -16,6 +16,8 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <stdint.h> + #include "gtk/compat.h" #include "gtk/gui.h" #include "gtk/dialogs/about.h" @@ -55,9 +57,9 @@ void nsgtk_about_dialog_init(GtkWindow *parent, GTK_DIALOG_DESTROY_WITH_PARENT, NULL); - vbox = gtk_vbox_new (FALSE, 8); + vbox = nsgtk_vbox_new(FALSE, 8); - gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), vbox, TRUE, TRUE, 0); + gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), vbox, TRUE, TRUE, 0); if (pixbufs != NULL) { GtkIconSet *icon_set = gtk_icon_set_new_from_pixbuf(GDK_PIXBUF(g_list_nth_data(pixbufs, 0))); @@ -101,16 +103,16 @@ void nsgtk_about_dialog_init(GtkWindow *parent, /* Add the credits button */ button = gtk_button_new_from_stock ("Credits"); - gtk_box_pack_end(GTK_BOX (GTK_DIALOG (dialog)->action_area), + gtk_box_pack_end(GTK_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))), button, FALSE, TRUE, 0); - gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), button, TRUE); + gtk_button_box_set_child_secondary (GTK_BUTTON_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))), button, TRUE); g_signal_connect(button, "clicked", G_CALLBACK(nsgtk_about_dialog_credits), (gpointer)bw); /* Add the Licence button */ button = gtk_button_new_from_stock ("Licence"); - gtk_box_pack_end(GTK_BOX (GTK_DIALOG (dialog)->action_area), + gtk_box_pack_end(GTK_BOX (GTK_DIALOG(gtk_dialog_get_action_area(GTK_DIALOG(dialog)))), button, FALSE, TRUE, 0); - gtk_button_box_set_child_secondary (GTK_BUTTON_BOX (GTK_DIALOG (dialog)->action_area), button, TRUE); + gtk_button_box_set_child_secondary (GTK_BUTTON_BOX(gtk_dialog_get_action_area(GTK_DIALOG(dialog))), button, TRUE); g_signal_connect(button, "clicked", G_CALLBACK(nsgtk_about_dialog_licence), (gpointer)bw); diff --git a/gtk/dialogs/options.c b/gtk/dialogs/options.c index 8cf949b31..1d095af97 100644 --- a/gtk/dialogs/options.c +++ b/gtk/dialogs/options.c @@ -25,7 +25,6 @@ #include <errno.h> #include <math.h> #include <gtk/gtk.h> -#include <glade/glade.h> #include "desktop/options.h" #include "desktop/print.h" @@ -42,7 +41,7 @@ #include "utils/messages.h" GtkDialog *wndPreferences = NULL; -static GladeXML *gladeFile; +static GtkBuilder *gladeFile; static struct browser_window *current_browser; @@ -128,7 +127,7 @@ DECLARE(setDefaultExportOptions); /* Used when the feature is not implemented yet */ #define FIND_WIDGET(wname) \ do { \ - (wname) = glade_xml_get_widget(gladeFile, #wname); \ + (wname) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #wname)); \ if ((wname) == NULL) \ LOG(("Unable to find widget '%s'!", #wname)); \ } while (0) @@ -140,14 +139,17 @@ DECLARE(setDefaultExportOptions); GtkDialog* nsgtk_options_init(struct browser_window *bw, GtkWindow *parent) { - gladeFile = glade_xml_new(glade_file_location->options, NULL, NULL); - if (gladeFile == NULL) + GError* error = NULL; + gladeFile = gtk_builder_new(); + if (!gtk_builder_add_from_file(gladeFile, glade_file_location->options, &error)) { + g_warning("Couldn't load builder file: %s", error->message); + g_error_free(error); return NULL; + } current_browser = bw; - wndPreferences = GTK_DIALOG(glade_xml_get_widget(gladeFile, - "dlgPreferences")); - gtk_window_set_transient_for (GTK_WINDOW(wndPreferences), parent); + wndPreferences = GTK_DIALOG(gtk_builder_get_object(gladeFile, "dlgPreferences")); + gtk_window_set_transient_for(GTK_WINDOW(wndPreferences), parent); FIND_WIDGET(sourceButtonTab); FIND_WIDGET(sourceButtonWindow); @@ -246,46 +248,46 @@ GtkDialog* nsgtk_options_init(struct browser_window *bw, GtkWindow *parent) #define SET_ENTRY(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_entry_set_text(GTK_ENTRY((widget)), (value)); \ } while (0) #define SET_SPIN(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_spin_button_set_value(GTK_SPIN_BUTTON((widget)), (value)); \ } while (0) #define SET_CHECK(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON((widget)), \ (value)); \ } while (0) #define SET_COMBO(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_combo_box_set_active(GTK_COMBO_BOX((widget)), (value)); \ } while (0) #define SET_FONT(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_font_button_set_font_name(GTK_FONT_BUTTON((widget)), \ (value)); \ } while (0) #define SET_FILE_CHOOSER(widget, value) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(\ (widget)), (value)); \ } while (0) #define SET_BUTTON(widget) \ do { \ - (widget) = glade_xml_get_widget(gladeFile, #widget); \ + (widget) = GTK_WIDGET(gtk_builder_get_object(gladeFile, #widget)); \ } while (0) @@ -329,7 +331,7 @@ void nsgtk_options_load(void) } /* Create combobox */ - box = GTK_BOX(glade_xml_get_widget(gladeFile, "combolanguagevbox")); + box = GTK_BOX(gtk_builder_get_object(gladeFile, "combolanguagevbox")); comboLanguage = nsgtk_combo_box_text_new(); /* Populate combobox from languages file */ @@ -477,7 +479,7 @@ static gboolean on_dialog_close (GtkDialog *dlg, gboolean stay_alive) static void nsgtk_options_theme_combo(void) { /* populate theme combo from themelist file */ - GtkBox *box = GTK_BOX(glade_xml_get_widget(gladeFile, "themehbox")); + GtkBox *box = GTK_BOX(gtk_builder_get_object(gladeFile, "themehbox")); char buf[50]; size_t len = SLEN("themelist") + strlen(res_dir_location) + 1; char themefile[len]; diff --git a/gtk/dialogs/source.c b/gtk/dialogs/source.c index 5fbd9bcd5..a364b3804 100644 --- a/gtk/dialogs/source.c +++ b/gtk/dialogs/source.c @@ -16,13 +16,14 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ +#include <stdint.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <gtk/gtk.h> -#include <glade/glade.h> +#include "gtk/compat.h" #include "gtk/dialogs/source.h" #include "gtk/dialogs/about.h" #include "gtk/window.h" @@ -36,6 +37,7 @@ #include "utils/url.h" #include "utils/utils.h" #include "utils/utf8.h" +#include "render/html.h" #include "render/font.h" #include "content/content.h" #include "content/content_type.h" @@ -58,17 +60,11 @@ struct menu_events { GCallback handler; }; -static GladeXML *glade_File; +static GtkBuilder *glade_File; static struct nsgtk_source_window *nsgtk_source_list = 0; static char source_zoomlevel = 10; void nsgtk_source_tab_init(GtkWindow *parent, struct browser_window *bw); -static void nsgtk_attach_source_menu_handlers(GladeXML *xml, gpointer g); -static gboolean nsgtk_source_delete_event(GtkWindow *window, gpointer g); -static gboolean nsgtk_source_destroy_event(GtkWindow *window, gpointer g); -static void nsgtk_source_update_zoomlevel(gpointer g); -static void nsgtk_source_file_save(GtkWindow *parent, const char *filename, - const char *data); #define MENUEVENT(x) { #x, G_CALLBACK(nsgtk_on_##x##_activate) } #define MENUPROTO(x) static gboolean nsgtk_on_##x##_activate( \ @@ -103,9 +99,45 @@ MENUEVENT(source_about), {NULL, NULL} }; +static void nsgtk_attach_source_menu_handlers(GtkBuilder *xml, gpointer g) +{ + struct menu_events *event = source_menu_events; + + while (event->widget != NULL) + { + GtkWidget *w = GTK_WIDGET(gtk_builder_get_object(xml, event->widget)); + g_signal_connect(G_OBJECT(w), "activate", event->handler, g); + event++; + } +} + +static gboolean nsgtk_source_destroy_event(GtkBuilder *window, gpointer g) +{ + struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; + + if (nsg->next != NULL) + nsg->next->prev = nsg->prev; + + if (nsg->prev != NULL) + nsg->prev->next = nsg->next; + else + nsgtk_source_list = nsg->next; + + free(nsg->data); + free(nsg->url); + free(g); + + return FALSE; +} + +static gboolean nsgtk_source_delete_event(GtkWindow * window, gpointer g) +{ + return FALSE; +} + void nsgtk_source_dialog_init(GtkWindow *parent, struct browser_window *bw) { - char glade_Location[strlen(res_dir_location) + SLEN("source.glade") + char glade_Location[strlen(res_dir_location) + SLEN("source.gtk2.ui") + 1]; if (content_get_type(bw->current_content) != CONTENT_HTML) return; @@ -115,12 +147,18 @@ void nsgtk_source_dialog_init(GtkWindow *parent, struct browser_window *bw) return; } - sprintf(glade_Location, "%ssource.glade", res_dir_location); - glade_File = glade_xml_new(glade_Location, NULL, NULL); - if (glade_File == NULL) { + sprintf(glade_Location, "%ssource.gtk2.ui", res_dir_location); + + GError* error = NULL; + glade_File = gtk_builder_new(); + if (!gtk_builder_add_from_file(glade_File, glade_Location, &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); LOG(("error loading glade tree")); + return; } + const char *source_data; unsigned long source_size; char *data = NULL; @@ -141,16 +179,16 @@ void nsgtk_source_dialog_init(GtkWindow *parent, struct browser_window *bw) return; } - GtkWindow *wndSource = GTK_WINDOW(glade_xml_get_widget( + GtkWindow *wndSource = GTK_WINDOW(gtk_builder_get_object( glade_File, "wndSource")); - GtkWidget *cutbutton = glade_xml_get_widget( - glade_File, "source_cut"); - GtkWidget *pastebutton = glade_xml_get_widget( - glade_File, "source_paste"); - GtkWidget *deletebutton = glade_xml_get_widget( - glade_File, "source_delete"); - GtkWidget *printbutton = glade_xml_get_widget( - glade_File, "source_print"); + GtkWidget *cutbutton = GTK_WIDGET(gtk_builder_get_object( + glade_File, "source_cut")); + GtkWidget *pastebutton = GTK_WIDGET(gtk_builder_get_object( + glade_File, "source_paste")); + GtkWidget *deletebutton = GTK_WIDGET(gtk_builder_get_object( + glade_File, "source_delete")); + GtkWidget *printbutton = GTK_WIDGET(gtk_builder_get_object( + glade_File, "source_print")); gtk_widget_set_sensitive(cutbutton, FALSE); gtk_widget_set_sensitive(pastebutton, FALSE); gtk_widget_set_sensitive(deletebutton, FALSE); @@ -200,13 +238,15 @@ void nsgtk_source_dialog_init(GtkWindow *parent, struct browser_window *bw) thiswindow); GtkTextView *sourceview = GTK_TEXT_VIEW( - glade_xml_get_widget(glade_File, + gtk_builder_get_object(glade_File, "source_view")); + PangoFontDescription *fontdesc = pango_font_description_from_string("Monospace 8"); thiswindow->gv = sourceview; - gtk_widget_modify_font(GTK_WIDGET(sourceview), fontdesc); + nsgtk_widget_modify_font(GTK_WIDGET(sourceview), fontdesc); + GtkTextBuffer *tb = gtk_text_view_get_buffer(sourceview); gtk_text_buffer_set_text(tb, thiswindow->data, -1); @@ -262,59 +302,7 @@ void nsgtk_source_tab_init(GtkWindow *parent, struct browser_window *bw) free(fileurl); } - -void nsgtk_attach_source_menu_handlers(GladeXML *xml, gpointer g) -{ - struct menu_events *event = source_menu_events; - - while (event->widget != NULL) - { - GtkWidget *w = glade_xml_get_widget(xml, event->widget); - g_signal_connect(G_OBJECT(w), "activate", event->handler, g); - event++; - } -} - -gboolean nsgtk_on_source_save_as_activate(GtkMenuItem *widget, gpointer g) -{ - struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; - GtkWidget *fc = gtk_file_chooser_dialog_new( - messages_get("gtkSourceSave"), - nsg->sourcewindow, - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, - GTK_RESPONSE_ACCEPT, - NULL); - char *filename; - url_func_result res; - - res = url_nice(nsg->url, &filename, false); - if (res != URL_FUNC_OK) { - filename = strdup(messages_get("SaveSource")); - if (filename == NULL) { - warn_user("NoMemory", 0); - return FALSE; - } - } - - gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(fc), filename); - - free(filename); - - if (gtk_dialog_run(GTK_DIALOG(fc)) == GTK_RESPONSE_ACCEPT) { - filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fc)); - nsgtk_source_file_save(nsg->sourcewindow, filename, nsg->data); - g_free(filename); - } - - gtk_widget_destroy(fc); - - return TRUE; -} - -void nsgtk_source_file_save(GtkWindow *parent, const char *filename, +static void nsgtk_source_file_save(GtkWindow *parent, const char *filename, const char *data) { FILE *f; @@ -344,7 +332,7 @@ void nsgtk_source_file_save(GtkWindow *parent, const char *filename, warn[len] = '\0'; label = gtk_label_new(warn); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(confd)->vbox), + gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(confd))), label); gtk_widget_show(label); if (gtk_dialog_run(GTK_DIALOG(confd)) == GTK_RESPONSE_ACCEPT) { @@ -372,10 +360,51 @@ void nsgtk_source_file_save(GtkWindow *parent, const char *filename, g_signal_connect_swapped(notif, "response", G_CALLBACK(gtk_widget_destroy), notif); label = gtk_label_new(temp); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(notif)->vbox), label); + gtk_container_add(GTK_CONTAINER(gtk_dialog_get_content_area(GTK_DIALOG(notif))), label); gtk_widget_show_all(notif); } + +gboolean nsgtk_on_source_save_as_activate(GtkMenuItem *widget, gpointer g) +{ + struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; + GtkWidget *fc = gtk_file_chooser_dialog_new( + messages_get("gtkSourceSave"), + nsg->sourcewindow, + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, + GTK_RESPONSE_ACCEPT, + NULL); + char *filename; + url_func_result res; + + res = url_nice(nsg->url, &filename, false); + if (res != URL_FUNC_OK) { + filename = strdup(messages_get("SaveSource")); + if (filename == NULL) { + warn_user("NoMemory", 0); + return FALSE; + } + } + + gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(fc), filename); + + free(filename); + + if (gtk_dialog_run(GTK_DIALOG(fc)) == GTK_RESPONSE_ACCEPT) { + filename = gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(fc)); + nsgtk_source_file_save(nsg->sourcewindow, filename, nsg->data); + g_free(filename); + } + + gtk_widget_destroy(fc); + + return TRUE; +} + + gboolean nsgtk_on_source_print_activate( GtkMenuItem *widget, gpointer g) { /* correct printing */ @@ -392,29 +421,7 @@ gboolean nsgtk_on_source_close_activate( GtkMenuItem *widget, gpointer g) return TRUE; } -gboolean nsgtk_source_delete_event(GtkWindow * window, gpointer g) -{ - return FALSE; -} - -gboolean nsgtk_source_destroy_event(GtkWindow * window, gpointer g) -{ - struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; - - if (nsg->next != NULL) - nsg->next->prev = nsg->prev; - - if (nsg->prev != NULL) - nsg->prev->next = nsg->next; - else - nsgtk_source_list = nsg->next; - - free(nsg->data); - free(nsg->url); - free(g); - return FALSE; -} gboolean nsgtk_on_source_select_all_activate (GtkMenuItem *widget, gpointer g) { @@ -455,42 +462,7 @@ gboolean nsgtk_on_source_delete_activate(GtkMenuItem *widget, gpointer g) return TRUE; } -gboolean nsgtk_on_source_zoom_in_activate(GtkMenuItem *widget, gpointer g) -{ - source_zoomlevel++; - nsgtk_source_update_zoomlevel(g); - - return TRUE; -} - -gboolean nsgtk_on_source_zoom_out_activate(GtkMenuItem *widget, gpointer g) -{ - if (source_zoomlevel > 1) { - source_zoomlevel--; - nsgtk_source_update_zoomlevel(g); - } - - return TRUE; -} - -gboolean nsgtk_on_source_zoom_normal_activate(GtkMenuItem *widget, gpointer g) -{ - source_zoomlevel = 10; - nsgtk_source_update_zoomlevel(g); - - return TRUE; -} - -gboolean nsgtk_on_source_about_activate(GtkMenuItem *widget, gpointer g) -{ - struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; - - nsgtk_about_dialog_init(nsg->sourcewindow, nsg->bw, netsurf_version); - - return TRUE; -} - -void nsgtk_source_update_zoomlevel(gpointer g) +static void nsgtk_source_update_zoomlevel(gpointer g) { struct nsgtk_source_window *nsg; GtkTextBuffer *buf; @@ -527,3 +499,40 @@ void nsgtk_source_update_zoomlevel(gpointer g) nsg = nsg->next; } } + +gboolean nsgtk_on_source_zoom_in_activate(GtkMenuItem *widget, gpointer g) +{ + source_zoomlevel++; + nsgtk_source_update_zoomlevel(g); + + return TRUE; +} + +gboolean nsgtk_on_source_zoom_out_activate(GtkMenuItem *widget, gpointer g) +{ + if (source_zoomlevel > 1) { + source_zoomlevel--; + nsgtk_source_update_zoomlevel(g); + } + + return TRUE; +} + + +gboolean nsgtk_on_source_zoom_normal_activate(GtkMenuItem *widget, gpointer g) +{ + source_zoomlevel = 10; + nsgtk_source_update_zoomlevel(g); + + return TRUE; +} + +gboolean nsgtk_on_source_about_activate(GtkMenuItem *widget, gpointer g) +{ + struct nsgtk_source_window *nsg = (struct nsgtk_source_window *) g; + + nsgtk_about_dialog_init(nsg->sourcewindow, nsg->bw, netsurf_version); + + return TRUE; +} + diff --git a/gtk/download.c b/gtk/download.c index 5e22352b4..71b1aa633 100644 --- a/gtk/download.c +++ b/gtk/download.c @@ -70,7 +70,7 @@ struct gui_download_window { struct download_context *ctx; nsgtk_download_actions sensitivity; nsgtk_download_status status; - + GString *name; GString *time_left; gint size_total; @@ -79,7 +79,7 @@ struct gui_download_window { gfloat time_remaining; gfloat start_time; gfloat speed; - + GtkTreeRowReference *row; GIOChannel *write; GError *error; @@ -96,113 +96,448 @@ static GtkTreeSelection *nsgtk_download_selection; static GtkTreeIter nsgtk_download_iter; static GTimer *nsgtk_downloads_timer; -static GList *nsgtk_downloads_list, *nsgtk_download_buttons; +static GList *nsgtk_downloads_list; +static GtkButton *nsgtk_download_button_pause; +static GtkButton *nsgtk_download_button_clear; +static GtkButton *nsgtk_download_button_cancel; +static GtkButton *nsgtk_download_button_resume; static gint nsgtk_downloads_num_active; -static const gchar* status_messages[] = { NULL, "gtkWorking", "gtkError", - "gtkComplete", "gtkCanceled" }; +static const gchar* status_messages[] = { NULL, "gtkWorking", "gtkError", + "gtkComplete", "gtkCanceled" }; + + + +static GtkTreeView* nsgtk_download_tree_view_new(GtkBuilder *gladeFile) +{ + GtkTreeView *treeview; + GtkCellRenderer *renderer; + + treeview = GTK_TREE_VIEW(gtk_builder_get_object(gladeFile, "treeDownloads")); + + /* Progress column */ + renderer = gtk_cell_renderer_progress_new(); + gtk_tree_view_insert_column_with_attributes (treeview, -1, + messages_get("gtkProgress"), renderer, "value", + NSGTK_DOWNLOAD_PROGRESS, "pulse", NSGTK_DOWNLOAD_PULSE, + "text", NSGTK_DOWNLOAD_STATUS, NULL); + + /* Information column */ + renderer = gtk_cell_renderer_text_new(); + g_object_set(G_OBJECT(renderer), "wrap-mode", PANGO_WRAP_WORD_CHAR, + "wrap-width", 300, NULL); + gtk_tree_view_insert_column_with_attributes (treeview, -1, + messages_get("gtkDetails"), renderer, "text", + NSGTK_DOWNLOAD_INFO, NULL); + gtk_tree_view_column_set_expand(gtk_tree_view_get_column(treeview, + NSGTK_DOWNLOAD_INFO), TRUE); + + /* Time remaining column */ + renderer = gtk_cell_renderer_text_new(); + gtk_tree_view_insert_column_with_attributes (treeview, -1, + messages_get("gtkRemaining"), renderer, "text", + NSGTK_DOWNLOAD_REMAINING, NULL); + + /* Speed column */ + renderer = gtk_cell_renderer_text_new(); + gtk_tree_view_insert_column_with_attributes (treeview, -1, + messages_get("gtkSpeed"), renderer, "text", + NSGTK_DOWNLOAD_SPEED, NULL); + + return treeview; +} + +static gint +nsgtk_download_sort(GtkTreeModel *model, + GtkTreeIter *a, + GtkTreeIter *b, + gpointer userdata) +{ + struct gui_download_window *dl1, *dl2; + + gtk_tree_model_get(model, a, NSGTK_DOWNLOAD, &dl1, -1); + gtk_tree_model_get(model, b, NSGTK_DOWNLOAD, &dl2, -1); + + return dl1->status - dl2->status; +} + +static void +nsgtk_download_sensitivity_update_buttons(nsgtk_download_actions sensitivity) +{ + /* Glade seems to pack the buttons in an arbitrary order */ + enum { PAUSE_BUTTON, CLEAR_BUTTON, CANCEL_BUTTON, RESUME_BUTTON }; + + gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_download_button_pause), + sensitivity & NSGTK_DOWNLOAD_PAUSE); + gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_download_button_clear), + sensitivity & NSGTK_DOWNLOAD_CLEAR); + gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_download_button_cancel), + sensitivity & NSGTK_DOWNLOAD_CANCEL); + gtk_widget_set_sensitive(GTK_WIDGET(nsgtk_download_button_resume), + sensitivity & NSGTK_DOWNLOAD_RESUME); +} + +static void nsgtk_download_sensitivity_evaluate(GtkTreeSelection *selection) +{ + GtkTreeIter iter; + GList *rows; + gboolean selected = gtk_tree_selection_count_selected_rows(selection); + GtkTreeModel *model = GTK_TREE_MODEL(nsgtk_download_store); + nsgtk_download_actions sensitivity = 0; + struct gui_download_window *dl; + + if (selected) { + rows = gtk_tree_selection_get_selected_rows(selection, &model); + while (rows != NULL) { + gtk_tree_model_get_iter(model, &iter, + (GtkTreePath*)rows->data); + gtk_tree_model_get(model, &iter, NSGTK_DOWNLOAD, + &dl, -1); + sensitivity |= dl->sensitivity; + rows = rows->next; + } + } else { + rows = nsgtk_downloads_list; + while (rows != NULL) { + dl = rows->data; + sensitivity |= (dl->sensitivity & NSGTK_DOWNLOAD_CLEAR); + rows = rows->next; + } + } -static gboolean nsgtk_download_hide(GtkWidget *window); -static GtkTreeView *nsgtk_download_tree_view_new(GladeXML *gladeFile); + nsgtk_download_sensitivity_update_buttons(sensitivity); +} + +static void nsgtk_download_do(nsgtk_download_selection_action action) +{ + GList *rows, *dls = NULL; + GtkTreeModel *model = GTK_TREE_MODEL(nsgtk_download_store); + gboolean selection_exists = gtk_tree_selection_count_selected_rows( + nsgtk_download_selection); + + if (selection_exists) { + rows = gtk_tree_selection_get_selected_rows( + nsgtk_download_selection, &model); + while (rows != NULL) { + struct gui_download_window *dl; + gtk_tree_model_get_iter(GTK_TREE_MODEL( + nsgtk_download_store), + &nsgtk_download_iter, + (GtkTreePath*)rows->data); + gtk_tree_model_get(GTK_TREE_MODEL(nsgtk_download_store), + &nsgtk_download_iter, NSGTK_DOWNLOAD, + &dl, -1); + dls = g_list_prepend(dls, dl); + + rows = rows->next; + } + g_list_foreach(rows, (GFunc)gtk_tree_path_free, NULL); + g_list_foreach(rows, (GFunc)g_free, NULL); + g_list_free(rows); + } else + dls = g_list_copy(nsgtk_downloads_list); + + g_list_foreach(dls, (GFunc)action, NULL); + g_list_free(dls); +} + +static gchar* nsgtk_download_info_to_string(struct gui_download_window *dl) +{ + gchar *size_info = g_strdup_printf(messages_get("gtkSizeInfo"), + human_friendly_bytesize(dl->size_downloaded), + dl->size_total == 0 ? messages_get("gtkUnknownSize") : + human_friendly_bytesize(dl->size_total)); + + gchar *r; + + if (dl->status != NSGTK_DOWNLOAD_ERROR) + r = g_strdup_printf("%s\n%s", dl->name->str, size_info); + else + r = g_strdup_printf("%s\n%s", dl->name->str, + dl->error->message); + + g_free(size_info); + + return r; +} + +static gchar* nsgtk_download_time_to_string(gint seconds) +{ + gint hours, minutes; + + if (seconds < 0) + return g_strdup("-"); + + hours = seconds / 3600; + seconds -= hours * 3600; + minutes = seconds / 60; + seconds -= minutes * 60; + + if (hours > 0) + return g_strdup_printf("%u:%02u:%02u", hours, minutes, + seconds); + else + return g_strdup_printf("%u:%02u", minutes, seconds); +} + +static void nsgtk_download_store_update_item (struct gui_download_window *dl) +{ + gchar *info = nsgtk_download_info_to_string(dl); + char *human = human_friendly_bytesize(dl->speed); + char speed[strlen(human) + SLEN("/s") + 1]; + sprintf(speed, "%s/s", human); + gchar *time = nsgtk_download_time_to_string(dl->time_remaining); + gboolean pulse = dl->status == NSGTK_DOWNLOAD_WORKING; + + /* Updates iter (which is needed to set and get data) with the dl row */ + gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), + &nsgtk_download_iter, + gtk_tree_row_reference_get_path(dl->row)); + + gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, + NSGTK_DOWNLOAD_PULSE, pulse ? dl->progress : -1, + NSGTK_DOWNLOAD_PROGRESS, pulse ? 0 : dl->progress, + NSGTK_DOWNLOAD_INFO, info, + NSGTK_DOWNLOAD_SPEED, dl->speed == 0 ? "-" : speed, + NSGTK_DOWNLOAD_REMAINING, time, + NSGTK_DOWNLOAD, dl, + -1); + + g_free(info); + g_free(time); +} + +static gboolean nsgtk_download_update(gboolean force_update) +{ + /* Be sure we need to update */ + if (!nsgtk_widget_get_visible(GTK_WIDGET(nsgtk_download_window))) + return TRUE; + + GList *list; + gchar *text; + gboolean update, pulse_mode = FALSE; + gint downloaded = 0, total = 0, dls = 0; + gfloat percent, elapsed = g_timer_elapsed(nsgtk_downloads_timer, NULL); + nsgtk_downloads_num_active = 0; + + for (list = nsgtk_downloads_list; list != NULL; list = list->next) { + struct gui_download_window *dl = list->data; + update = force_update; + + switch (dl->status) { + case NSGTK_DOWNLOAD_WORKING: + pulse_mode = TRUE; + + case NSGTK_DOWNLOAD_NONE: + dl->speed = dl->size_downloaded / + (elapsed - dl->start_time); + if (dl->status == NSGTK_DOWNLOAD_NONE) { + dl->time_remaining = (dl->size_total - + dl->size_downloaded)/ + dl->speed; + dl->progress = (gfloat) + dl->size_downloaded / + dl->size_total * 100; + } else + dl->progress++; + + nsgtk_downloads_num_active++; + update = TRUE; + + case NSGTK_DOWNLOAD_COMPLETE: + downloaded += dl->size_downloaded; + total += dl->size_total; + dls++; + + default: + ;//Do nothing + + } + if (update) + nsgtk_download_store_update_item(dl); + } + + if (pulse_mode) { + text = g_strdup_printf( + messages_get(nsgtk_downloads_num_active > 1 ? + "gtkProgressBarPulse" : + "gtkProgressBarPulseSingle"), + nsgtk_downloads_num_active); + gtk_progress_bar_pulse(nsgtk_download_progress_bar); + gtk_progress_bar_set_text(nsgtk_download_progress_bar, text); + } else { + percent = total != 0 ? (gfloat)downloaded / total : 0; + text = g_strdup_printf(messages_get("gtkProgressBar"), + floor(percent*100), dls); + gtk_progress_bar_set_fraction(nsgtk_download_progress_bar, + percent); + gtk_progress_bar_set_text(nsgtk_download_progress_bar, text); + } + + g_free(text); + + if (nsgtk_downloads_num_active == 0) + return FALSE; /* Returning FALSE here cancels the g_timeout */ + else + return TRUE; +} + +static void nsgtk_download_store_clear_item(struct gui_download_window *dl) +{ + if (dl->sensitivity & NSGTK_DOWNLOAD_CLEAR) { + nsgtk_downloads_list = g_list_remove(nsgtk_downloads_list, dl); + + gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), + &nsgtk_download_iter, + gtk_tree_row_reference_get_path(dl->row)); + gtk_list_store_remove(nsgtk_download_store, + &nsgtk_download_iter); + + download_context_destroy(dl->ctx); + g_string_free(dl->name, TRUE); + g_string_free(dl->time_left, TRUE); + g_free(dl); + + nsgtk_download_sensitivity_evaluate(nsgtk_download_selection); + nsgtk_download_update(FALSE); + } +} + static void nsgtk_download_tree_view_row_activated(GtkTreeView *tree, - GtkTreePath *path, GtkTreeViewColumn *column, gpointer data); - -static gint nsgtk_download_sort(GtkTreeModel *model, GtkTreeIter *a, - GtkTreeIter *b, gpointer userdata); -static gboolean nsgtk_download_update(gboolean force_update); -static void nsgtk_download_do(nsgtk_download_selection_action action); - -static void nsgtk_download_store_update_item(struct gui_download_window *dl); -static void nsgtk_download_store_create_item (struct gui_download_window *dl); -static void nsgtk_download_store_clear_item (struct gui_download_window *dl); -static void nsgtk_download_store_cancel_item (struct gui_download_window *dl); - -static void nsgtk_download_sensitivity_evaluate(GtkTreeSelection *selection); -static void nsgtk_download_sensitivity_update_buttons( - nsgtk_download_actions sensitivity); - -static void nsgtk_download_change_sensitivity( - struct gui_download_window *dl, nsgtk_download_actions sens); + GtkTreePath *path, GtkTreeViewColumn *column, gpointer data) +{ + GtkTreeModel *model; + GtkTreeIter iter; + + model = gtk_tree_view_get_model(tree); + + if (gtk_tree_model_get_iter(model, &iter, path)) { + /* TODO: This will be a context action (pause, start, clear) */ + nsgtk_download_do(nsgtk_download_store_clear_item); + } +} + +static void nsgtk_download_change_sensitivity(struct gui_download_window *dl, + nsgtk_download_actions sensitivity) +{ + dl->sensitivity = sensitivity; + nsgtk_download_sensitivity_evaluate(nsgtk_download_selection); +} + static void nsgtk_download_change_status ( - struct gui_download_window *dl, nsgtk_download_status status); + struct gui_download_window *dl, nsgtk_download_status status) +{ + dl->status = status; + if (status != NSGTK_DOWNLOAD_NONE) { + gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), + &nsgtk_download_iter, + gtk_tree_row_reference_get_path(dl->row)); + + gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, + NSGTK_DOWNLOAD_STATUS, + messages_get(status_messages[status]), -1); + } +} + +static void nsgtk_download_store_cancel_item (struct gui_download_window *dl) +{ + if (dl->sensitivity & NSGTK_DOWNLOAD_CANCEL) { + dl->speed = 0; + dl->size_downloaded = 0; + dl->progress = 0; + dl->time_remaining = -1; + nsgtk_download_change_sensitivity(dl, NSGTK_DOWNLOAD_CLEAR); + nsgtk_download_change_status(dl, NSGTK_DOWNLOAD_CANCELED); -static gchar* nsgtk_download_dialog_show (const gchar *filename, - const gchar *domain, const gchar *size); -static gchar* nsgtk_download_info_to_string (struct gui_download_window *dl); -static gchar* nsgtk_download_time_to_string (gint seconds); -static gboolean nsgtk_download_handle_error (GError *error); + download_context_abort(dl->ctx); - + g_unlink(download_context_get_filename(dl->ctx)); + + nsgtk_download_update(TRUE); + } +} + +static gboolean nsgtk_download_hide (GtkWidget *window) +{ + gtk_widget_hide(window); + return TRUE; +} bool nsgtk_download_init(const char *glade_file_location) { - GladeXML *gladeFile; + GError* error = NULL; + GtkBuilder* builder = gtk_builder_new(); - gladeFile = glade_xml_new(glade_file_location, NULL, NULL); - if (gladeFile == NULL) + if (!gtk_builder_add_from_file(builder, glade_file_location, &error)) + { + g_warning("Couldn't load builder file: %s", error->message); + g_error_free(error); return false; + } - nsgtk_download_buttons = - glade_xml_get_widget_prefix(gladeFile, "button"); - nsgtk_download_progress_bar = GTK_PROGRESS_BAR(glade_xml_get_widget( - gladeFile, "progressBar")); - nsgtk_download_window = GTK_WINDOW(glade_xml_get_widget(gladeFile, - "wndDownloads")); + nsgtk_download_button_pause = GTK_BUTTON(gtk_builder_get_object(builder, "buttonPause")); + nsgtk_download_button_clear = GTK_BUTTON(gtk_builder_get_object(builder, "buttonClear")); + nsgtk_download_button_cancel = GTK_BUTTON(gtk_builder_get_object(builder, "buttonCancel")); + nsgtk_download_button_resume = GTK_BUTTON(gtk_builder_get_object(builder, "buttonPlay")); + + nsgtk_download_progress_bar = GTK_PROGRESS_BAR(gtk_builder_get_object(builder, "progressBar")); + nsgtk_download_window = GTK_WINDOW(gtk_builder_get_object(builder, "wndDownloads")); nsgtk_download_parent = NULL; - + gtk_window_set_transient_for(GTK_WINDOW(nsgtk_download_window), - nsgtk_download_parent); + nsgtk_download_parent); gtk_window_set_destroy_with_parent(GTK_WINDOW(nsgtk_download_window), - FALSE); - + FALSE); + nsgtk_downloads_timer = g_timer_new(); - - nsgtk_download_tree = nsgtk_download_tree_view_new(gladeFile); - + + nsgtk_download_tree = nsgtk_download_tree_view_new(builder); + nsgtk_download_store = gtk_list_store_new(NSGTK_DOWNLOAD_N_COLUMNS, - G_TYPE_INT, /* % complete */ - G_TYPE_STRING, /* Description */ - G_TYPE_STRING, /* Time remaining */ - G_TYPE_STRING, /* Speed */ - G_TYPE_INT, /* Pulse */ - G_TYPE_STRING, /* Status */ - G_TYPE_POINTER /* Download structure */ - ); - - + G_TYPE_INT, /* % complete */ + G_TYPE_STRING, /* Description */ + G_TYPE_STRING, /* Time remaining */ + G_TYPE_STRING, /* Speed */ + G_TYPE_INT, /* Pulse */ + G_TYPE_STRING, /* Status */ + G_TYPE_POINTER /* Download structure */ + ); + + gtk_tree_view_set_model(nsgtk_download_tree, - GTK_TREE_MODEL(nsgtk_download_store)); - + GTK_TREE_MODEL(nsgtk_download_store)); + gtk_tree_sortable_set_sort_func(GTK_TREE_SORTABLE(nsgtk_download_store), - NSGTK_DOWNLOAD_STATUS, - (GtkTreeIterCompareFunc) nsgtk_download_sort, NULL, NULL); + NSGTK_DOWNLOAD_STATUS, + (GtkTreeIterCompareFunc) nsgtk_download_sort, NULL, NULL); gtk_tree_sortable_set_sort_column_id( - GTK_TREE_SORTABLE(nsgtk_download_store), - NSGTK_DOWNLOAD_STATUS, GTK_SORT_ASCENDING); - + GTK_TREE_SORTABLE(nsgtk_download_store), + NSGTK_DOWNLOAD_STATUS, GTK_SORT_ASCENDING); + g_object_unref(nsgtk_download_store); - - nsgtk_download_selection = - gtk_tree_view_get_selection(nsgtk_download_tree); + + nsgtk_download_selection = + gtk_tree_view_get_selection(nsgtk_download_tree); gtk_tree_selection_set_mode(nsgtk_download_selection, - GTK_SELECTION_MULTIPLE); - - g_signal_connect(G_OBJECT(nsgtk_download_selection), "changed", - G_CALLBACK(nsgtk_download_sensitivity_evaluate), NULL); - g_signal_connect(nsgtk_download_tree, "row-activated", - G_CALLBACK(nsgtk_download_tree_view_row_activated), - NULL); - g_signal_connect_swapped(glade_xml_get_widget(gladeFile, "buttonClear"), - "clicked", G_CALLBACK(nsgtk_download_do), - nsgtk_download_store_clear_item); - g_signal_connect_swapped(glade_xml_get_widget(gladeFile, - "buttonCancel"), "clicked", - G_CALLBACK(nsgtk_download_do), - nsgtk_download_store_cancel_item); - g_signal_connect(G_OBJECT(nsgtk_download_window), "delete-event", - G_CALLBACK(nsgtk_download_hide), NULL); - - return true; + GTK_SELECTION_MULTIPLE); + + g_signal_connect(G_OBJECT(nsgtk_download_selection), "changed", + G_CALLBACK(nsgtk_download_sensitivity_evaluate), NULL); + g_signal_connect(nsgtk_download_tree, "row-activated", + G_CALLBACK(nsgtk_download_tree_view_row_activated), + NULL); + g_signal_connect_swapped(gtk_builder_get_object(builder, "buttonClear"), + "clicked", + G_CALLBACK(nsgtk_download_do), + nsgtk_download_store_clear_item); + g_signal_connect_swapped(gtk_builder_get_object(builder, "buttonCancel"), + "clicked", + G_CALLBACK(nsgtk_download_do), + nsgtk_download_store_cancel_item); + g_signal_connect(G_OBJECT(nsgtk_download_window), "delete-event", + G_CALLBACK(nsgtk_download_hide), NULL); + + return true; } void nsgtk_download_destroy () @@ -215,57 +550,187 @@ bool nsgtk_check_for_downloads (GtkWindow *parent) if (nsgtk_downloads_num_active != 0) { GtkWidget *dialog; dialog = gtk_message_dialog_new_with_markup(parent, - GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, - GTK_BUTTONS_NONE, - "<big><b>%s</b></big>\n\n" - "<small>%s</small>", messages_get("gtkQuit"), - messages_get("gtkDownloadsRunning")); - gtk_dialog_add_buttons(GTK_DIALOG(dialog), "gtk-cancel", - GTK_RESPONSE_CANCEL, "gtk-quit", - GTK_RESPONSE_CLOSE, NULL); - + GTK_DIALOG_MODAL, GTK_MESSAGE_WARNING, + GTK_BUTTONS_NONE, + "<big><b>%s</b></big>\n\n" + "<small>%s</small>", messages_get("gtkQuit"), + messages_get("gtkDownloadsRunning")); + gtk_dialog_add_buttons(GTK_DIALOG(dialog), "gtk-cancel", + GTK_RESPONSE_CANCEL, "gtk-quit", + GTK_RESPONSE_CLOSE, NULL); + gint response = gtk_dialog_run(GTK_DIALOG(dialog)); gtk_widget_destroy(dialog); - + if (response == GTK_RESPONSE_CANCEL) return true; - } - + } + return false; } void nsgtk_download_show(GtkWindow *parent) { - gtk_window_set_transient_for(nsgtk_download_window, - nsgtk_download_parent); - gtk_window_present(nsgtk_download_window); + gtk_window_set_transient_for(nsgtk_download_window, + nsgtk_download_parent); + gtk_window_present(nsgtk_download_window); } -gboolean nsgtk_download_hide (GtkWidget *window) -{ - gtk_widget_hide(window); - return TRUE; +static gchar* nsgtk_download_dialog_show (const gchar *filename, const gchar *domain, + const gchar *size) +{ + enum { GTK_RESPONSE_DOWNLOAD, GTK_RESPONSE_SAVE_AS }; + GtkWidget *dialog; + char *destination = NULL; + gchar *message = g_strdup(messages_get("gtkStartDownload")); + gchar *info = g_strdup_printf(messages_get("gtkInfo"), filename, + domain, size); + + dialog = gtk_message_dialog_new_with_markup(nsgtk_download_parent, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, + "<span size=\"x-large\" weight=\"ultrabold\">%s</span>" + "\n\n<small>%s</small>", + message, info); + + gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_SAVE, + GTK_RESPONSE_DOWNLOAD, GTK_STOCK_CANCEL, + GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE_AS, + GTK_RESPONSE_SAVE_AS, NULL); + + gint result = gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + g_free(message); + g_free(info); + + switch (result) { + case GTK_RESPONSE_SAVE_AS: { + dialog = gtk_file_chooser_dialog_new + (messages_get("gtkSave"), + nsgtk_download_parent, + GTK_FILE_CHOOSER_ACTION_SAVE, + GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, + GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, + NULL); + gtk_file_chooser_set_current_name + (GTK_FILE_CHOOSER(dialog), filename); + gtk_file_chooser_set_current_folder + (GTK_FILE_CHOOSER(dialog), + nsoption_charp(downloads_directory)); + gtk_file_chooser_set_do_overwrite_confirmation + (GTK_FILE_CHOOSER(dialog), + nsoption_bool(request_overwrite)); + + gint result = gtk_dialog_run(GTK_DIALOG(dialog)); + if (result == GTK_RESPONSE_ACCEPT) + destination = gtk_file_chooser_get_filename + (GTK_FILE_CHOOSER(dialog)); + gtk_widget_destroy(dialog); + break; + } + case GTK_RESPONSE_DOWNLOAD: { + destination = malloc(strlen(nsoption_charp(downloads_directory)) + + strlen(filename) + SLEN("/") + 1); + if (destination == NULL) { + warn_user(messages_get("NoMemory"), 0); + break; + } + sprintf(destination, "%s/%s", + nsoption_charp(downloads_directory), filename); + /* Test if file already exists and display overwrite + * confirmation if needed */ + if (g_file_test(destination, G_FILE_TEST_EXISTS) && + nsoption_bool(request_overwrite)) { + message = g_strdup_printf(messages_get( + "gtkOverwrite"), filename); + info = g_strdup_printf(messages_get( + "gtkOverwriteInfo"), + nsoption_charp(downloads_directory)); + + dialog = gtk_message_dialog_new_with_markup( + nsgtk_download_parent, + GTK_DIALOG_DESTROY_WITH_PARENT, + GTK_MESSAGE_QUESTION, + GTK_BUTTONS_CANCEL, + "<b>%s</b>",message); + gtk_message_dialog_format_secondary_markup( + GTK_MESSAGE_DIALOG(dialog), + "%s", info); + + GtkWidget *button = gtk_dialog_add_button( + GTK_DIALOG(dialog), + "_Replace", + GTK_RESPONSE_DOWNLOAD); + gtk_button_set_image(GTK_BUTTON(button), + gtk_image_new_from_stock( + "gtk-save", + GTK_ICON_SIZE_BUTTON)); + + gint result = gtk_dialog_run(GTK_DIALOG( + dialog)); + if (result == GTK_RESPONSE_CANCEL) + destination = NULL; + + gtk_widget_destroy(dialog); + g_free(message); + g_free(info); + } + break; + } + } + return destination; +} + + +static gboolean nsgtk_download_handle_error (GError *error) +{ + if (error != NULL) { + GtkWidget*dialog; + gchar *message = g_strdup_printf(messages_get("gtkFileError"), + error->message); + + dialog = gtk_message_dialog_new_with_markup + (nsgtk_download_parent, + GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, + GTK_BUTTONS_OK, + "<big><b>%s</b></big>\n\n" + "<small>%s</small>", messages_get("gtkFailed"), + message); + + gtk_dialog_run(GTK_DIALOG(dialog)); + gtk_widget_destroy(dialog); + return TRUE; + } + return FALSE; +} + +static void nsgtk_download_store_create_item (struct gui_download_window *dl) +{ + nsgtk_download_store_update_item(dl); + /* The iter has already been updated to this row */ + gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, + NSGTK_DOWNLOAD, dl, -1); } struct gui_download_window *gui_download_window_create(download_context *ctx, - struct gui_window *gui) + struct gui_window *gui) { const char *url = download_context_get_url(ctx); unsigned long total_size = download_context_get_total_length(ctx); gchar *domain; gchar *destination; gboolean unknown_size = total_size == 0; - const char *size = (total_size == 0 ? - messages_get("gtkUnknownSize") : - human_friendly_bytesize(total_size)); - - nsgtk_download_parent = - nsgtk_scaffolding_window(nsgtk_get_scaffold(gui)); + const char *size = (total_size == 0 ? + messages_get("gtkUnknownSize") : + human_friendly_bytesize(total_size)); + + nsgtk_download_parent = + nsgtk_scaffolding_window(nsgtk_get_scaffold(gui)); struct gui_download_window *download = malloc(sizeof *download); if (download == NULL) return NULL; - + if (url_host(url, &domain) != URL_FUNC_OK) { domain = g_strdup(messages_get("gtkUnknownHost")); if (domain == NULL) { @@ -273,24 +738,24 @@ struct gui_download_window *gui_download_window_create(download_context *ctx, return NULL; } } - + destination = nsgtk_download_dialog_show( - download_context_get_filename(ctx), domain, size); + download_context_get_filename(ctx), domain, size); if (destination == NULL) { g_free(domain); free(download); return NULL; } - - /* Add the new row and store the reference to it (which keeps track of + + /* Add the new row and store the reference to it (which keeps track of * the tree changes) */ gtk_list_store_prepend(nsgtk_download_store, &nsgtk_download_iter); download->row = gtk_tree_row_reference_new( + GTK_TREE_MODEL(nsgtk_download_store), + gtk_tree_model_get_path( GTK_TREE_MODEL(nsgtk_download_store), - gtk_tree_model_get_path( - GTK_TREE_MODEL(nsgtk_download_store), - &nsgtk_download_iter)); - + &nsgtk_download_iter)); + download->ctx = ctx; download->name = g_string_new(download_context_get_filename(ctx)); download->time_left = g_string_new(""); @@ -311,44 +776,44 @@ struct gui_download_window *gui_download_window_create(download_context *ctx, free(download); return NULL; } - g_io_channel_set_encoding(download->write, NULL, &download->error); + g_io_channel_set_encoding(download->write, NULL, &download->error); nsgtk_download_change_sensitivity(download, NSGTK_DOWNLOAD_CANCEL); - + nsgtk_download_store_create_item(download); nsgtk_download_show(nsgtk_download_parent); - - if (unknown_size) + + if (unknown_size) nsgtk_download_change_status(download, NSGTK_DOWNLOAD_WORKING); - + if (nsgtk_downloads_num_active == 0) { - g_timeout_add(UPDATE_RATE, - (GSourceFunc) nsgtk_download_update, FALSE); + g_timeout_add(UPDATE_RATE, + (GSourceFunc) nsgtk_download_update, FALSE); } nsgtk_downloads_list = g_list_prepend(nsgtk_downloads_list, download); - - return download; + + return download; } -nserror gui_download_window_data(struct gui_download_window *dw, - const char *data, unsigned int size) +nserror gui_download_window_data(struct gui_download_window *dw, + const char *data, unsigned int size) { g_io_channel_write_chars(dw->write, data, size, NULL, &dw->error); if (dw->error != NULL) { dw->speed = 0; dw->time_remaining = -1; - + nsgtk_download_change_sensitivity(dw, NSGTK_DOWNLOAD_CLEAR); nsgtk_download_change_status(dw, NSGTK_DOWNLOAD_ERROR); - + nsgtk_download_update(TRUE); - + gtk_window_present(nsgtk_download_window); return NSERROR_SAVE_FAILED; - } + } dw->size_downloaded += size; return NSERROR_OK; @@ -356,7 +821,7 @@ nserror gui_download_window_data(struct gui_download_window *dw, void gui_download_window_error(struct gui_download_window *dw, - const char *error_msg) + const char *error_msg) { } @@ -365,14 +830,14 @@ void gui_download_window_done(struct gui_download_window *dw) { g_io_channel_shutdown(dw->write, TRUE, &dw->error); g_io_channel_unref(dw->write); - + dw->speed = 0; dw->time_remaining = -1; dw->progress = 100; dw->size_total = dw->size_downloaded; nsgtk_download_change_sensitivity(dw, NSGTK_DOWNLOAD_CLEAR); nsgtk_download_change_status(dw, NSGTK_DOWNLOAD_COMPLETE); - + if (nsoption_bool(downloads_clear)) nsgtk_download_store_clear_item(dw); else @@ -380,485 +845,17 @@ void gui_download_window_done(struct gui_download_window *dw) } -GtkTreeView* nsgtk_download_tree_view_new(GladeXML *gladeFile) -{ - GtkTreeView *treeview = GTK_TREE_VIEW(glade_xml_get_widget(gladeFile, - "treeDownloads")); - GtkCellRenderer *renderer; - - /* Progress column */ - renderer = gtk_cell_renderer_progress_new(); - gtk_tree_view_insert_column_with_attributes (treeview, -1, - messages_get("gtkProgress"), renderer, "value", - NSGTK_DOWNLOAD_PROGRESS, "pulse", NSGTK_DOWNLOAD_PULSE, - "text", NSGTK_DOWNLOAD_STATUS, NULL); - - /* Information column */ - renderer = gtk_cell_renderer_text_new(); - g_object_set(G_OBJECT(renderer), "wrap-mode", PANGO_WRAP_WORD_CHAR, - "wrap-width", 300, NULL); - gtk_tree_view_insert_column_with_attributes (treeview, -1, - messages_get("gtkDetails"), renderer, "text", - NSGTK_DOWNLOAD_INFO, NULL); - gtk_tree_view_column_set_expand(gtk_tree_view_get_column(treeview, - NSGTK_DOWNLOAD_INFO), TRUE); - - /* Time remaining column */ - renderer = gtk_cell_renderer_text_new(); - gtk_tree_view_insert_column_with_attributes (treeview, -1, - messages_get("gtkRemaining"), renderer, "text", - NSGTK_DOWNLOAD_REMAINING, NULL); - - /* Speed column */ - renderer = gtk_cell_renderer_text_new(); - gtk_tree_view_insert_column_with_attributes (treeview, -1, - messages_get("gtkSpeed"), renderer, "text", - NSGTK_DOWNLOAD_SPEED, NULL); - - return treeview; -} - -void nsgtk_download_tree_view_row_activated(GtkTreeView *tree, - GtkTreePath *path, GtkTreeViewColumn *column, gpointer data) -{ - GtkTreeModel *model; - GtkTreeIter iter; - - model = gtk_tree_view_get_model(tree); - - if (gtk_tree_model_get_iter(model, &iter, path)) { - /* TODO: This will be a context action (pause, start, clear) */ - nsgtk_download_do(nsgtk_download_store_clear_item); - } -} - -gint nsgtk_download_sort (GtkTreeModel *model, GtkTreeIter *a, GtkTreeIter *b, - gpointer userdata) -{ - struct gui_download_window *dl1, *dl2; - - gtk_tree_model_get(model, a, NSGTK_DOWNLOAD, &dl1, -1); - gtk_tree_model_get(model, b, NSGTK_DOWNLOAD, &dl2, -1); - - return dl1->status - dl2->status; -} - -void nsgtk_download_do(nsgtk_download_selection_action action) -{ - GList *rows, *dls = NULL; - GtkTreeModel *model = GTK_TREE_MODEL(nsgtk_download_store); - gboolean selection_exists = gtk_tree_selection_count_selected_rows( - nsgtk_download_selection); - - if (selection_exists) { - rows = gtk_tree_selection_get_selected_rows( - nsgtk_download_selection, &model); - while (rows != NULL) { - struct gui_download_window *dl; - gtk_tree_model_get_iter(GTK_TREE_MODEL( - nsgtk_download_store), - &nsgtk_download_iter, - (GtkTreePath*)rows->data); - gtk_tree_model_get(GTK_TREE_MODEL(nsgtk_download_store), - &nsgtk_download_iter, NSGTK_DOWNLOAD, - &dl, -1); - dls = g_list_prepend(dls, dl); - - rows = rows->next; - } - g_list_foreach(rows, (GFunc)gtk_tree_path_free, NULL); - g_list_foreach(rows, (GFunc)g_free, NULL); - g_list_free(rows); - } else - dls = g_list_copy(nsgtk_downloads_list); - - g_list_foreach(dls, (GFunc)action, NULL); - g_list_free(dls); -} - -gboolean nsgtk_download_update(gboolean force_update) -{ - /* Be sure we need to update */ - if (!nsgtk_widget_get_visible(GTK_WIDGET(nsgtk_download_window))) - return TRUE; - - GList *list; - gchar *text; - gboolean update, pulse_mode = FALSE; - gint downloaded = 0, total = 0, dls = 0; - gfloat percent, elapsed = g_timer_elapsed(nsgtk_downloads_timer, NULL); - nsgtk_downloads_num_active = 0; - - for (list = nsgtk_downloads_list; list != NULL; list = list->next) { - struct gui_download_window *dl = list->data; - update = force_update; - - switch (dl->status) { - case NSGTK_DOWNLOAD_WORKING: - pulse_mode = TRUE; - - case NSGTK_DOWNLOAD_NONE: - dl->speed = dl->size_downloaded / - (elapsed - dl->start_time); - if (dl->status == NSGTK_DOWNLOAD_NONE) { - dl->time_remaining = (dl->size_total - - dl->size_downloaded)/ - dl->speed; - dl->progress = (gfloat) - dl->size_downloaded / - dl->size_total * 100; - } else - dl->progress++; - - nsgtk_downloads_num_active++; - update = TRUE; - - case NSGTK_DOWNLOAD_COMPLETE: - downloaded += dl->size_downloaded; - total += dl->size_total; - dls++; - - default: - ;//Do nothing - - } - if (update) - nsgtk_download_store_update_item(dl); - } - - if (pulse_mode) { - text = g_strdup_printf( - messages_get(nsgtk_downloads_num_active > 1 ? - "gtkProgressBarPulse" : - "gtkProgressBarPulseSingle"), - nsgtk_downloads_num_active); - gtk_progress_bar_pulse(nsgtk_download_progress_bar); - gtk_progress_bar_set_text(nsgtk_download_progress_bar, text); - } else { - percent = total != 0 ? (gfloat)downloaded / total : 0; - text = g_strdup_printf(messages_get("gtkProgressBar"), - floor(percent*100), dls); - gtk_progress_bar_set_fraction(nsgtk_download_progress_bar, - percent); - gtk_progress_bar_set_text(nsgtk_download_progress_bar, text); - } - - g_free(text); - - if (nsgtk_downloads_num_active == 0) - return FALSE; /* Returning FALSE here cancels the g_timeout */ - else - return TRUE; -} - -void nsgtk_download_store_update_item (struct gui_download_window *dl) -{ - gchar *info = nsgtk_download_info_to_string(dl); - char *human = human_friendly_bytesize(dl->speed); - char speed[strlen(human) + SLEN("/s") + 1]; - sprintf(speed, "%s/s", human); - gchar *time = nsgtk_download_time_to_string(dl->time_remaining); - gboolean pulse = dl->status == NSGTK_DOWNLOAD_WORKING; - - /* Updates iter (which is needed to set and get data) with the dl row */ - gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), - &nsgtk_download_iter, - gtk_tree_row_reference_get_path(dl->row)); - - gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, - NSGTK_DOWNLOAD_PULSE, pulse ? dl->progress : -1, - NSGTK_DOWNLOAD_PROGRESS, pulse ? 0 : dl->progress, - NSGTK_DOWNLOAD_INFO, info, - NSGTK_DOWNLOAD_SPEED, dl->speed == 0 ? "-" : speed, - NSGTK_DOWNLOAD_REMAINING, time, - NSGTK_DOWNLOAD, dl, - -1); - - g_free(info); - g_free(time); -} - -void nsgtk_download_store_create_item (struct gui_download_window *dl) -{ - nsgtk_download_store_update_item(dl); - /* The iter has already been updated to this row */ - gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, - NSGTK_DOWNLOAD, dl, -1); -} -void nsgtk_download_store_clear_item (struct gui_download_window *dl) -{ - if (dl->sensitivity & NSGTK_DOWNLOAD_CLEAR) { - nsgtk_downloads_list = g_list_remove(nsgtk_downloads_list, dl); - - gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), - &nsgtk_download_iter, - gtk_tree_row_reference_get_path(dl->row)); - gtk_list_store_remove(nsgtk_download_store, - &nsgtk_download_iter); - download_context_destroy(dl->ctx); - g_string_free(dl->name, TRUE); - g_string_free(dl->time_left, TRUE); - g_free(dl); - - nsgtk_download_sensitivity_evaluate(nsgtk_download_selection); - nsgtk_download_update(FALSE); - } -} -void nsgtk_download_store_cancel_item (struct gui_download_window *dl) -{ - if (dl->sensitivity & NSGTK_DOWNLOAD_CANCEL) { - dl->speed = 0; - dl->size_downloaded = 0; - dl->progress = 0; - dl->time_remaining = -1; - nsgtk_download_change_sensitivity(dl, NSGTK_DOWNLOAD_CLEAR); - nsgtk_download_change_status(dl, NSGTK_DOWNLOAD_CANCELED); - - download_context_abort(dl->ctx); - - g_unlink(download_context_get_filename(dl->ctx)); - - nsgtk_download_update(TRUE); - } -} -void nsgtk_download_sensitivity_evaluate (GtkTreeSelection *selection) -{ - GtkTreeIter iter; - GList *rows; - gboolean selected = gtk_tree_selection_count_selected_rows(selection); - GtkTreeModel *model = GTK_TREE_MODEL(nsgtk_download_store); - nsgtk_download_actions sensitivity = 0; - struct gui_download_window *dl; - - if (selected) { - rows = gtk_tree_selection_get_selected_rows(selection, &model); - while (rows != NULL) { - gtk_tree_model_get_iter(model, &iter, - (GtkTreePath*)rows->data); - gtk_tree_model_get(model, &iter, NSGTK_DOWNLOAD, - &dl, -1); - sensitivity |= dl->sensitivity; - rows = rows->next; - } - } else { - rows = nsgtk_downloads_list; - while (rows != NULL) { - dl = rows->data; - sensitivity |= (dl->sensitivity & NSGTK_DOWNLOAD_CLEAR); - rows = rows->next; - } - } - - - nsgtk_download_sensitivity_update_buttons(sensitivity); -} -void nsgtk_download_sensitivity_update_buttons( - nsgtk_download_actions sensitivity) -{ - /* Glade seems to pack the buttons in an arbitrary order */ - enum { PAUSE_BUTTON, CLEAR_BUTTON, CANCEL_BUTTON, RESUME_BUTTON }; - - gtk_widget_set_sensitive(g_list_nth_data(nsgtk_download_buttons, - PAUSE_BUTTON), sensitivity & NSGTK_DOWNLOAD_PAUSE); - gtk_widget_set_sensitive(g_list_nth_data(nsgtk_download_buttons, - CLEAR_BUTTON), sensitivity & NSGTK_DOWNLOAD_CLEAR); - gtk_widget_set_sensitive(g_list_nth_data(nsgtk_download_buttons, - CANCEL_BUTTON), sensitivity & NSGTK_DOWNLOAD_CANCEL); - gtk_widget_set_sensitive(g_list_nth_data(nsgtk_download_buttons, - RESUME_BUTTON), sensitivity & NSGTK_DOWNLOAD_RESUME); -} -void nsgtk_download_change_sensitivity(struct gui_download_window *dl, - nsgtk_download_actions sensitivity) -{ - dl->sensitivity = sensitivity; - nsgtk_download_sensitivity_evaluate(nsgtk_download_selection); -} -void nsgtk_download_change_status ( - struct gui_download_window *dl, nsgtk_download_status status) -{ - dl->status = status; - if (status != NSGTK_DOWNLOAD_NONE) { - gtk_tree_model_get_iter(GTK_TREE_MODEL(nsgtk_download_store), - &nsgtk_download_iter, - gtk_tree_row_reference_get_path(dl->row)); - - gtk_list_store_set(nsgtk_download_store, &nsgtk_download_iter, - NSGTK_DOWNLOAD_STATUS, - messages_get(status_messages[status]), -1); - } -} - -gchar* nsgtk_download_dialog_show (const gchar *filename, const gchar *domain, - const gchar *size) -{ - enum { GTK_RESPONSE_DOWNLOAD, GTK_RESPONSE_SAVE_AS }; - GtkWidget *dialog; - char *destination = NULL; - gchar *message = g_strdup(messages_get("gtkStartDownload")); - gchar *info = g_strdup_printf(messages_get("gtkInfo"), filename, - domain, size); - - dialog = gtk_message_dialog_new_with_markup(nsgtk_download_parent, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, GTK_BUTTONS_NONE, - "<span size=\"x-large\" weight=\"ultrabold\">%s</span>" - "\n\n<small>%s</small>", - message, info); - - gtk_dialog_add_buttons(GTK_DIALOG(dialog), GTK_STOCK_SAVE, - GTK_RESPONSE_DOWNLOAD, GTK_STOCK_CANCEL, - GTK_RESPONSE_CANCEL, GTK_STOCK_SAVE_AS, - GTK_RESPONSE_SAVE_AS, NULL); - - gint result = gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); - g_free(message); - g_free(info); - - switch (result) { - case GTK_RESPONSE_SAVE_AS: { - dialog = gtk_file_chooser_dialog_new - (messages_get("gtkSave"), - nsgtk_download_parent, - GTK_FILE_CHOOSER_ACTION_SAVE, - GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, - GTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, - NULL); - gtk_file_chooser_set_current_name - (GTK_FILE_CHOOSER(dialog), filename); - gtk_file_chooser_set_current_folder - (GTK_FILE_CHOOSER(dialog), - nsoption_charp(downloads_directory)); - gtk_file_chooser_set_do_overwrite_confirmation - (GTK_FILE_CHOOSER(dialog), - nsoption_bool(request_overwrite)); - - gint result = gtk_dialog_run(GTK_DIALOG(dialog)); - if (result == GTK_RESPONSE_ACCEPT) - destination = gtk_file_chooser_get_filename - (GTK_FILE_CHOOSER(dialog)); - gtk_widget_destroy(dialog); - break; - } - case GTK_RESPONSE_DOWNLOAD: { - destination = malloc(strlen(nsoption_charp(downloads_directory)) - + strlen(filename) + SLEN("/") + 1); - if (destination == NULL) { - warn_user(messages_get("NoMemory"), 0); - break; - } - sprintf(destination, "%s/%s", - nsoption_charp(downloads_directory), filename); - /* Test if file already exists and display overwrite - * confirmation if needed */ - if (g_file_test(destination, G_FILE_TEST_EXISTS) && - nsoption_bool(request_overwrite)) { - message = g_strdup_printf(messages_get( - "gtkOverwrite"), filename); - info = g_strdup_printf(messages_get( - "gtkOverwriteInfo"), - nsoption_charp(downloads_directory)); - - dialog = gtk_message_dialog_new_with_markup( - nsgtk_download_parent, - GTK_DIALOG_DESTROY_WITH_PARENT, - GTK_MESSAGE_QUESTION, - GTK_BUTTONS_CANCEL, - "<b>%s</b>",message); - gtk_message_dialog_format_secondary_markup( - GTK_MESSAGE_DIALOG(dialog), - "%s", info); - - GtkWidget *button = gtk_dialog_add_button( - GTK_DIALOG(dialog), - "_Replace", - GTK_RESPONSE_DOWNLOAD); - gtk_button_set_image(GTK_BUTTON(button), - gtk_image_new_from_stock( - "gtk-save", - GTK_ICON_SIZE_BUTTON)); - - gint result = gtk_dialog_run(GTK_DIALOG( - dialog)); - if (result == GTK_RESPONSE_CANCEL) - destination = NULL; - - gtk_widget_destroy(dialog); - g_free(message); - g_free(info); - } - break; - } - } - return destination; -} -gchar* nsgtk_download_info_to_string (struct gui_download_window *dl) -{ - gchar *size_info = g_strdup_printf(messages_get("gtkSizeInfo"), - human_friendly_bytesize(dl->size_downloaded), - dl->size_total == 0 ? messages_get("gtkUnknownSize") : - human_friendly_bytesize(dl->size_total)); - - gchar *r; - if (dl->status != NSGTK_DOWNLOAD_ERROR) - r = g_strdup_printf("%s\n%s", dl->name->str, size_info); - else - r = g_strdup_printf("%s\n%s", dl->name->str, - dl->error->message); - - g_free(size_info); - return r; -} -gchar* nsgtk_download_time_to_string (gint seconds) -{ - gint hours, minutes; - - if (seconds < 0) - return g_strdup("-"); - - hours = seconds / 3600; - seconds -= hours * 3600; - minutes = seconds / 60; - seconds -= minutes * 60; - - if (hours > 0) - return g_strdup_printf("%u:%02u:%02u", hours, minutes, - seconds); - else - return g_strdup_printf("%u:%02u", minutes, seconds); -} -gboolean nsgtk_download_handle_error (GError *error) -{ - if (error != NULL) { - GtkWidget*dialog; - gchar *message = g_strdup_printf(messages_get("gtkFileError"), - error->message); - - dialog = gtk_message_dialog_new_with_markup - (nsgtk_download_parent, - GTK_DIALOG_MODAL, GTK_MESSAGE_ERROR, - GTK_BUTTONS_OK, - "<big><b>%s</b></big>\n\n" - "<small>%s</small>", messages_get("gtkFailed"), - message); - - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); - return TRUE; - } - return FALSE; -} @@ -36,7 +36,6 @@ #include <curl/curl.h> #include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> -#include <glade/glade.h> #include <glib.h> #include <glib/gi18n.h> @@ -58,6 +57,7 @@ #include "desktop/textinput.h" #include "desktop/tree.h" #include "css/utils.h" +#include "gtk/compat.h" #include "gtk/dialogs/options.h" #include "gtk/completion.h" #include "gtk/cookies.h" @@ -169,14 +169,20 @@ static bool nsgtk_throbber_init(char **respath, int framec) #define NEW_GLADE_ERROR_SIZE 128 static char * -nsgtk_new_glade(char **respath, const char *name, GladeXML **pglade) +nsgtk_new_ui(char **respath, const char *name, GtkBuilder **pglade) { - GladeXML *newglade; + GtkBuilder *builder; + GError* error = NULL; char *filepath; char errorstr[NEW_GLADE_ERROR_SIZE]; char resname[PATH_MAX]; +#if GTK_CHECK_VERSION(3,0,0) + int gtkv = 3; +#else + int gtkv = 2; +#endif - snprintf(resname, PATH_MAX, "%s.glade", name); + snprintf(resname, PATH_MAX, "%s.gtk%d.ui", name, gtkv); filepath = filepath_find(respath, resname); if (filepath == NULL) { @@ -185,19 +191,22 @@ nsgtk_new_glade(char **respath, const char *name, GladeXML **pglade) die(errorstr); } - newglade = glade_xml_new(filepath, NULL, NULL); - if (newglade == NULL) { + builder = gtk_builder_new(); + if (!gtk_builder_add_from_file(builder, filepath, &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); snprintf(errorstr, NEW_GLADE_ERROR_SIZE, "Unable to load glade %s window definitions.\n", name); die(errorstr); } - glade_xml_signal_autoconnect(newglade); - LOG(("Using '%s' as %s glade template file", filepath, name)); + gtk_builder_connect_signals(builder, NULL); + + LOG(("Using '%s' as %s ui template file", filepath, name)); if (pglade != NULL) { - *pglade = newglade; + *pglade = builder; } return filepath; @@ -209,29 +218,28 @@ nsgtk_new_glade(char **respath, const char *name, GladeXML **pglade) static void nsgtk_init_glade(char **respath) { - GladeXML *gladeWarning; - - glade_init(); + GtkBuilder *gladeWarning; glade_file_location = calloc(1, sizeof(struct glade_file_location_s)); if (glade_file_location == NULL) { die("Unable to allocate glade file locations"); } - glade_file_location->netsurf = nsgtk_new_glade(respath, "netsurf", NULL); - glade_file_location->password = nsgtk_new_glade(respath, "password", NULL); - glade_file_location->login = nsgtk_new_glade(respath, "login", NULL); - glade_file_location->ssl = nsgtk_new_glade(respath, "ssl", NULL); - glade_file_location->toolbar = nsgtk_new_glade(respath, "toolbar", NULL); - glade_file_location->downloads = nsgtk_new_glade(respath, "downloads", NULL); - glade_file_location->history = nsgtk_new_glade(respath, "history", NULL); - glade_file_location->options = nsgtk_new_glade(respath, "options", NULL); - glade_file_location->hotlist = nsgtk_new_glade(respath, "hotlist", NULL); - glade_file_location->cookies = nsgtk_new_glade(respath, "cookies", NULL); - - glade_file_location->warning = nsgtk_new_glade(respath, "warning", &gladeWarning); - nsgtk_warning_window = GTK_WINDOW(glade_xml_get_widget(gladeWarning, "wndWarning")); - widWarning = glade_xml_get_widget(gladeWarning, "labelWarning"); + glade_file_location->netsurf = nsgtk_new_ui(respath, "netsurf", NULL); + glade_file_location->tabcontents = nsgtk_new_ui(respath, "tabcontents", NULL); + glade_file_location->password = nsgtk_new_ui(respath, "password", NULL); + glade_file_location->login = nsgtk_new_ui(respath, "login", NULL); + glade_file_location->ssl = nsgtk_new_ui(respath, "ssl", NULL); + glade_file_location->toolbar = nsgtk_new_ui(respath, "toolbar", NULL); + glade_file_location->downloads = nsgtk_new_ui(respath, "downloads", NULL); + glade_file_location->history = nsgtk_new_ui(respath, "history", NULL); + glade_file_location->options = nsgtk_new_ui(respath, "options", NULL); + glade_file_location->hotlist = nsgtk_new_ui(respath, "hotlist", NULL); + glade_file_location->cookies = nsgtk_new_ui(respath, "cookies", NULL); + + glade_file_location->warning = nsgtk_new_ui(respath, "warning", &gladeWarning); + nsgtk_warning_window = GTK_WINDOW(gtk_builder_get_object(gladeWarning, "wndWarning")); + widWarning = GTK_WIDGET(gtk_builder_get_object(gladeWarning, "labelWarning")); } static void check_options(char **respath) @@ -701,22 +709,26 @@ void gui_cert_verify(const char *url, const struct ssl_cert_info *certs, { static struct nsgtk_treeview *ssl_window; struct sslcert_session_data *data; - GladeXML *x = glade_xml_new(glade_file_location->ssl, NULL, NULL); GtkButton *accept, *reject; void **session = calloc(sizeof(void *), 3); GtkWindow *window; GtkScrolledWindow *scrolled; GtkDrawingArea *drawing_area; + GError* error = NULL; + GtkBuilder* builder; + + builder = gtk_builder_new (); + if (!gtk_builder_add_from_file(builder, glade_file_location->ssl, &error)) { + g_warning("Couldn't load builder file: %s", error->message); + g_error_free(error); + return; + } data = sslcert_create_session_data(num, url, cb, cbpw); - window = GTK_WINDOW( - glade_xml_get_widget(x,"wndSSLProblem")); - scrolled = GTK_SCROLLED_WINDOW( - glade_xml_get_widget(x,"SSLScrolled")); - drawing_area = GTK_DRAWING_AREA( - glade_xml_get_widget(x,"SSLDrawingArea")); - + window = GTK_WINDOW(gtk_builder_get_object(builder, "wndSSLProblem")); + scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(builder, "SSLScrolled")); + drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(builder, "SSLDrawingArea")); ssl_window = nsgtk_treeview_create(sslcert_get_tree_flags(), window, scrolled, drawing_area); @@ -726,10 +738,10 @@ void gui_cert_verify(const char *url, const struct ssl_cert_info *certs, sslcert_load_tree(nsgtk_treeview_get_tree(ssl_window), certs, data); - accept = GTK_BUTTON(glade_xml_get_widget(x, "sslaccept")); - reject = GTK_BUTTON(glade_xml_get_widget(x, "sslreject")); + accept = GTK_BUTTON(gtk_builder_get_object(builder, "sslaccept")); + reject = GTK_BUTTON(gtk_builder_get_object(builder, "sslreject")); - session[0] = x; + session[0] = builder; session[1] = ssl_window; session[2] = data; @@ -747,7 +759,7 @@ void gui_cert_verify(const char *url, const struct ssl_cert_info *certs, void nsgtk_ssl_accept(GtkButton *w, gpointer data) { void **session = data; - GladeXML *x = session[0]; + GtkBuilder *x = session[0]; struct nsgtk_treeview *wnd = session[1]; struct sslcert_session_data *ssl_data = session[2]; @@ -761,7 +773,7 @@ void nsgtk_ssl_accept(GtkButton *w, gpointer data) void nsgtk_ssl_reject(GtkWidget *w, gpointer data) { void **session = data; - GladeXML *x = session[0]; + GtkBuilder *x = session[0]; struct nsgtk_treeview *wnd = session[1]; struct sslcert_session_data *ssl_data = session[2]; @@ -970,38 +982,38 @@ uint32_t gtk_gui_gdkkey_to_nskey(GdkEventKey *key) */ switch (key->keyval) { - case GDK_Tab: + case GDK_KEY(Tab): return KEY_TAB; - case GDK_BackSpace: + case GDK_KEY(BackSpace): if (key->state & GDK_SHIFT_MASK) return KEY_DELETE_LINE_START; else return KEY_DELETE_LEFT; - case GDK_Delete: + case GDK_KEY(Delete): if (key->state & GDK_SHIFT_MASK) return KEY_DELETE_LINE_END; else return KEY_DELETE_RIGHT; - case GDK_Linefeed: return 13; - case GDK_Return: return 10; - case GDK_Left: return KEY_LEFT; - case GDK_Right: return KEY_RIGHT; - case GDK_Up: return KEY_UP; - case GDK_Down: return KEY_DOWN; - case GDK_Home: + case GDK_KEY(Linefeed): return 13; + case GDK_KEY(Return): return 10; + case GDK_KEY(Left): return KEY_LEFT; + case GDK_KEY(Right): return KEY_RIGHT; + case GDK_KEY(Up): return KEY_UP; + case GDK_KEY(Down): return KEY_DOWN; + case GDK_KEY(Home): if (key->state & GDK_CONTROL_MASK) return KEY_TEXT_START; else return KEY_LINE_START; - case GDK_End: + case GDK_KEY(End): if (key->state & GDK_CONTROL_MASK) return KEY_TEXT_END; else return KEY_LINE_END; - case GDK_Page_Up: + case GDK_KEY(Page_Up): return KEY_PAGE_UP; - case GDK_Page_Down: + case GDK_KEY(Page_Down): return KEY_PAGE_DOWN; case 'a': if (key->state & GDK_CONTROL_MASK) @@ -1011,24 +1023,24 @@ uint32_t gtk_gui_gdkkey_to_nskey(GdkEventKey *key) if (key->state & GDK_CONTROL_MASK) return KEY_CLEAR_SELECTION; return gdk_keyval_to_unicode(key->keyval); - case GDK_Escape: + case GDK_KEY(Escape): return KEY_ESCAPE; /* Modifiers - do nothing for now */ - case GDK_Shift_L: - case GDK_Shift_R: - case GDK_Control_L: - case GDK_Control_R: - case GDK_Caps_Lock: - case GDK_Shift_Lock: - case GDK_Meta_L: - case GDK_Meta_R: - case GDK_Alt_L: - case GDK_Alt_R: - case GDK_Super_L: - case GDK_Super_R: - case GDK_Hyper_L: - case GDK_Hyper_R: + case GDK_KEY(Shift_L): + case GDK_KEY(Shift_R): + case GDK_KEY(Control_L): + case GDK_KEY(Control_R): + case GDK_KEY(Caps_Lock): + case GDK_KEY(Shift_Lock): + case GDK_KEY(Meta_L): + case GDK_KEY(Meta_R): + case GDK_KEY(Alt_L): + case GDK_KEY(Alt_R): + case GDK_KEY(Super_L): + case GDK_KEY(Super_R): + case GDK_KEY(Hyper_L): + case GDK_KEY(Hyper_R): return 0; default: @@ -29,10 +29,11 @@ #include <inttypes.h> #include <stdbool.h> #include <gtk/gtk.h> -#include <glade/glade.h> +//#include <glade/glade.h> struct glade_file_location_s { char *netsurf; + char *tabcontents; char *password; char *warning; char *login; diff --git a/gtk/history.c b/gtk/history.c index 34c76cd7d..e7b083671 100644 --- a/gtk/history.c +++ b/gtk/history.c @@ -85,7 +85,7 @@ static struct menu_events menu_events[] = { }; static struct nsgtk_treeview *global_history_window; -static GladeXML *gladeFile; +static GtkBuilder *gladeFile; GtkWindow *wndHistory; @@ -95,31 +95,33 @@ bool nsgtk_history_init(const char *glade_file_location) GtkWindow *window; GtkScrolledWindow *scrolled; GtkDrawingArea *drawing_area; - - gladeFile = glade_xml_new(glade_file_location, NULL, NULL); - if (gladeFile == NULL) + GError* error = NULL; + + gladeFile = gtk_builder_new(); + if (!gtk_builder_add_from_file(gladeFile, glade_file_location, &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); return false; + } - glade_xml_signal_autoconnect(gladeFile); + gtk_builder_connect_signals(gladeFile, NULL); - wndHistory = GTK_WINDOW(glade_xml_get_widget(gladeFile, "wndHistory")); + wndHistory = GTK_WINDOW(gtk_builder_get_object(gladeFile, "wndHistory")); window = wndHistory; - scrolled = GTK_SCROLLED_WINDOW(glade_xml_get_widget(gladeFile, - "globalHistoryScrolled")); + scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(gladeFile, "globalHistoryScrolled")); - drawing_area = GTK_DRAWING_AREA(glade_xml_get_widget(gladeFile, - "globalHistoryDrawingArea")); + drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(gladeFile, "globalHistoryDrawingArea")); global_history_window = nsgtk_treeview_create( - history_global_get_tree_flags(), window, scrolled, - drawing_area); + history_global_get_tree_flags(), window, scrolled, + drawing_area); if (global_history_window == NULL) return false; -#define CONNECT(obj, sig, callback, ptr) \ +#define CONNECT(obj, sig, callback, ptr) \ g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) CONNECT(window, "delete_event", gtk_widget_hide_on_delete, NULL); @@ -141,12 +143,15 @@ bool nsgtk_history_init(const char *glade_file_location) void nsgtk_history_init_menu(void) { struct menu_events *event = menu_events; - - while (event->widget != NULL) - { - GtkWidget *w = glade_xml_get_widget(gladeFile, event->widget); - g_signal_connect(G_OBJECT(w), "activate", event->handler, - global_history_window); + GtkWidget *w; + + while (event->widget != NULL) { + w = GTK_WIDGET(gtk_builder_get_object(gladeFile, event->widget)); + if (w == NULL) { + LOG(("Unable to connect menu widget ""%s""", event->widget)); + } else { + g_signal_connect(G_OBJECT(w), "activate", event->handler, global_history_window); + } event++; } } diff --git a/gtk/hotlist.c b/gtk/hotlist.c index dc95866db..d7b5b9e8f 100644 --- a/gtk/hotlist.c +++ b/gtk/hotlist.c @@ -90,7 +90,7 @@ static struct menu_events menu_events[] = { }; static struct nsgtk_treeview *hotlist_window; -static GladeXML *gladeFile; +static GtkBuilder *gladeFile; GtkWindow *wndHotlist; @@ -101,19 +101,23 @@ bool nsgtk_hotlist_init(const char *glade_file_location) GtkScrolledWindow *scrolled; GtkDrawingArea *drawing_area; - gladeFile = glade_xml_new(glade_file_location, NULL, NULL); - if (gladeFile == NULL) + GError* error = NULL; + gladeFile = gtk_builder_new(); + if (!gtk_builder_add_from_file(gladeFile, glade_file_location, &error)) { + g_warning("Couldn't load builder file: %s", error->message); + g_error_free(error); return false; + } - glade_xml_signal_autoconnect(gladeFile); + gtk_builder_connect_signals(gladeFile, NULL); - wndHotlist = GTK_WINDOW(glade_xml_get_widget(gladeFile, "wndHotlist")); + wndHotlist = GTK_WINDOW(gtk_builder_get_object(gladeFile, "wndHotlist")); window = wndHotlist; - scrolled = GTK_SCROLLED_WINDOW(glade_xml_get_widget(gladeFile, + scrolled = GTK_SCROLLED_WINDOW(gtk_builder_get_object(gladeFile, "hotlistScrolled")); - drawing_area = GTK_DRAWING_AREA(glade_xml_get_widget(gladeFile, + drawing_area = GTK_DRAWING_AREA(gtk_builder_get_object(gladeFile, "hotlistDrawingArea")); @@ -145,12 +149,14 @@ bool nsgtk_hotlist_init(const char *glade_file_location) void nsgtk_hotlist_init_menu(void) { struct menu_events *event = menu_events; - - while (event->widget != NULL) - { - GtkWidget *w = glade_xml_get_widget(gladeFile, event->widget); - g_signal_connect(G_OBJECT(w), "activate", event->handler, - hotlist_window); + GtkWidget *w; + + while (event->widget != NULL) { + w = GTK_WIDGET(gtk_builder_get_object(gladeFile, event->widget)); + if (w == NULL) { + LOG(("Unable to connect menu widget ""%s""", event->widget)); } else { + g_signal_connect(G_OBJECT(w), "activate", event->handler, hotlist_window); + } event++; } } diff --git a/gtk/login.c b/gtk/login.c index daf9e9644..41f66de20 100644 --- a/gtk/login.c +++ b/gtk/login.c @@ -21,7 +21,6 @@ #include <string.h> #include <assert.h> #include <gtk/gtk.h> -#include <glade/glade.h> #include "utils/log.h" #include "gtk/gui.h" @@ -41,7 +40,7 @@ struct session_401 { char *realm; /**< Authentication realm */ nserror (*cb)(bool proceed, void *pw); /**< Continuation callback */ void *cbpw; /**< Continuation data */ - GladeXML *x; /**< Our glade windows */ + GtkBuilder *x; /**< Our glade windows */ GtkWindow *wnd; /**< The login window itself */ GtkEntry *user; /**< Widget with username */ GtkEntry *pass; /**< Widget with password */ @@ -78,18 +77,26 @@ void create_login_window(const char *url, const char *host, const char *realm, * the widgets we're interested in. */ - GladeXML *x = glade_xml_new(glade_file_location->login, NULL, NULL); - GtkWindow *wnd = GTK_WINDOW(glade_xml_get_widget(x, "wndLogin")); + GtkWindow *wnd; GtkLabel *lhost, *lrealm; GtkEntry *euser, *epass; GtkButton *bok, *bcan; - - lhost = GTK_LABEL(glade_xml_get_widget(x, "labelLoginHost")); - lrealm = GTK_LABEL(glade_xml_get_widget(x, "labelLoginRealm")); - euser = GTK_ENTRY(glade_xml_get_widget(x, "entryLoginUser")); - epass = GTK_ENTRY(glade_xml_get_widget(x, "entryLoginPass")); - bok = GTK_BUTTON(glade_xml_get_widget(x, "buttonLoginOK")); - bcan = GTK_BUTTON(glade_xml_get_widget(x, "buttonLoginCan")); + GError* error = NULL; + GtkBuilder* builder; + + builder = gtk_builder_new (); + if (!gtk_builder_add_from_file(builder, glade_file_location->login, &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); + } + + wnd = GTK_WINDOW(gtk_builder_get_object(builder, "wndLogin")); + lhost = GTK_LABEL(gtk_builder_get_object(builder, "labelLoginHost")); + lrealm = GTK_LABEL(gtk_builder_get_object(builder, "labelLoginRealm")); + euser = GTK_ENTRY(gtk_builder_get_object(builder, "entryLoginUser")); + epass = GTK_ENTRY(gtk_builder_get_object(builder, "entryLoginPass")); + bok = GTK_BUTTON(gtk_builder_get_object(builder, "buttonLoginOK")); + bcan = GTK_BUTTON(gtk_builder_get_object(builder, "buttonLoginCan")); /* create and fill in our session structure */ @@ -99,7 +106,7 @@ void create_login_window(const char *url, const char *host, const char *realm, session->realm = strdup(realm ? realm : "Secure Area"); session->cb = cb; session->cbpw = cbpw; - session->x = x; + session->x = builder; session->wnd = wnd; session->user = euser; session->pass = epass; diff --git a/gtk/menu.c b/gtk/menu.c index f16cfee40..7c55a9fd6 100644 --- a/gtk/menu.c +++ b/gtk/menu.c @@ -20,7 +20,6 @@ #include <gdk/gdkkeysyms.h> #include <gtk/gtk.h> -#include <glade/glade-xml.h> #include "gtk/menu.h" #include "utils/messages.h" diff --git a/gtk/plotters.h b/gtk/plotters.h index 55ad71b5a..c88a8da0c 100644 --- a/gtk/plotters.h +++ b/gtk/plotters.h @@ -31,7 +31,6 @@ extern const struct plotter_table nsgtk_plotters; /* make sure this is NULL if no redraw is in progress */ extern GtkWidget *current_widget; -extern GdkDrawable *current_drawable; extern cairo_t *current_cr; void nsgtk_set_colour(colour c); diff --git a/gtk/print.c b/gtk/print.c index 73bf3b397..02d89bbdb 100644 --- a/gtk/print.c +++ b/gtk/print.c @@ -54,19 +54,19 @@ static GdkRectangle cliprect; static inline void nsgtk_print_set_colour(colour c) { int r, g, b; - GdkColor colour; r = c & 0xff; g = (c & 0xff00) >> 8; b = (c & 0xff0000) >> 16; +#ifdef FIXME + GdkColor colour; colour.red = r | (r << 8); colour.green = g | (g << 8); colour.blue = b | (b << 8); colour.pixel = (r << 16) | (g << 8) | b; - gdk_colormap_alloc_color(gdk_colormap_get_system(), &colour, true, true); - +#endif cairo_set_source_rgba(gtk_print_current_cr, r / 255.0, g / 255.0, b / 255.0, 1.0); } diff --git a/gtk/res/cookies.glade b/gtk/res/cookies.gtk2.ui index 9fc5de148..86f15c765 100644 --- a/gtk/res/cookies.glade +++ b/gtk/res/cookies.gtk2.ui @@ -1,174 +1,174 @@ -<?xml version="1.0" encoding="UTF-8"?> -<glade-interface> +<?xml version="1.0"?> +<interface> <!-- interface-requires gtk+ 2.6 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="wndCookies"> + <object class="GtkWindow" id="wndCookies"> <property name="title" translatable="yes">Cookies - NetSurf</property> <property name="window_position">mouse</property> <property name="default_width">600</property> <property name="default_height">500</property> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="border_width">2</property> + <property name="orientation">vertical</property> <property name="spacing">2</property> <child> - <widget class="GtkMenuBar" id="menubar1"> + <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="menuitem2"> + <object class="GtkMenuItem" id="menuitem2"> <property name="visible">True</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu2"> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="delete_selected"> + <object class="GtkMenuItem" id="delete_selected"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Deletes selected nodes</property> <property name="label" translatable="yes">_Delete</property> <property name="use_underline">True</property> <accelerator key="Delete" signal="activate" modifiers="GDK_CONTROL_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="delete_all"> + <object class="GtkMenuItem" id="delete_all"> <property name="visible">True</property> <property name="label" translatable="yes">D_elete all</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="select_all"> + <object class="GtkMenuItem" id="select_all"> <property name="visible">True</property> <property name="label" translatable="yes">_Select all</property> <property name="use_underline">True</property> <accelerator key="A" signal="activate" modifiers="GDK_MOD1_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="clear_selection"> + <object class="GtkMenuItem" id="clear_selection"> <property name="visible">True</property> <property name="label" translatable="yes">_Clear selection</property> <property name="use_underline">True</property> <accelerator key="U" signal="activate" modifiers="GDK_MOD1_MASK"/> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem3"> + <object class="GtkMenuItem" id="menuitem3"> <property name="visible">True</property> <property name="label" translatable="yes">_View</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu4"> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="expand"> + <object class="GtkMenuItem" id="expand"> <property name="visible">True</property> <property name="label" translatable="yes">_Expand</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu5"> + <child type="submenu"> + <object class="GtkMenu" id="menu5"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="expand_all"> + <object class="GtkMenuItem" id="expand_all"> <property name="visible">True</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_domains"> + <object class="GtkMenuItem" id="expand_domains"> <property name="visible">True</property> <property name="label" translatable="yes">_Domains</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_cookies"> + <object class="GtkMenuItem" id="expand_cookies"> <property name="visible">True</property> <property name="label" translatable="yes">_Cookies</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse"> + <object class="GtkMenuItem" id="collapse"> <property name="visible">True</property> <property name="label" translatable="yes">Collapse</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu6"> + <child type="submenu"> + <object class="GtkMenu" id="menu6"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="collapse_all"> + <object class="GtkMenuItem" id="collapse_all"> <property name="visible">True</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_domains"> + <object class="GtkMenuItem" id="collapse_domains"> <property name="visible">True</property> <property name="label" translatable="yes">_Domains</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_cookies"> + <object class="GtkMenuItem" id="collapse_cookies"> <property name="visible">True</property> <property name="label" translatable="yes">_Cookies</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkScrolledWindow" id="cookiesScrolled"> + <object class="GtkScrolledWindow" id="cookiesScrolled"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">automatic</property> <property name="vscrollbar_policy">automatic</property> <child> - <widget class="GtkViewport" id="cookiesViewport"> + <object class="GtkViewport" id="cookiesViewport"> <property name="visible">True</property> <property name="resize_mode">queue</property> <child> - <widget class="GtkDrawingArea" id="cookiesDrawingArea"> + <object class="GtkDrawingArea" id="cookiesDrawingArea"> <property name="visible">True</property> <property name="app_paintable">True</property> <property name="can_focus">True</property> <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> +</interface> diff --git a/gtk/res/cookies.gtk3.ui b/gtk/res/cookies.gtk3.ui new file mode 100644 index 000000000..3ccc04bce --- /dev/null +++ b/gtk/res/cookies.gtk3.ui @@ -0,0 +1,205 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndCookies"> + <property name="can_focus">False</property> + <property name="title" translatable="yes">NetSurf Cookies</property> + <property name="window_position">mouse</property> + <property name="default_width">600</property> + <property name="default_height">500</property> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkMenuBar" id="menubar1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem2"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="delete_selected"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Delete</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="delete_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">D_elete all</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="select_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Select all</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="clear_selection"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Clear selection</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem3"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Expand</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_domains"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Domains</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_cookies"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Cookies</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Collapse</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="collapse_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_domains"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Domains</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_cookies"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Cookies</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="cookiesScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport" id="cookiesViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkDrawingArea" id="cookiesDrawingArea"> + <property name="visible">True</property> + <property name="app_paintable">True</property> + <property name="can_focus">False</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/downloads.glade b/gtk/res/downloads.gtk2.ui index 706bfe19a..1e71328a4 100644 --- a/gtk/res/downloads.glade +++ b/gtk/res/downloads.gtk2.ui @@ -1,8 +1,8 @@ -<?xml version="1.0" encoding="UTF-8"?> -<glade-interface> +<?xml version="1.0"?> +<interface> <!-- interface-requires gtk+ 2.12 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="wndDownloads"> + <object class="GtkWindow" id="wndDownloads"> <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> <property name="title" translatable="yes">Downloads - NetSurf</property> <property name="window_position">mouse</property> @@ -10,66 +10,66 @@ <property name="default_height">300</property> <property name="destroy_with_parent">True</property> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <child> - <widget class="GtkScrolledWindow" id="scrolledwindow1"> + <object class="GtkScrolledWindow" id="scrolledwindow1"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">never</property> <property name="vscrollbar_policy">automatic</property> <child> - <widget class="GtkTreeView" id="treeDownloads"> + <object class="GtkTreeView" id="treeDownloads"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="search_column">2</property> <property name="show_expanders">False</property> <property name="rubber_banding">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkHSeparator" id="hseparator1"> + <object class="GtkHSeparator" id="hseparator1"> <property name="visible">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox1"> + <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> <child> - <widget class="GtkAlignment" id="alignment1"> + <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="top_padding">2</property> <property name="bottom_padding">2</property> <property name="left_padding">2</property> <property name="right_padding">2</property> <child> - <widget class="GtkProgressBar" id="progressBar"> + <object class="GtkProgressBar" id="progressBar"> <property name="visible">True</property> <property name="show_text">True</property> <property name="text" translatable="yes">0% of 0 files</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkHButtonBox" id="hbuttonbox1"> + <object class="GtkHButtonBox" id="hbuttonbox1"> <property name="visible">True</property> <property name="homogeneous">True</property> <property name="layout_style">end</property> <child> - <widget class="GtkButton" id="buttonPause"> + <object class="GtkButton" id="buttonPause"> <property name="label">gtk-media-pause</property> <property name="visible">True</property> <property name="sensitive">False</property> @@ -77,7 +77,7 @@ <property name="receives_default">True</property> <property name="relief">none</property> <property name="use_stock">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -85,37 +85,37 @@ </packing> </child> <child> - <widget class="GtkButton" id="buttonPlay"> + <object class="GtkButton" id="buttonPlay"> <property name="visible">True</property> <property name="sensitive">False</property> <property name="can_focus">True</property> <property name="receives_default">True</property> <property name="relief">none</property> <child> - <widget class="GtkHBox" id="hbox2"> + <object class="GtkHBox" id="hbox2"> <property name="visible">True</property> <child> - <widget class="GtkImage" id="image1"> + <object class="GtkImage" id="image1"> <property name="visible">True</property> <property name="stock">gtk-media-play</property> <property name="icon-size">2</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkLabel" id="label1"> + <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="label" translatable="yes">Resume</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -123,7 +123,7 @@ </packing> </child> <child> - <widget class="GtkButton" id="buttonCancel"> + <object class="GtkButton" id="buttonCancel"> <property name="label">gtk-cancel</property> <property name="visible">True</property> <property name="sensitive">False</property> @@ -131,7 +131,7 @@ <property name="receives_default">True</property> <property name="relief">none</property> <property name="use_stock">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -139,7 +139,7 @@ </packing> </child> <child> - <widget class="GtkButton" id="buttonClear"> + <object class="GtkButton" id="buttonClear"> <property name="label">gtk-clear</property> <property name="visible">True</property> <property name="sensitive">False</property> @@ -147,14 +147,14 @@ <property name="receives_default">True</property> <property name="relief">none</property> <property name="use_stock">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">3</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -162,14 +162,14 @@ <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> +</interface> diff --git a/gtk/res/downloads.gtk3.ui b/gtk/res/downloads.gtk3.ui new file mode 100644 index 000000000..1e71328a4 --- /dev/null +++ b/gtk/res/downloads.gtk3.ui @@ -0,0 +1,175 @@ +<?xml version="1.0"?> +<interface> + <!-- interface-requires gtk+ 2.12 --> + <!-- interface-naming-policy toplevel-contextual --> + <object class="GtkWindow" id="wndDownloads"> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> + <property name="title" translatable="yes">Downloads - NetSurf</property> + <property name="window_position">mouse</property> + <property name="default_width">500</property> + <property name="default_height">300</property> + <property name="destroy_with_parent">True</property> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hscrollbar_policy">never</property> + <property name="vscrollbar_policy">automatic</property> + <child> + <object class="GtkTreeView" id="treeDownloads"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="search_column">2</property> + <property name="show_expanders">False</property> + <property name="rubber_banding">True</property> + </object> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHSeparator" id="hseparator1"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="top_padding">2</property> + <property name="bottom_padding">2</property> + <property name="left_padding">2</property> + <property name="right_padding">2</property> + <child> + <object class="GtkProgressBar" id="progressBar"> + <property name="visible">True</property> + <property name="show_text">True</property> + <property name="text" translatable="yes">0% of 0 files</property> + </object> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHButtonBox" id="hbuttonbox1"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="buttonPause"> + <property name="label">gtk-media-pause</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="buttonPlay"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <child> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="stock">gtk-media-play</property> + <property name="icon-size">2</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes">Resume</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="buttonCancel"> + <property name="label">gtk-cancel</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButton" id="buttonClear"> + <property name="label">gtk-clear</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="relief">none</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/history.gtk2.ui b/gtk/res/history.gtk2.ui new file mode 100644 index 000000000..2b89ecb4b --- /dev/null +++ b/gtk/res/history.gtk2.ui @@ -0,0 +1,242 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndHistory"> + <property name="can_focus">False</property> + <property name="title" translatable="yes">NetSurf Global History</property> + <property name="window_position">center</property> + <property name="default_width">600</property> + <property name="default_height">500</property> + <property name="type_hint">utility</property> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuBar" id="menubar1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem1"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="export"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Export</property> + <property name="use_underline">True</property> + <accelerator key="E" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem2"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="delete_selected"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Delete</property> + <property name="use_underline">True</property> + <accelerator key="Delete" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> + </child> + <child> + <object class="GtkMenuItem" id="delete_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">D_elete all</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="select_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Select all</property> + <property name="use_underline">True</property> + <accelerator key="A" signal="activate" modifiers="GDK_MOD1_MASK"/> + </object> + </child> + <child> + <object class="GtkMenuItem" id="clear_selection"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Clear selection</property> + <property name="use_underline">True</property> + <accelerator key="U" signal="activate" modifiers="GDK_MOD1_MASK"/> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem3"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Expand</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_directories"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Directories</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_addresses"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add_resses</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Collapse</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="collapse_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_directories"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Directories</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_addresses"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add_resses</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="launch"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Launch</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="globalHistoryScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object class="GtkViewport" id="globalHistoryViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="resize_mode">queue</property> + <child> + <object class="GtkDrawingArea" id="globalHistoryDrawingArea"> + <property name="visible">True</property> + <property name="app_paintable">True</property> + <property name="can_focus">True</property> + <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/history.glade b/gtk/res/history.gtk3.ui index 5c6e06424..7fa598f1e 100644 --- a/gtk/res/history.glade +++ b/gtk/res/history.gtk3.ui @@ -1,199 +1,238 @@ -<?xml version="1.0"?> -<glade-interface> - <!-- interface-requires gtk+ 2.16 --> - <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="wndHistory"> +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndHistory"> + <property name="can_focus">False</property> <property name="title" translatable="yes">NetSurf Global History</property> <property name="window_position">center</property> <property name="default_width">600</property> <property name="default_height">500</property> <property name="type_hint">utility</property> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkBox" id="box1"> <property name="visible">True</property> - <property name="border_width">2</property> - <property name="spacing">2</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkMenuBar" id="menubar1"> + <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="menuitem1"> + <object class="GtkMenuItem" id="menuitem1"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu1"> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="export"> + <object class="GtkMenuItem" id="export"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Export</property> <property name="use_underline">True</property> - <accelerator key="E" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem2"> + <object class="GtkMenuItem" id="menuitem2"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu2"> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="delete_selected"> + <object class="GtkMenuItem" id="delete_selected"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Deletes selected nodes</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Delete</property> <property name="use_underline">True</property> - <accelerator key="Delete" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="delete_all"> + <object class="GtkMenuItem" id="delete_all"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">D_elete all</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="select_all"> + <object class="GtkMenuItem" id="select_all"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Select all</property> <property name="use_underline">True</property> - <accelerator key="A" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="clear_selection"> + <object class="GtkMenuItem" id="clear_selection"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Clear selection</property> <property name="use_underline">True</property> - <accelerator key="U" modifiers="GDK_MOD1_MASK" signal="activate"/> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem3"> + <object class="GtkMenuItem" id="menuitem3"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_View</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu4"> + <child type="submenu"> + <object class="GtkMenu" id="menu3"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="expand"> + <object class="GtkMenuItem" id="expand"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Expand</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu5"> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="expand_all"> + <object class="GtkMenuItem" id="expand_all"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_directories"> + <object class="GtkMenuItem" id="expand_directories"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Directories</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_addresses"> + <object class="GtkMenuItem" id="expand_addresses"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">Add_resses</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse"> + <object class="GtkMenuItem" id="collapse"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Collapse</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu6"> + <child type="submenu"> + <object class="GtkMenu" id="menu5"> <property name="visible">True</property> + <property name="can_focus">False</property> <child> - <widget class="GtkMenuItem" id="collapse_all"> + <object class="GtkMenuItem" id="collapse_all"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_directories"> + <object class="GtkMenuItem" id="collapse_directories"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Directories</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_addresses"> + <object class="GtkMenuItem" id="collapse_addresses"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">Add_resses</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="launch"> + <object class="GtkMenuItem" id="launch"> + <property name="use_action_appearance">False</property> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Launches the selected addresses</property> + <property name="can_focus">False</property> <property name="label" translatable="yes">_Launch</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> </packing> </child> <child> - <widget class="GtkScrolledWindow" id="globalHistoryScrolled"> + <object class="GtkScrolledWindow" id="globalHistoryScrolled"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">in</property> <child> - <widget class="GtkViewport" id="globalHistoryViewport"> + <object class="GtkViewport" id="globalHistoryViewport"> <property name="visible">True</property> - <property name="resize_mode">GTK_RESIZE_QUEUE</property> + <property name="can_focus">False</property> <child> - <widget class="GtkDrawingArea" id="globalHistoryDrawingArea"> + <object class="GtkDrawingArea" id="globalHistoryDrawingArea"> <property name="visible">True</property> - <property name="app_paintable">True</property> - <property name="can_focus">True</property> + <property name="can_focus">False</property> <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> +</interface> diff --git a/gtk/res/hotlist.glade b/gtk/res/hotlist.gtk2.ui index 8f0a6ecc7..af0fd5696 100644 --- a/gtk/res/hotlist.glade +++ b/gtk/res/hotlist.gtk2.ui @@ -1,218 +1,217 @@ -<?xml version="1.0" encoding="UTF-8"?> -<glade-interface> +<?xml version="1.0"?> +<interface> <!-- interface-requires gtk+ 2.6 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkWindow" id="wndHotlist"> + <object class="GtkWindow" id="wndHotlist"> <property name="title" translatable="yes">Bookmarks - NetSurf</property> <property name="window_position">mouse</property> <property name="default_width">600</property> <property name="default_height">500</property> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> <property name="border_width">2</property> + <property name="orientation">vertical</property> <property name="spacing">2</property> <child> - <widget class="GtkMenuBar" id="menubar1"> + <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="menuitem1"> + <object class="GtkMenuItem" id="menuitem1"> <property name="visible">True</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu1"> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="export"> + <object class="GtkMenuItem" id="export"> <property name="visible">True</property> <property name="label" translatable="yes">_Export</property> <property name="use_underline">True</property> <accelerator key="E" signal="activate" modifiers="GDK_CONTROL_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="new_folder"> + <object class="GtkMenuItem" id="new_folder"> <property name="visible">True</property> <property name="label" translatable="yes">New _folder</property> <property name="use_underline">True</property> <accelerator key="M" signal="activate" modifiers="GDK_CONTROL_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="new_entry"> + <object class="GtkMenuItem" id="new_entry"> <property name="visible">True</property> <property name="label" translatable="yes">New _entry</property> <property name="use_underline">True</property> <accelerator key="N" signal="activate" modifiers="GDK_CONTROL_MASK"/> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem2"> + <object class="GtkMenuItem" id="menuitem2"> <property name="visible">True</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu2"> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="edit_selected"> + <object class="GtkMenuItem" id="edit_selected"> <property name="visible">True</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="delete_selected"> + <object class="GtkMenuItem" id="delete_selected"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Deletes selected nodes</property> <property name="label" translatable="yes">_Delete</property> <property name="use_underline">True</property> <accelerator key="Delete" signal="activate" modifiers="GDK_CONTROL_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="select_all"> + <object class="GtkMenuItem" id="select_all"> <property name="visible">True</property> <property name="label" translatable="yes">_Select all</property> <property name="use_underline">True</property> <accelerator key="A" signal="activate" modifiers="GDK_MOD1_MASK"/> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="clear_selection"> + <object class="GtkMenuItem" id="clear_selection"> <property name="visible">True</property> <property name="label" translatable="yes">_Clear selection</property> <property name="use_underline">True</property> <accelerator key="U" signal="activate" modifiers="GDK_MOD1_MASK"/> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem3"> + <object class="GtkMenuItem" id="menuitem3"> <property name="visible">True</property> <property name="label" translatable="yes">_View</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu4"> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="expand"> + <object class="GtkMenuItem" id="expand"> <property name="visible">True</property> <property name="label" translatable="yes">_Expand</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu5"> + <child type="submenu"> + <object class="GtkMenu" id="menu5"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="expand_all"> + <object class="GtkMenuItem" id="expand_all"> <property name="visible">True</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_directories"> + <object class="GtkMenuItem" id="expand_directories"> <property name="visible">True</property> <property name="label" translatable="yes">_Directories</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="expand_addresses"> + <object class="GtkMenuItem" id="expand_addresses"> <property name="visible">True</property> <property name="label" translatable="yes">Add_resses</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse"> + <object class="GtkMenuItem" id="collapse"> <property name="visible">True</property> <property name="label" translatable="yes">_Collapse</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu6"> + <child type="submenu"> + <object class="GtkMenu" id="menu6"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="collapse_all"> + <object class="GtkMenuItem" id="collapse_all"> <property name="visible">True</property> <property name="label" translatable="yes">_All</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_directories"> + <object class="GtkMenuItem" id="collapse_directories"> <property name="visible">True</property> <property name="label" translatable="yes">_Directories</property> <property name="use_underline">True</property> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="collapse_addresses"> + <object class="GtkMenuItem" id="collapse_addresses"> <property name="visible">True</property> <property name="label" translatable="yes">Add_resses</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="launch"> + <object class="GtkMenuItem" id="launch"> <property name="visible">True</property> - <property name="tooltip" translatable="yes">Launches the selected addresses</property> <property name="label" translatable="yes">_Launch</property> <property name="use_underline">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkScrolledWindow" id="hotlistScrolled"> + <object class="GtkScrolledWindow" id="hotlistScrolled"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="hscrollbar_policy">automatic</property> <property name="vscrollbar_policy">automatic</property> <child> - <widget class="GtkViewport" id="hotlistViewport"> + <object class="GtkViewport" id="hotlistViewport"> <property name="visible">True</property> <property name="resize_mode">queue</property> <child> - <widget class="GtkDrawingArea" id="hotlistDrawingArea"> + <object class="GtkDrawingArea" id="hotlistDrawingArea"> <property name="visible">True</property> <property name="app_paintable">True</property> <property name="can_focus">True</property> <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> +</interface> diff --git a/gtk/res/hotlist.gtk3.ui b/gtk/res/hotlist.gtk3.ui new file mode 100644 index 000000000..78a81672b --- /dev/null +++ b/gtk/res/hotlist.gtk3.ui @@ -0,0 +1,254 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndHotlist"> + <property name="can_focus">False</property> + <property name="title" translatable="yes">NetSurf Bookmarks</property> + <property name="window_position">mouse</property> + <property name="default_width">600</property> + <property name="default_height">500</property> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkMenuBar" id="menubar1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="menuitem1"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_File</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="export"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Export</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="new_folder"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">New _folder</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="new_entry"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">New _entry</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem2"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="edit_selected"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Edit</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="delete_selected"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Delete</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="select_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Select all</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="clear_selection"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Clear selection</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem3"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_View</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Expand</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="expand_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_directories"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Directories</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="expand_addresses"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add_resses</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Collapse</property> + <property name="use_underline">True</property> + <child type="submenu"> + <object class="GtkMenu" id="menu5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkMenuItem" id="collapse_all"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_All</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_directories"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Directories</property> + <property name="use_underline">True</property> + </object> + </child> + <child> + <object class="GtkMenuItem" id="collapse_addresses"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Add_resses</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="launch"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Launch</property> + <property name="use_underline">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="hotlistScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport" id="hotlistViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkDrawingArea" id="hotlistDrawingArea"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/login.glade b/gtk/res/login.gtk2.ui index c46740591..552b173ed 100644 --- a/gtk/res/login.glade +++ b/gtk/res/login.gtk2.ui @@ -1,33 +1,32 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<?xml version="1.0"?> <!--*- mode: xml -*--> -<glade-interface> - <widget class="GtkDialog" id="wndLogin"> +<interface> + <object class="GtkDialog" id="wndLogin"> <property name="title" translatable="yes">Site Authentication</property> <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox2"> + <object class="GtkVBox" id="dialog-vbox2"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox12"> + <object class="GtkHBox" id="hbox12"> <property name="visible">True</property> <property name="border_width">3</property> <child> - <widget class="GtkImage" id="image3"> + <object class="GtkImage" id="image3"> <property name="visible">True</property> <property name="yalign">0.10000000149011612</property> <property name="xpad">12</property> <property name="icon_size">6</property> <property name="icon_name">gtk-dialog-authentication</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkTable" id="table5"> + <object class="GtkTable" id="table5"> <property name="visible">True</property> <property name="border_width">1</property> <property name="n_rows">4</property> @@ -35,188 +34,190 @@ <property name="column_spacing">11</property> <property name="row_spacing">10</property> <child> - <widget class="GtkLabel" id="labelLoginHost"> + <object class="GtkLabel" id="labelLoginHost"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">moo.yoo.com</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkLabel" id="label57"> + <object class="GtkLabel" id="label57"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Password</property> - </widget> + </object> <packing> <property name="top_attach">3</property> <property name="bottom_attach">4</property> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkLabel" id="label56"> + <object class="GtkLabel" id="label56"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Username</property> - </widget> + </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkLabel" id="label54"> + <object class="GtkLabel" id="label54"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Host</property> - </widget> + </object> <packing> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkLabel" id="label55"> + <object class="GtkLabel" id="label55"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">Realm</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkLabel" id="labelLoginRealm"> + <object class="GtkLabel" id="labelLoginRealm"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">my sekr3t area</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">1</property> <property name="bottom_attach">2</property> - <property name="x_options"></property> + <property name="x_options"/> </packing> </child> <child> - <widget class="GtkEntry" id="entryLoginPass"> + <object class="GtkEntry" id="entryLoginPass"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="visibility">False</property> <property name="activates_default">True</property> <property name="text" translatable="yes">opensesame</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">3</property> <property name="bottom_attach">4</property> - <property name="y_options"></property> + <property name="y_options"/> </packing> </child> <child> - <widget class="GtkEntry" id="entryLoginUser"> + <object class="GtkEntry" id="entryLoginUser"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="has_focus">True</property> <property name="text" translatable="yes">sesame</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> <property name="top_attach">2</property> <property name="bottom_attach">3</property> - <property name="y_options"></property> + <property name="y_options"/> </packing> </child> - </widget> + </object> <packing> <property name="padding">1</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area2"> + <object class="GtkHButtonBox" id="dialog-action_area2"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> - <widget class="GtkButton" id="buttonLoginCan"> + <object class="GtkButton" id="buttonLoginCan"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="label">gtk-cancel</property> <property name="use_stock">True</property> - <property name="response_id">-6</property> - </widget> + </object> </child> <child> - <widget class="GtkButton" id="buttonLoginOK"> + <object class="GtkButton" id="buttonLoginOK"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="has_default">True</property> - <property name="response_id">-5</property> <child> - <widget class="GtkAlignment" id="alignment14"> + <object class="GtkAlignment" id="alignment14"> <property name="visible">True</property> <property name="can_default">True</property> <property name="has_default">True</property> <property name="xscale">0</property> <property name="yscale">0</property> <child> - <widget class="GtkHBox" id="hbox11"> + <object class="GtkHBox" id="hbox11"> <property name="visible">True</property> <property name="spacing">2</property> <child> - <widget class="GtkImage" id="image2"> + <object class="GtkImage" id="image2"> <property name="visible">True</property> <property name="stock">gtk-ok</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkLabel" id="label49"> + <object class="GtkLabel" id="label49"> <property name="visible">True</property> <property name="label" translatable="yes">Login</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="pack_type">GTK_PACK_END</property> </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + <action-widgets> + <action-widget response="-6">buttonLoginCan</action-widget> + <action-widget response="-5">buttonLoginOK</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/login.gtk3.ui b/gtk/res/login.gtk3.ui new file mode 100644 index 000000000..552b173ed --- /dev/null +++ b/gtk/res/login.gtk3.ui @@ -0,0 +1,223 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkDialog" id="wndLogin"> + <property name="title" translatable="yes">Site Authentication</property> + <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox2"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox12"> + <property name="visible">True</property> + <property name="border_width">3</property> + <child> + <object class="GtkImage" id="image3"> + <property name="visible">True</property> + <property name="yalign">0.10000000149011612</property> + <property name="xpad">12</property> + <property name="icon_size">6</property> + <property name="icon_name">gtk-dialog-authentication</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkTable" id="table5"> + <property name="visible">True</property> + <property name="border_width">1</property> + <property name="n_rows">4</property> + <property name="n_columns">2</property> + <property name="column_spacing">11</property> + <property name="row_spacing">10</property> + <child> + <object class="GtkLabel" id="labelLoginHost"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">moo.yoo.com</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label57"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Password</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label56"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Username</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label54"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Host</property> + </object> + <packing> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label55"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">Realm</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="labelLoginRealm"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">my sekr3t area</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"/> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryLoginPass"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="visibility">False</property> + <property name="activates_default">True</property> + <property name="text" translatable="yes">opensesame</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryLoginUser"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_focus">True</property> + <property name="text" translatable="yes">sesame</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"/> + </packing> + </child> + </object> + <packing> + <property name="padding">1</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area2"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <child> + <object class="GtkButton" id="buttonLoginCan"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="label">gtk-cancel</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkButton" id="buttonLoginOK"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <child> + <object class="GtkAlignment" id="alignment14"> + <property name="visible">True</property> + <property name="can_default">True</property> + <property name="has_default">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <object class="GtkHBox" id="hbox11"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkImage" id="image2"> + <property name="visible">True</property> + <property name="stock">gtk-ok</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label49"> + <property name="visible">True</property> + <property name="label" translatable="yes">Login</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">GTK_PACK_END</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-6">buttonLoginCan</action-widget> + <action-widget response="-5">buttonLoginOK</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/menu_cursor.png b/gtk/res/menu_cursor.png Binary files differnew file mode 100644 index 000000000..ccbbbd2d4 --- /dev/null +++ b/gtk/res/menu_cursor.png diff --git a/gtk/res/menu_cursor.xbm b/gtk/res/menu_cursor.xbm new file mode 100644 index 000000000..1257ac1f4 --- /dev/null +++ b/gtk/res/menu_cursor.xbm @@ -0,0 +1,6 @@ +#define menu_cursor_width 16 +#define menu_cursor_height 16 +static char menu_cursor_bits[] = { + 0x00, 0x00, 0x80, 0x7F, 0x88, 0x40, 0x9E, 0x5E, 0x88, 0x40, 0x80, 0x56, + 0x80, 0x40, 0x80, 0x5A, 0x80, 0x40, 0x80, 0x5E, 0x80, 0x40, 0x80, 0x56, + 0x80, 0x40, 0x80, 0x7F, 0x00, 0x00, 0x00, 0x00 }; diff --git a/gtk/res/menu_cursor_mask.xbm b/gtk/res/menu_cursor_mask.xbm new file mode 100644 index 000000000..09789d51b --- /dev/null +++ b/gtk/res/menu_cursor_mask.xbm @@ -0,0 +1,6 @@ +#define menu_cursor_mask_width 16 +#define menu_cursor_mask_height 16 +static char menu_cursor_mask_bits[] = { + 0xC0, 0xFF, 0xC8, 0xFF, 0xDF, 0xFF, 0xFF, 0xFF, 0xDF, 0xFF, 0xC8, 0xFF, + 0xC0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, + 0xC0, 0xFF, 0xC0, 0xFF, 0xC0, 0xFF, 0x00, 0x00 }; diff --git a/gtk/res/menu_cursor_mask.xpm b/gtk/res/menu_cursor_mask.xpm new file mode 100644 index 000000000..985d46cc6 --- /dev/null +++ b/gtk/res/menu_cursor_mask.xpm @@ -0,0 +1,22 @@ +/* XPM */ +static char * menu_cursor_mask_xpm[] = { +"16 16 3 1", +" c None", +". c #FFFFFF", +"+ c #000000", +" ..........", +" . .++++++++.", +"...+. .+......+.", +".++++..+.++++.+.", +"...+. .+......+.", +" . .+.++.+.+.", +" .+......+.", +" .+.+.++.+.", +" .+......+.", +" .+.++++.+.", +" .+......+.", +" .+.++.+.+.", +" .+......+.", +" .++++++++.", +" ..........", +" "}; diff --git a/gtk/res/netsurf.glade b/gtk/res/netsurf.gtk2.ui index abd981e41..68812b364 100644 --- a/gtk/res/netsurf.glade +++ b/gtk/res/netsurf.gtk2.ui @@ -1,27 +1,47 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> +<?xml version="1.0"?> <!--Generated with glade3 3.4.5 on Wed Apr 7 17:10:28 2010 --> -<glade-interface> - <widget class="GtkWindow" id="wndBrowser"> +<interface> + <object class="GtkAdjustment" id="adjustment1"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">26</property> + <property name="page_size">10</property> + <property name="value">0.5357142857142857</property> + </object> + <object class="GtkAdjustment" id="adjustment2"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">26</property> + <property name="page_size">10</property> + <property name="value">0</property> + </object> + <object class="GtkUIManager" id="uimanager1"> + <ui> + <menubar name="menubar"/> + </ui> + </object> + <object class="GtkWindow" id="wndBrowser"> <property name="title" translatable="yes">NetSurf</property> <property name="window_position">GTK_WIN_POS_CENTER</property> <child> - <widget class="GtkVBox" id="vbox14"> + <object class="GtkVBox" id="vbox14"> <property name="visible">True</property> <child> - <widget class="GtkMenuBar" id="menubar"> + <object class="GtkMenuBar" constructor="uimanager1" id="menubar"> <property name="visible">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkToolbar" id="toolbar"> + <object class="GtkToolbar" id="toolbar"> <property name="visible">True</property> <property name="toolbar_style">GTK_TOOLBAR_BOTH_HORIZ</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -29,112 +49,110 @@ </packing> </child> <child> - <widget class="GtkToolbar" id="searchbar"> + <object class="GtkToolbar" id="searchbar"> <property name="toolbar_style">GTK_TOOLBAR_BOTH</property> <child> - <widget class="GtkToolButton" id="closeSearchButton"> + <object class="GtkToolButton" id="closeSearchButton"> <property name="visible">True</property> <property name="stock_id">gtk-close</property> - </widget> + </object> <packing> <property name="expand">False</property> </packing> </child> <child> - <widget class="GtkToolItem" id="searchLabelItem"> + <object class="GtkToolItem" id="searchLabelItem"> <property name="visible">True</property> <child> - <widget class="GtkLabel" id="searchlabel"> + <object class="GtkLabel" id="searchlabel"> <property name="visible">True</property> <property name="xpad">4</property> <property name="label" translatable="yes">Match</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="homogeneous">False</property> </packing> </child> <child> - <widget class="GtkToolItem" id="toolSearch"> + <object class="GtkToolItem" id="toolSearch"> <property name="visible">True</property> <child> - <widget class="GtkEntry" id="searchEntry"> + <object class="GtkEntry" id="searchEntry"> <property name="visible">True</property> <property name="can_focus">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="homogeneous">False</property> </packing> </child> <child> - <widget class="GtkToolButton" id="searchBackButton"> + <object class="GtkToolButton" id="searchBackButton"> <property name="visible">True</property> <property name="label" translatable="yes">Search _Back</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-back</property> - </widget> + </object> <packing> <property name="expand">False</property> </packing> </child> <child> - <widget class="GtkToolButton" id="searchForwardButton"> + <object class="GtkToolButton" id="searchForwardButton"> <property name="visible">True</property> <property name="label" translatable="yes">Search _Forward</property> <property name="use_underline">True</property> <property name="stock_id">gtk-go-forward</property> - </widget> + </object> <packing> <property name="expand">False</property> </packing> </child> <child> - <widget class="GtkToolItem" id="checkAllSearchItem"> + <object class="GtkToolItem" id="checkAllSearchItem"> <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="checkAllSearch"> + <object class="GtkCheckButton" id="checkAllSearch"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">show all matches</property> + <property name="tooltip-text" translatable="yes">show all matches</property> <property name="label" translatable="yes">All </property> <property name="use_underline">True</property> - <property name="response_id">0</property> <property name="draw_indicator">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="homogeneous">False</property> </packing> </child> <child> - <widget class="GtkToolItem" id="caseSensItem"> + <object class="GtkToolItem" id="caseSensItem"> <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="caseSensButton"> + <object class="GtkCheckButton" id="caseSensButton"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Match case when searching</property> + <property name="tooltip-text" translatable="yes">Match case when searching</property> <property name="label" translatable="yes">Case</property> <property name="relief">GTK_RELIEF_NONE</property> <property name="use_underline">True</property> - <property name="response_id">0</property> <property name="draw_indicator">True</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="homogeneous">False</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -142,7 +160,7 @@ </packing> </child> <child> - <widget class="GtkNotebook" id="notebook"> + <object class="GtkNotebook" id="notebook"> <property name="visible">True</property> <property name="show_tabs">False</property> <property name="show_border">False</property> @@ -150,138 +168,45 @@ <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> <child> <placeholder/> </child> - <child> + <child type="tab"> <placeholder/> - <packing> - <property name="type">tab</property> - </packing> </child> - </widget> + </object> <packing> <property name="position">3</property> </packing> </child> - </widget> - </child> - </widget> - <widget class="GtkWindow" id="tabContentsWindow"> - <child> - <widget class="GtkTable" id="tabContents"> - <property name="visible">True</property> - <property name="n_rows">2</property> - <property name="n_columns">2</property> - <child> - <widget class="GtkLayout" id="layout"> - <property name="visible">True</property> - <property name="app_paintable">True</property> - </widget> - </child> - <child> - <widget class="GtkStatusbar" id="resizer"> - <property name="height_request">1</property> - <property name="visible">True</property> - <property name="spacing">2</property> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="x_options">GTK_FILL</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <widget class="GtkHPaned" id="hpaned1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <child> - <widget class="GtkLabel" id="status_bar"> - <property name="width_request">1</property> - <property name="visible">True</property> - <property name="xalign">0</property> - <property name="xpad">4</property> - <property name="label" translatable="yes">Status</property> - </widget> - <packing> - <property name="resize">False</property> - <property name="shrink">False</property> - </packing> - </child> - <child> - <widget class="GtkHScrollbar" id="hscrollbar"> - <property name="visible">True</property> - <property name="adjustment">0.5357142857142857 0 100 26 10 10</property> - </widget> - <packing> - <property name="resize">True</property> - <property name="shrink">True</property> - </packing> - </child> - </widget> - <packing> - <property name="top_attach">1</property> - <property name="bottom_attach">2</property> - <property name="y_options">GTK_FILL</property> - </packing> - </child> - <child> - <widget class="GtkVScrollbar" id="vscrollbar"> - <property name="visible">True</property> - <property name="adjustment">0 0 100 26 10 10</property> - </widget> - <packing> - <property name="left_attach">1</property> - <property name="right_attach">2</property> - <property name="x_options"></property> - </packing> - </child> - </widget> + </object> </child> - </widget> -</glade-interface> + </object> +</interface> diff --git a/gtk/res/netsurf.gtk3.ui b/gtk/res/netsurf.gtk3.ui new file mode 100644 index 000000000..ce47c6370 --- /dev/null +++ b/gtk/res/netsurf.gtk3.ui @@ -0,0 +1,207 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndBrowser"> + <property name="can_focus">False</property> + <child> + <object class="GtkBox" id="box1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkMenuBar" id="menubar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkToolbar" id="toolbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="toolbar_style">both</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkToolbar" id="searchbar"> + <property name="can_focus">False</property> + <property name="toolbar_style">both</property> + <child> + <object class="GtkToolButton" id="closeSearchButton"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">gtk-close</property> + <property name="stock_id">gtk-close</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="searchLabelItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <child> + <object class="GtkLabel" id="searchlabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xpad">4</property> + <property name="label" translatable="yes">Match</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="toolSearch"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <child> + <object class="GtkEntry" id="searchEntry"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="searchBackButton"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Search _Back</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-go-back</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="searchForwardButton"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <property name="label" translatable="yes">Search _Forward</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-go-forward</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="checkAllSearchItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <child> + <object class="GtkCheckButton" id="checkAllSearch"> + <property name="label" translatable="yes">All</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkToolItem" id="caseSensItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_action_appearance">False</property> + <child> + <object class="GtkCheckButton" id="caseSensButton"> + <property name="label" translatable="yes">Case</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="notebook"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="show_tabs">False</property> + <property name="show_border">False</property> + <property name="scrollable">True</property> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child type="tab"> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/options.glade b/gtk/res/options.gtk2.ui index 75313e38e..0f50ecce6 100644 --- a/gtk/res/options.glade +++ b/gtk/res/options.gtk2.ui @@ -1,8 +1,8 @@ <?xml version="1.0"?> -<glade-interface> - <!-- interface-requires gtk+ 2.6 --> +<interface> + <!-- interface-requires gtk+ 2.12 --> <!-- interface-naming-policy toplevel-contextual --> - <widget class="GtkDialog" id="dlgPreferences"> + <object class="GtkDialog" id="dlgPreferences"> <property name="border_width">5</property> <property name="title" translatable="yes">Netsurf Preferences</property> <property name="window_position">center-on-parent</property> @@ -10,40 +10,43 @@ <property name="type_hint">dialog</property> <property name="has_separator">False</property> <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox6"> + <object class="GtkVBox" id="dialog-vbox6"> <property name="visible">True</property> + <property name="orientation">vertical</property> <property name="spacing">2</property> <child> - <widget class="GtkNotebook" id="notebook2"> + <object class="GtkNotebook" id="notebook2"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="border_width">4</property> <child> - <widget class="GtkVBox" id="vbox16"> + <object class="GtkVBox" id="vbox_general"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame14"> + <object class="GtkFrame" id="frame14"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment18"> + <object class="GtkAlignment" id="alignment18"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkHBox" id="hbox16"> + <object class="GtkHBox" id="hbox16"> <property name="visible">True</property> <property name="border_width">5</property> <property name="spacing">5</property> <child> - <widget class="GtkLabel" id="label64"> + <object class="GtkLabel" id="label64"> <property name="visible">True</property> <property name="label" translatable="yes">URL</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -51,104 +54,100 @@ </packing> </child> <child> - <widget class="GtkEntry" id="entryHomePageURL"> + <object class="GtkEntry" id="entryHomePageURL"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">The page to visit when the Home button is pressed, or a new window is opened.</property> <property name="invisible_char">●</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox1"> + <object class="GtkHBox" id="hbox1"> <property name="visible">True</property> <property name="spacing">5</property> <child> - <widget class="GtkButton" id="setCurrentPage"> + <object class="GtkButton" id="setCurrentPage"> <property name="label" translatable="yes">Current Page</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="padding">5</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkButton" id="setDefaultPage"> + <object class="GtkButton" id="setDefaultPage"> <property name="label" translatable="yes">Default Page</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="padding">5</property> <property name="pack_type">end</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label65"> + <child type="label"> + <object class="GtkLabel" id="label65"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Home page</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox6"> + <object class="GtkHBox" id="hbox6"> <property name="visible">True</property> <child> - <widget class="GtkFrame" id="frame15"> + <object class="GtkFrame" id="frame15"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment19"> + <object class="GtkAlignment" id="alignment19"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox17"> + <object class="GtkVBox" id="vbox17"> <property name="visible">True</property> + <property name="orientation">vertical</property> <property name="homogeneous">True</property> <child> - <widget class="GtkCheckButton" id="checkHideAdverts"> + <object class="GtkCheckButton" id="checkHideAdverts"> <property name="label" translatable="yes">Hide advertisements</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Attempt to hide images from known advertisement servers.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -156,15 +155,14 @@ </packing> </child> <child> - <widget class="GtkCheckButton" id="checkDisablePopups"> + <object class="GtkCheckButton" id="checkDisablePopups"> <property name="label" translatable="yes">Disable pop-up windows</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Stop pop-up windows normally containing adverts appearing.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -172,58 +170,56 @@ </packing> </child> <child> - <widget class="GtkCheckButton" id="checkDisablePlugins"> + <object class="GtkCheckButton" id="checkDisablePlugins"> <property name="label" translatable="yes">Disable plug-ins</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Do not allow embedded applets or plugins.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label66"> + <child type="label"> + <object class="GtkLabel" id="label66"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Content blocking</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame7"> + <object class="GtkFrame" id="frame7"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment7"> + <object class="GtkAlignment" id="alignment7"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox8"> + <object class="GtkHBox" id="hbox8"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> <placeholder/> </child> <child> - <widget class="GtkVBox" id="combolanguagevbox"> + <object class="GtkVBox" id="combolanguagevbox"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> <placeholder/> </child> @@ -233,7 +229,7 @@ <child> <placeholder/> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -243,56 +239,54 @@ <child> <placeholder/> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label20"> + <child type="label"> + <object class="GtkLabel" id="label20"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Content Language</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame16"> + <object class="GtkFrame" id="frame16"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment20"> + <object class="GtkAlignment" id="alignment20"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox18"> + <object class="GtkVBox" id="vbox18"> <property name="visible">True</property> <property name="border_width">1</property> + <property name="orientation">vertical</property> <property name="spacing">2</property> <child> - <widget class="GtkHBox" id="hbox17"> + <object class="GtkHBox" id="hbox17"> <property name="visible">True</property> <property name="border_width">4</property> <property name="spacing">4</property> <child> - <widget class="GtkLabel" id="label67"> + <object class="GtkLabel" id="label67"> <property name="visible">True</property> <property name="label" translatable="yes">Keep history for</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -300,13 +294,12 @@ </packing> </child> <child> - <widget class="GtkSpinButton" id="spinHistoryAge"> + <object class="GtkSpinButton" id="spinHistoryAge"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Visited pages are kept in memory for this many days</property> - <property name="adjustment">14 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -314,52 +307,48 @@ </packing> </child> <child> - <widget class="GtkLabel" id="label68"> + <object class="GtkLabel" id="label68"> <property name="visible">True</property> <property name="label" translatable="yes">days</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkHoverURLs"> + <object class="GtkCheckButton" id="checkHoverURLs"> <property name="label" translatable="yes">Hover URLs by pointer in local history</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Show a tooltip showing the URL of a page in the local history tree.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label69"> + <child type="label"> + <object class="GtkLabel" id="label69"> <property name="visible">True</property> <property name="label" translatable="yes"><b>History</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -367,29 +356,29 @@ </packing> </child> <child> - <widget class="GtkFrame" id="frame17"> + <object class="GtkFrame" id="frame17"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment21"> + <object class="GtkAlignment" id="alignment21"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox19"> + <object class="GtkVBox" id="vbox19"> <property name="visible">True</property> + <property name="orientation">vertical</property> <property name="homogeneous">True</property> <child> - <widget class="GtkCheckButton" id="checkDisplayRecentURLs"> + <object class="GtkCheckButton" id="checkDisplayRecentURLs"> <property name="label" translatable="yes">Display recently visited URLs as you type</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Show a drop-down list of recent addresses when typing into the address bar.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -397,84 +386,76 @@ </packing> </child> <child> - <widget class="GtkCheckButton" id="checkSendReferer"> + <object class="GtkCheckButton" id="checkSendReferer"> <property name="label" translatable="yes">Send site referral information</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">When requesting items or pages, tell the server what linked to them.</property> <property name="use_underline">True</property> <property name="active">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - <child> - <placeholder/> - </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label70"> + <child type="label"> + <object class="GtkLabel" id="label70"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Misc</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">3</property> </packing> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label71"> + <child type="tab"> + <object class="GtkLabel" id="label71"> <property name="visible">True</property> <property name="label" translatable="yes">General</property> - </widget> + </object> <packing> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox20"> + <object class="GtkVBox" id="vbox_network"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame18"> + <object class="GtkFrame" id="frame18"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment22"> + <object class="GtkAlignment" id="alignment22"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkTable" id="table7"> + <object class="GtkTable" id="table7"> <property name="visible">True</property> <property name="n_rows">4</property> <property name="n_columns">2</property> <property name="column_spacing">3</property> <property name="row_spacing">3</property> <child> - <widget class="GtkEntry" id="entryProxyUser"> + <object class="GtkEntry" id="entryProxyUser"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">If your proxy server requires authentication, enter your username here.</property> <property name="invisible_char">●</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -484,13 +465,9 @@ </packing> </child> <child> - <widget class="GtkComboBox" id="comboProxyType"> + <object class="GtkComboBox" id="comboProxyType"> <property name="visible">True</property> - <property name="items" translatable="yes">No proxy -Simple proxy -Basic authentication -NTLM authentication</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -498,24 +475,23 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox18"> + <object class="GtkHBox" id="hbox18"> <property name="visible">True</property> <child> - <widget class="GtkEntry" id="entryProxyHost"> + <object class="GtkEntry" id="entryProxyHost"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Host name of your proxy server.</property> <property name="invisible_char">●</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkLabel" id="label72"> + <object class="GtkLabel" id="label72"> <property name="visible">True</property> <property name="label" translatable="yes">:</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -523,19 +499,18 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkEntry" id="entryProxyPort"> + <object class="GtkEntry" id="entryProxyPort"> <property name="width_request">64</property> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Port number to connect to on proxy server.</property> <property name="invisible_char">●</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -545,13 +520,12 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkEntry" id="entryProxyPassword"> + <object class="GtkEntry" id="entryProxyPassword"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">If your proxy server requires authentication, enter your password here.</property> <property name="visibility">False</property> <property name="invisible_char">●</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -561,11 +535,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label75"> + <object class="GtkLabel" id="label75"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Host</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> @@ -574,22 +548,22 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label76"> + <object class="GtkLabel" id="label76"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Proxy type</property> - </widget> + </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label74"> + <object class="GtkLabel" id="label74"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Username</property> - </widget> + </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> @@ -598,11 +572,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label73"> + <object class="GtkLabel" id="label73"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Password</property> - </widget> + </object> <packing> <property name="top_attach">3</property> <property name="bottom_attach">4</property> @@ -610,38 +584,35 @@ NTLM authentication</property> <property name="y_options"></property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label77"> + <child type="label"> + <object class="GtkLabel" id="label77"> <property name="visible">True</property> <property name="label" translatable="yes"><b>HTTP Proxy</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame19"> + <object class="GtkFrame" id="frame19"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment23"> + <object class="GtkAlignment" id="alignment23"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkTable" id="table8"> + <object class="GtkTable" id="table8"> <property name="visible">True</property> <property name="border_width">3</property> <property name="n_rows">3</property> @@ -649,13 +620,12 @@ NTLM authentication</property> <property name="column_spacing">3</property> <property name="row_spacing">3</property> <child> - <widget class="GtkSpinButton" id="spinMaxFetchers"> + <object class="GtkSpinButton" id="spinMaxFetchers"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Maximum number of concurrent items to fetch at once.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -663,13 +633,12 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinFetchesPerHost"> + <object class="GtkSpinButton" id="spinFetchesPerHost"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Maximum number of item fetches per web server.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -679,13 +648,12 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinCachedConnections"> + <object class="GtkSpinButton" id="spinCachedConnections"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Number of connections to keep incase they are needed again.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -695,21 +663,21 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label78"> + <object class="GtkLabel" id="label78"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Maximum fetchers</property> - </widget> + </object> <packing> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label79"> + <object class="GtkLabel" id="label79"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Fetches per host</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> @@ -717,11 +685,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label80"> + <object class="GtkLabel" id="label80"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Cached connections</property> - </widget> + </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> @@ -737,218 +705,206 @@ NTLM authentication</property> <child> <placeholder/> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label81"> + <child type="label"> + <object class="GtkLabel" id="label81"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Fetching</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label82"> + <child type="tab"> + <object class="GtkLabel" id="label82"> <property name="visible">True</property> <property name="label" translatable="yes">Network</property> - </widget> + </object> <packing> <property name="position">1</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox21"> + <object class="GtkVBox" id="vbox_rendering"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame20"> + <object class="GtkFrame" id="frame20"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment24"> + <object class="GtkAlignment" id="alignment24"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox2"> + <object class="GtkVBox" id="vbox2"> <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="checkResampleImages"> + <object class="GtkCheckButton" id="checkResampleImages"> <property name="label" translatable="yes">Resample images when not at natural size</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Resample images when not at natural size</property> <property name="use_underline">True</property> <property name="active">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label83"> + <child type="label"> + <object class="GtkLabel" id="label83"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Quality</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame21"> + <object class="GtkFrame" id="frame21"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment25"> + <object class="GtkAlignment" id="alignment25"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox23"> + <object class="GtkVBox" id="vbox23"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox19"> + <object class="GtkHBox" id="hbox19"> <property name="visible">True</property> <child> - <widget class="GtkLabel" id="label84"> + <object class="GtkLabel" id="label84"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Limit speed to</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinAnimationSpeed"> + <object class="GtkSpinButton" id="spinAnimationSpeed"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Do not update animations any more often than this.</property> - <property name="adjustment">0 0 100 0.10000000149 1 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> <property name="digits">1</property> <property name="numeric">True</property> <property name="update_policy">if-valid</property> - </widget> + </object> <packing> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkLabel" id="label85"> + <object class="GtkLabel" id="label85"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">seconds between frames</property> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkDisableAnimations"> + <object class="GtkCheckButton" id="checkDisableAnimations"> <property name="label" translatable="yes">Disable animations</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Display only the first frame of animated images.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label86"> + <child type="label"> + <object class="GtkLabel" id="label86"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Animations</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label87"> + <child type="tab"> + <object class="GtkLabel" id="label87"> <property name="visible">True</property> <property name="label" translatable="yes">Rendering</property> - </widget> + </object> <packing> <property name="position">2</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox24"> + <object class="GtkVBox" id="vbox_style"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame22"> + <object class="GtkFrame" id="frame22"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment26"> + <object class="GtkAlignment" id="alignment26"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkTable" id="table9"> + <object class="GtkTable" id="table9"> <property name="visible">True</property> <property name="border_width">2</property> <property name="n_rows">6</property> @@ -956,13 +912,13 @@ NTLM authentication</property> <property name="column_spacing">3</property> <property name="row_spacing">3</property> <child> - <widget class="GtkFontButton" id="fontSansSerif"> + <object class="GtkFontButton" id="fontSansSerif"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="show_style">False</property> <property name="show_size">False</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -970,22 +926,22 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label88"> + <object class="GtkLabel" id="label88"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Sans-serif</property> - </widget> + </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> <child> - <widget class="GtkLabel" id="label89"> + <object class="GtkLabel" id="label89"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Serif</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> @@ -994,11 +950,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label90"> + <object class="GtkLabel" id="label90"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Monospace</property> - </widget> + </object> <packing> <property name="top_attach">2</property> <property name="bottom_attach">3</property> @@ -1007,11 +963,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label91"> + <object class="GtkLabel" id="label91"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Cursive</property> - </widget> + </object> <packing> <property name="top_attach">3</property> <property name="bottom_attach">4</property> @@ -1020,11 +976,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label92"> + <object class="GtkLabel" id="label92"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Fantasy</property> - </widget> + </object> <packing> <property name="top_attach">4</property> <property name="bottom_attach">5</property> @@ -1033,11 +989,11 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkLabel" id="label93"> + <object class="GtkLabel" id="label93"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Default</property> - </widget> + </object> <packing> <property name="top_attach">5</property> <property name="bottom_attach">6</property> @@ -1046,13 +1002,13 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkFontButton" id="fontSerif"> + <object class="GtkFontButton" id="fontSerif"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="show_style">False</property> <property name="show_size">False</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1063,13 +1019,13 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkFontButton" id="fontMonospace"> + <object class="GtkFontButton" id="fontMonospace"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="show_style">False</property> <property name="show_size">False</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1080,13 +1036,13 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkFontButton" id="fontCursive"> + <object class="GtkFontButton" id="fontCursive"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="show_style">False</property> <property name="show_size">False</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1097,13 +1053,13 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkFontButton" id="fontFantasy"> + <object class="GtkFontButton" id="fontFantasy"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="show_style">False</property> <property name="show_size">False</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1114,14 +1070,9 @@ NTLM authentication</property> </packing> </child> <child> - <widget class="GtkComboBox" id="comboDefault"> + <object class="GtkComboBox" id="comboDefault"> <property name="visible">True</property> - <property name="items" translatable="yes">Sans-serif -Serif -Monospace -Cursive -Fantasy</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1131,75 +1082,71 @@ Fantasy</property> <property name="y_options"></property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label94"> + <child type="label"> + <object class="GtkLabel" id="label94"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Font faces</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame23"> + <object class="GtkFrame" id="frame23"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment27"> + <object class="GtkAlignment" id="alignment27"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkTable" id="table10"> + <object class="GtkTable" id="table10"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">4</property> <property name="column_spacing">3</property> <property name="row_spacing">3</property> <child> - <widget class="GtkButton" id="fontPreview"> + <object class="GtkButton" id="fontPreview"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">View the changes in the browser window immediately.</property> <child> - <widget class="GtkHBox" id="hbox3"> + <object class="GtkHBox" id="hbox3"> <property name="visible">True</property> <property name="border_width">2</property> <child> - <widget class="GtkImage" id="image1"> + <object class="GtkImage" id="image1"> <property name="visible">True</property> <property name="stock">gtk-apply</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkLabel" id="label1"> + <object class="GtkLabel" id="label1"> <property name="visible">True</property> <property name="label" translatable="yes">_Preview</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="left_attach">3</property> <property name="right_attach">4</property> @@ -1210,13 +1157,12 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinDefaultSize"> + <object class="GtkSpinButton" id="spinDefaultSize"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">The base-line font size to use.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1225,13 +1171,12 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMinimumSize"> + <object class="GtkSpinButton" id="spinMinimumSize"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Do not allow text to be displayed any smaller than this.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1242,11 +1187,11 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkLabel" id="label97"> + <object class="GtkLabel" id="label97"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">pt</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> @@ -1254,11 +1199,11 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkLabel" id="label98"> + <object class="GtkLabel" id="label98"> <property name="visible">True</property> <property name="xalign">0</property> <property name="label" translatable="yes">pt</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> @@ -1268,11 +1213,11 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkLabel" id="label96"> + <object class="GtkLabel" id="label96"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Minimum</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> @@ -1281,59 +1226,52 @@ Fantasy</property> </packing> </child> <child> - <widget class="GtkLabel" id="label95"> + <object class="GtkLabel" id="label95"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Default</property> - </widget> + </object> <packing> <property name="x_options">GTK_FILL</property> <property name="y_options"></property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label99"> + <child type="label"> + <object class="GtkLabel" id="label99"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Font size</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame6"> + <object class="GtkFrame" id="frame6"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment6"> + <object class="GtkAlignment" id="alignment6"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkTable" id="table3"> + <object class="GtkTable" id="table3"> <property name="visible">True</property> <property name="n_columns">2</property> <property name="column_spacing">10</property> <property name="row_spacing">3</property> <child> - <widget class="GtkComboBox" id="comboButtonType"> + <object class="GtkComboBox" id="comboButtonType"> <property name="visible">True</property> - <property name="items" translatable="yes">Small icons -Large icons -Large icons and text -Text only</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -1342,75 +1280,72 @@ Text only</property> </packing> </child> <child> - <widget class="GtkLabel" id="label19"> + <object class="GtkLabel" id="label19"> <property name="visible">True</property> <property name="label" translatable="yes">Toolbar buttons</property> <property name="justify">right</property> - </widget> + </object> <packing> <property name="x_options"></property> <property name="y_options">GTK_FILL</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label18"> + <child type="label"> + <object class="GtkLabel" id="label18"> <property name="visible">True</property> <property name="xpad">5</property> <property name="label" translatable="yes"><b>Icons</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="position">3</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label100"> + <child type="tab"> + <object class="GtkLabel" id="label100"> <property name="visible">True</property> <property name="label" translatable="yes">Style</property> - </widget> + </object> <packing> <property name="position">3</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox25"> + <object class="GtkVBox" id="vbox_cache"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame24"> + <object class="GtkFrame" id="frame24"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment28"> + <object class="GtkAlignment" id="alignment28"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox20"> + <object class="GtkHBox" id="hbox20"> <property name="visible">True</property> <property name="border_width">2</property> <property name="spacing">6</property> <child> - <widget class="GtkLabel" id="label101"> + <object class="GtkLabel" id="label101"> <property name="visible">True</property> <property name="label" translatable="yes">Size</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1418,13 +1353,12 @@ Text only</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMemoryCacheSize"> + <object class="GtkSpinButton" id="spinMemoryCacheSize"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">How much memory to use for caching recently viewed objects in memory.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1432,31 +1366,28 @@ Text only</property> </packing> </child> <child> - <widget class="GtkLabel" id="label102"> + <object class="GtkLabel" id="label102"> <property name="visible">True</property> <property name="label" translatable="yes">MB</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label103"> + <child type="label"> + <object class="GtkLabel" id="label103"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Memory cache</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1464,28 +1395,29 @@ Text only</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame25"> + <object class="GtkFrame" id="frame25"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment29"> + <object class="GtkAlignment" id="alignment29"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox26"> + <object class="GtkVBox" id="vbox26"> <property name="visible">True</property> + <property name="orientation">vertical</property> <property name="spacing">5</property> <child> - <widget class="GtkHBox" id="hbox21"> + <object class="GtkHBox" id="hbox21"> <property name="visible">True</property> <property name="spacing">3</property> <child> - <widget class="GtkLabel" id="label104"> + <object class="GtkLabel" id="label104"> <property name="visible">True</property> <property name="label" translatable="yes">Duration</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1493,13 +1425,12 @@ Text only</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinDiscCacheAge"> + <object class="GtkSpinButton" id="spinDiscCacheAge"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">How long to keep cached items around on disc.</property> - <property name="adjustment">1 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1507,23 +1438,23 @@ Text only</property> </packing> </child> <child> - <widget class="GtkLabel" id="label105"> + <object class="GtkLabel" id="label105"> <property name="visible">True</property> <property name="label" translatable="yes">days</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox22"> + <object class="GtkHBox" id="hbox22"> <property name="visible">True</property> <property name="border_width">4</property> <property name="spacing">4</property> @@ -1531,25 +1462,24 @@ Text only</property> <placeholder/> </child> <child> - <widget class="GtkButton" id="button4"> + <object class="GtkButton" id="button4"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Flush cached items that are older than the maximum permitted age.</property> <child> - <widget class="GtkAlignment" id="alignment30"> + <object class="GtkAlignment" id="alignment30"> <property name="visible">True</property> <property name="xscale">0</property> <property name="yscale">0</property> <child> - <widget class="GtkHBox" id="hbox23"> + <object class="GtkHBox" id="hbox23"> <property name="visible">True</property> <property name="spacing">2</property> <child> - <widget class="GtkImage" id="image399"> + <object class="GtkImage" id="image399"> <property name="visible">True</property> <property name="stock">gtk-delete</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1557,23 +1487,23 @@ Text only</property> </packing> </child> <child> - <widget class="GtkLabel" id="label106"> + <object class="GtkLabel" id="label106"> <property name="visible">True</property> <property name="sensitive">False</property> <property name="label" translatable="yes">Perform maintainance</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1583,90 +1513,86 @@ Text only</property> <child> <placeholder/> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label107"> + <child type="label"> + <object class="GtkLabel" id="label107"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Disc cache</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">4</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label108"> + <child type="tab"> + <object class="GtkLabel" id="label108"> <property name="visible">True</property> <property name="label" translatable="yes">Cache</property> - </widget> + </object> <packing> <property name="position">4</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox_advanced"> + <object class="GtkVBox" id="vbox_advanced"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame_downloads"> + <object class="GtkFrame" id="frame_downloads"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment1"> + <object class="GtkAlignment" id="alignment1"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox4"> + <object class="GtkVBox" id="vbox4"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkCheckButton" id="checkClearDownloads"> + <object class="GtkCheckButton" id="checkClearDownloads"> <property name="label" translatable="yes">Automatically clear downloads when completed</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Erase the download from the list as soon as it completes.</property> <property name="use_underline">True</property> <property name="active">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkRequestOverwrite"> + <object class="GtkCheckButton" id="checkRequestOverwrite"> <property name="label" translatable="yes">Request confirmation before overwriting files</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Ask before overwriting files when downloading.</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1674,14 +1600,14 @@ Text only</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox2"> + <object class="GtkHBox" id="hbox2"> <property name="visible">True</property> <child> - <widget class="GtkLabel" id="label4"> + <object class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="xpad">2</property> <property name="label" translatable="yes">Download directory</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1690,62 +1616,60 @@ Text only</property> </packing> </child> <child> - <widget class="GtkFileChooserButton" id="fileChooserDownloads"> + <object class="GtkFileChooserButton" id="fileChooserDownloads"> <property name="visible">True</property> - <property name="show_hidden">True</property> <property name="action">select-folder</property> + <property name="show_hidden">True</property> <property name="width_chars">25</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label3"> + <child type="label"> + <object class="GtkLabel" id="label3"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Downloads</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame_tabs"> + <object class="GtkFrame" id="frame_tabs"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment8"> + <object class="GtkAlignment" id="alignment8"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="advanced_tabs_vbox"> + <object class="GtkVBox" id="advanced_tabs_vbox"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkCheckButton" id="checkShowSingleTab"> + <object class="GtkCheckButton" id="checkShowSingleTab"> <property name="label" translatable="yes">Show tab bar with only one tab</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1753,41 +1677,41 @@ Text only</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkFocusNew"> + <object class="GtkCheckButton" id="checkFocusNew"> <property name="label" translatable="yes">Shift focus to new tab</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkNewBlank"> + <object class="GtkCheckButton" id="checkNewBlank"> <property name="label" translatable="yes">Open blank window</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox10"> + <object class="GtkHBox" id="hbox10"> <property name="visible">True</property> <child> - <widget class="GtkLabel" id="label26"> + <object class="GtkLabel" id="label26"> <property name="visible">True</property> <property name="xalign">0.4699999988079071</property> <property name="xpad">2</property> <property name="label" translatable="yes">Tabs position</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1796,56 +1720,49 @@ Text only</property> </packing> </child> <child> - <widget class="GtkComboBox" id="comboTabPosition"> + <object class="GtkComboBox" id="comboTabPosition"> <property name="visible">True</property> - <property name="items" translatable="yes">Top -Left -Right -Bottom</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="position">3</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label21"> + <child type="label"> + <object class="GtkLabel" id="label21"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Tabs</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame_view_source"> + <object class="GtkFrame" id="frame_view_source"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment10"> + <object class="GtkAlignment" id="alignment10"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox11"> + <object class="GtkHBox" id="hbox11"> <property name="visible">True</property> <child> - <widget class="GtkRadioButton" id="sourceButtonWindow"> + <object class="GtkRadioButton" id="sourceButtonWindow"> <property name="label" translatable="yes">in own window </property> <property name="visible">True</property> <property name="can_focus">True</property> @@ -1853,7 +1770,7 @@ Bottom</property> <property name="use_underline">True</property> <property name="active">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1861,35 +1778,32 @@ Bottom</property> </packing> </child> <child> - <widget class="GtkRadioButton" id="sourceButtonTab"> + <object class="GtkRadioButton" id="sourceButtonTab"> <property name="label" translatable="yes">in new tab</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label24"> + <child type="label"> + <object class="GtkLabel" id="label24"> <property name="visible">True</property> <property name="label" translatable="yes"><b>View Source</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1897,86 +1811,62 @@ Bottom</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame_search"> + <object class="GtkFrame" id="frame_search"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment9"> + <object class="GtkAlignment" id="alignment9"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox9"> + <object class="GtkHBox" id="hbox9"> <property name="visible">True</property> <child> - <widget class="GtkCheckButton" id="checkUrlSearch"> + <object class="GtkCheckButton" id="checkUrlSearch"> <property name="label" translatable="yes">Search from URL bar </property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkLabel" id="label23"> + <object class="GtkLabel" id="label23"> <property name="visible">True</property> <property name="label" translatable="yes">Default provider</property> <property name="justify">right</property> - </widget> + </object> <packing> <property name="fill">False</property> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkComboBox" id="comboSearch"> - <property name="visible">True</property> - <property name="items" translatable="yes">Google -Yahoo! -Microsoft live -Business.com -Omgili -BBC News -Ubuntu packages -Creative commons -Ask -Answers -Dictionary.com -Youtube -AeroMp3 -AOL -Baidu -Amazon -Ebay -IMDB -Espn -Wikipedia -DuckDuckGo</property> - </widget> + <object class="GtkComboBox" id="comboSearch"> + <property name="visible">True</property> + </object> <packing> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label22"> + <child type="label"> + <object class="GtkLabel" id="label22"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Search</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -1984,28 +1874,28 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame_select_themes"> + <object class="GtkFrame" id="frame_select_themes"> <property name="visible">True</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment11"> + <object class="GtkAlignment" id="alignment11"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="themehbox"> + <object class="GtkHBox" id="themehbox"> <property name="visible">True</property> <child> <placeholder/> </child> <child> - <widget class="GtkButton" id="buttonaddtheme"> + <object class="GtkButton" id="buttonaddtheme"> <property name="label" translatable="yes">Add theme…</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2013,71 +1903,68 @@ DuckDuckGo</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label25"> + <child type="label"> + <object class="GtkLabel" id="label25"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Select themes</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">4</property> </packing> </child> - </widget> + </object> <packing> <property name="position">5</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label109"> + <child type="tab"> + <object class="GtkLabel" id="label109"> <property name="visible">True</property> <property name="label" translatable="yes">Advanced</property> - </widget> + </object> <packing> <property name="position">5</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox5"> + <object class="GtkVBox" id="vbox_export"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkFrame" id="frame2"> + <object class="GtkFrame" id="frame2"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment2"> + <object class="GtkAlignment" id="alignment2"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox4"> + <object class="GtkHBox" id="hbox4"> <property name="visible">True</property> <property name="homogeneous">True</property> <child> - <widget class="GtkTable" id="table1"> + <object class="GtkTable" id="table1"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">3</property> <property name="column_spacing">4</property> <property name="row_spacing">5</property> <child> - <widget class="GtkLabel" id="label10"> + <object class="GtkLabel" id="label10"> <property name="visible">True</property> <property name="label" translatable="yes">mm</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> @@ -2086,23 +1973,22 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkLabel" id="label9"> + <object class="GtkLabel" id="label9"> <property name="visible">True</property> <property name="label" translatable="yes">mm</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMarginBottom"> + <object class="GtkSpinButton" id="spinMarginBottom"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Set the bottom margin</property> - <property name="adjustment">0 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -2111,37 +1997,36 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMarginTop"> + <object class="GtkSpinButton" id="spinMarginTop"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Set the top margin</property> - <property name="adjustment">0 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> </packing> </child> <child> - <widget class="GtkLabel" id="label6"> + <object class="GtkLabel" id="label6"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Bottom</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkLabel" id="label5"> + <object class="GtkLabel" id="label5"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Top</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2149,17 +2034,17 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkTable" id="table2"> + <object class="GtkTable" id="table2"> <property name="visible">True</property> <property name="n_rows">2</property> <property name="n_columns">3</property> <property name="column_spacing">4</property> <property name="row_spacing">5</property> <child> - <widget class="GtkLabel" id="label12"> + <object class="GtkLabel" id="label12"> <property name="visible">True</property> <property name="label" translatable="yes">mm</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> @@ -2168,23 +2053,22 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkLabel" id="label11"> + <object class="GtkLabel" id="label11"> <property name="visible">True</property> <property name="label" translatable="yes">mm</property> - </widget> + </object> <packing> <property name="left_attach">2</property> <property name="right_attach">3</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMarginRight"> + <object class="GtkSpinButton" id="spinMarginRight"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Set the right margin</property> - <property name="adjustment">0 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> @@ -2193,95 +2077,90 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinMarginLeft"> + <object class="GtkSpinButton" id="spinMarginLeft"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Set the left margin</property> - <property name="adjustment">0 0 100 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="left_attach">1</property> <property name="right_attach">2</property> </packing> </child> <child> - <widget class="GtkLabel" id="label8"> + <object class="GtkLabel" id="label8"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Right</property> - </widget> + </object> <packing> <property name="top_attach">1</property> <property name="bottom_attach">2</property> </packing> </child> <child> - <widget class="GtkLabel" id="label7"> + <object class="GtkLabel" id="label7"> <property name="visible">True</property> <property name="xalign">0.89999997615814209</property> <property name="label" translatable="yes">Left</property> - </widget> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="frame"> + <child type="label"> + <object class="GtkLabel" id="frame"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Margins</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame3"> + <object class="GtkFrame" id="frame3"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment3"> + <object class="GtkAlignment" id="alignment3"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkHBox" id="hbox5"> + <object class="GtkHBox" id="hbox5"> <property name="visible">True</property> <property name="spacing">4</property> <child> - <widget class="GtkLabel" id="label14"> + <object class="GtkLabel" id="label14"> <property name="visible">True</property> <property name="label" translatable="yes">Scale</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkSpinButton" id="spinExportScale"> + <object class="GtkSpinButton" id="spinExportScale"> <property name="visible">True</property> <property name="can_focus">True</property> - <property name="tooltip" translatable="yes">Set the scaling for the document - this way more content can fit in a page</property> - <property name="adjustment">0 0 1000 1 10 0</property> + <property name="adjustment"></property> <property name="climb_rate">1</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2289,30 +2168,27 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkLabel" id="label15"> + <object class="GtkLabel" id="label15"> <property name="visible">True</property> <property name="label" translatable="yes">%</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label13"> + <child type="label"> + <object class="GtkLabel" id="label13"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Scaling</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2320,131 +2196,127 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame4"> + <object class="GtkFrame" id="frame4"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment4"> + <object class="GtkAlignment" id="alignment4"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox6"> + <object class="GtkVBox" id="vbox6"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkCheckButton" id="checkSuppressImages"> + <object class="GtkCheckButton" id="checkSuppressImages"> <property name="label" translatable="yes">Suppress images</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkRemoveBackgrounds"> + <object class="GtkCheckButton" id="checkRemoveBackgrounds"> <property name="label" translatable="yes">Remove backgrounds</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkFitPage"> + <object class="GtkCheckButton" id="checkFitPage"> <property name="label" translatable="yes">Fit page</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">2</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label16"> + <child type="label"> + <object class="GtkLabel" id="label16"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Appearance</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="fill">False</property> <property name="position">2</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame5"> + <object class="GtkFrame" id="frame5"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <property name="shadow_type">none</property> <child> - <widget class="GtkAlignment" id="alignment5"> + <object class="GtkAlignment" id="alignment5"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkVBox" id="vbox7"> + <object class="GtkVBox" id="vbox7"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkCheckButton" id="checkCompressPDF"> + <object class="GtkCheckButton" id="checkCompressPDF"> <property name="label" translatable="yes">Compress PDF</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">0</property> </packing> </child> <child> - <widget class="GtkCheckButton" id="checkPasswordPDF"> + <object class="GtkCheckButton" id="checkPasswordPDF"> <property name="label" translatable="yes">Set a password for PDF</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_underline">True</property> <property name="draw_indicator">True</property> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label17"> + <child type="label"> + <object class="GtkLabel" id="label17"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Advanced</b></property> <property name="use_markup">True</property> - </widget> - <packing> - <property name="type">label_item</property> - </packing> + </object> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2452,64 +2324,62 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkHBox" id="hbox7"> + <object class="GtkHBox" id="hbox7"> <property name="visible">True</property> <property name="border_width">10</property> <child> - <widget class="GtkButton" id="setDefaultExportOptions"> + <object class="GtkButton" id="setDefaultExportOptions"> <property name="label" translatable="yes">Default</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> - <property name="tooltip" translatable="yes">Reset export settings to defaults</property> <property name="use_underline">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">0</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="position">4</property> </packing> </child> - </widget> + </object> <packing> <property name="position">6</property> </packing> </child> - <child> - <widget class="GtkLabel" id="label2"> + <child type="tab"> + <object class="GtkLabel" id="label2"> <property name="visible">True</property> <property name="label" translatable="yes">Export</property> - </widget> + </object> <packing> <property name="position">6</property> <property name="tab_fill">False</property> - <property name="type">tab</property> </packing> </child> - </widget> + </object> <packing> <property name="position">1</property> </packing> </child> <child internal-child="action_area"> - <widget class="GtkHButtonBox" id="dialog-action_area7"> + <object class="GtkHButtonBox" id="dialog-action_area7"> <property name="visible">True</property> <property name="layout_style">edge</property> <child> - <widget class="GtkButton" id="help"> + <object class="GtkButton" id="help"> <property name="label">gtk-help</property> <property name="visible">True</property> <property name="sensitive">False</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_stock">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> @@ -2517,28 +2387,31 @@ DuckDuckGo</property> </packing> </child> <child> - <widget class="GtkButton" id="close"> + <object class="GtkButton" id="close"> <property name="label">gtk-close</property> - <property name="response_id">-7</property> <property name="visible">True</property> <property name="can_focus">True</property> <property name="receives_default">False</property> <property name="use_stock">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> <property name="position">1</property> </packing> </child> - </widget> + </object> <packing> <property name="expand">False</property> <property name="pack_type">end</property> <property name="position">0</property> </packing> </child> - </widget> + </object> </child> - </widget> -</glade-interface> + <action-widgets> + <action-widget response="0">help</action-widget> + <action-widget response="-7">close</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/options.gtk3.ui b/gtk/res/options.gtk3.ui new file mode 100644 index 000000000..b6254a34d --- /dev/null +++ b/gtk/res/options.gtk3.ui @@ -0,0 +1,2709 @@ +<?xml version="1.0"?> +<interface> + <object class="GtkAdjustment" id="adjustment1"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">14</property> + </object> + <object class="GtkAdjustment" id="adjustment10"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment11"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment12"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment13"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment14"> + <property name="upper">1000</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment2"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment3"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment4"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment5"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">1</property> + <property name="step_increment">0.10000000149</property> + <property name="page_size">0</property> + <property name="value">0</property> + </object> + <object class="GtkAdjustment" id="adjustment6"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment7"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment8"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkAdjustment" id="adjustment9"> + <property name="upper">100</property> + <property name="lower">0</property> + <property name="page_increment">10</property> + <property name="step_increment">1</property> + <property name="page_size">0</property> + <property name="value">1</property> + </object> + <object class="GtkListStore" id="model1"> + <columns> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">No proxy</col> + </row> + <row> + <col id="0" translatable="yes">Simple proxy</col> + </row> + <row> + <col id="0" translatable="yes">Basic authentication</col> + </row> + <row> + <col id="0" translatable="yes">NTLM authentication</col> + </row> + </data> + </object> + <object class="GtkListStore" id="model2"> + <columns> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Sans-serif</col> + </row> + <row> + <col id="0" translatable="yes">Serif</col> + </row> + <row> + <col id="0" translatable="yes">Monospace</col> + </row> + <row> + <col id="0" translatable="yes">Cursive</col> + </row> + <row> + <col id="0" translatable="yes">Fantasy</col> + </row> + </data> + </object> + <object class="GtkListStore" id="model3"> + <columns> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Small icons</col> + </row> + <row> + <col id="0" translatable="yes">Large icons</col> + </row> + <row> + <col id="0" translatable="yes">Large icons and text</col> + </row> + <row> + <col id="0" translatable="yes">Text only</col> + </row> + </data> + </object> + <object class="GtkListStore" id="model4"> + <columns> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Top</col> + </row> + <row> + <col id="0" translatable="yes">Left</col> + </row> + <row> + <col id="0" translatable="yes">Right</col> + </row> + <row> + <col id="0" translatable="yes">Bottom</col> + </row> + </data> + </object> + <object class="GtkListStore" id="model5"> + <columns> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">Google</col> + </row> + <row> + <col id="0" translatable="yes">Yahoo!</col> + </row> + <row> + <col id="0" translatable="yes">Microsoft live</col> + </row> + <row> + <col id="0" translatable="yes">Business.com</col> + </row> + <row> + <col id="0" translatable="yes">Omgili</col> + </row> + <row> + <col id="0" translatable="yes">BBC News</col> + </row> + <row> + <col id="0" translatable="yes">Ubuntu packages</col> + </row> + <row> + <col id="0" translatable="yes">Creative commons</col> + </row> + <row> + <col id="0" translatable="yes">Ask</col> + </row> + <row> + <col id="0" translatable="yes">Answers</col> + </row> + <row> + <col id="0" translatable="yes">Dictionary.com</col> + </row> + <row> + <col id="0" translatable="yes">Youtube</col> + </row> + <row> + <col id="0" translatable="yes">AeroMp3</col> + </row> + <row> + <col id="0" translatable="yes">AOL</col> + </row> + <row> + <col id="0" translatable="yes">Baidu</col> + </row> + <row> + <col id="0" translatable="yes">Amazon</col> + </row> + <row> + <col id="0" translatable="yes">Ebay</col> + </row> + <row> + <col id="0" translatable="yes">IMDB</col> + </row> + <row> + <col id="0" translatable="yes">Espn</col> + </row> + <row> + <col id="0" translatable="yes">Wikipedia</col> + </row> + <row> + <col id="0" translatable="yes">DuckDuckGo</col> + </row> + </data> + </object> + <!-- interface-requires gtk+ 2.6 --> + <!-- interface-naming-policy toplevel-contextual --> + <object class="GtkDialog" id="dlgPreferences"> + <property name="border_width">5</property> + <property name="title" translatable="yes">Netsurf Preferences</property> + <property name="window_position">center-on-parent</property> + <property name="destroy_with_parent">True</property> + <property name="type_hint">dialog</property> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox6"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkNotebook" id="notebook2"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="border_width">4</property> + <child> + <object class="GtkVBox" id="vbox16"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame14"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment18"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox16"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="spacing">5</property> + <child> + <object class="GtkLabel" id="label64"> + <property name="visible">True</property> + <property name="label" translatable="yes">URL</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryHomePageURL"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">The page to visit when the Home button is pressed, or a new window is opened.</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="spacing">5</property> + <child> + <object class="GtkButton" id="setCurrentPage"> + <property name="label" translatable="yes">Current Page</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="padding">5</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="setDefaultPage"> + <property name="label" translatable="yes">Default Page</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="padding">5</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label65"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Home page</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox6"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame15"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment19"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox17"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkCheckButton" id="checkHideAdverts"> + <property name="label" translatable="yes">Hide advertisements</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Attempt to hide images from known advertisement servers.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkDisablePopups"> + <property name="label" translatable="yes">Disable pop-up windows</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Stop pop-up windows normally containing adverts appearing.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkDisablePlugins"> + <property name="label" translatable="yes">Disable plug-ins</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Do not allow embedded applets or plugins.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label66"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Content blocking</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame7"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment7"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox8"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkVBox" id="combolanguagevbox"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label20"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Content Language</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame16"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment20"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox18"> + <property name="visible">True</property> + <property name="border_width">1</property> + <property name="spacing">2</property> + <child> + <object class="GtkHBox" id="hbox17"> + <property name="visible">True</property> + <property name="border_width">4</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label67"> + <property name="visible">True</property> + <property name="label" translatable="yes">Keep history for</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinHistoryAge"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Visited pages are kept in memory for this many days</property> + <property name="adjustment">adjustment1</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label68"> + <property name="visible">True</property> + <property name="label" translatable="yes">days</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkHoverURLs"> + <property name="label" translatable="yes">Hover URLs by pointer in local history</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Show a tooltip showing the URL of a page in the local history tree.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label69"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>History</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame17"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment21"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox19"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkCheckButton" id="checkDisplayRecentURLs"> + <property name="label" translatable="yes">Display recently visited URLs as you type</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Show a drop-down list of recent addresses when typing into the address bar.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkSendReferer"> + <property name="label" translatable="yes">Send site referral information</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">When requesting items or pages, tell the server what linked to them.</property> + <property name="use_underline">True</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label70"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Misc</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label71"> + <property name="visible">True</property> + <property name="label" translatable="yes">General</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox20"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame18"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment22"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkTable" id="table7"> + <property name="visible">True</property> + <property name="n_rows">4</property> + <property name="n_columns">2</property> + <property name="column_spacing">3</property> + <property name="row_spacing">3</property> + <child> + <object class="GtkEntry" id="entryProxyUser"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">If your proxy server requires authentication, enter your username here.</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboProxyType"> + <property name="visible">True</property> + <property name="model">model1</property> + <child> + <object class="GtkCellRendererText" id="renderer1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox18"> + <property name="visible">True</property> + <child> + <object class="GtkEntry" id="entryProxyHost"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Host name of your proxy server.</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label72"> + <property name="visible">True</property> + <property name="label" translatable="yes">:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryProxyPort"> + <property name="width_request">64</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Port number to connect to on proxy server.</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryProxyPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">If your proxy server requires authentication, enter your password here.</property> + <property name="visibility">False</property> + <property name="invisible_char">●</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label75"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Host</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label76"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Proxy type</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label74"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Username</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label73"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Password</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label77"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>HTTP Proxy</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame19"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment23"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkTable" id="table8"> + <property name="visible">True</property> + <property name="border_width">3</property> + <property name="n_rows">3</property> + <property name="n_columns">3</property> + <property name="column_spacing">3</property> + <property name="row_spacing">3</property> + <child> + <object class="GtkSpinButton" id="spinMaxFetchers"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Maximum number of concurrent items to fetch at once.</property> + <property name="adjustment">adjustment2</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinFetchesPerHost"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Maximum number of item fetches per web server.</property> + <property name="adjustment">adjustment3</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinCachedConnections"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Number of connections to keep incase they are needed again.</property> + <property name="adjustment">adjustment4</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label78"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Maximum fetchers</property> + </object> + <packing> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label79"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Fetches per host</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label80"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Cached connections</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="y_options"/> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label81"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Fetching</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label82"> + <property name="visible">True</property> + <property name="label" translatable="yes">Network</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox21"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame20"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment24"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox2"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkResampleImages"> + <property name="label" translatable="yes">Resample images when not at natural size</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Resample images when not at natural size</property> + <property name="use_underline">True</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label83"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Quality</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame21"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment25"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox23"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox19"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label84"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Limit speed to</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinAnimationSpeed"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Do not update animations any more often than this.</property> + <property name="adjustment">adjustment5</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <property name="update_policy">if-valid</property> + </object> + <packing> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label85"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">seconds between frames</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkDisableAnimations"> + <property name="label" translatable="yes">Disable animations</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Display only the first frame of animated images.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label86"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Animations</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label87"> + <property name="visible">True</property> + <property name="label" translatable="yes">Rendering</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox24"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame22"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment26"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkTable" id="table9"> + <property name="visible">True</property> + <property name="border_width">2</property> + <property name="n_rows">6</property> + <property name="n_columns">2</property> + <property name="column_spacing">3</property> + <property name="row_spacing">3</property> + <child> + <object class="GtkFontButton" id="fontSansSerif"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="show_style">False</property> + <property name="show_size">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label88"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Sans-serif</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label89"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Serif</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label90"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Monospace</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label91"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Cursive</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label92"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Fantasy</property> + </object> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label93"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Default</property> + </object> + <packing> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkFontButton" id="fontSerif"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="show_style">False</property> + <property name="show_size">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkFontButton" id="fontMonospace"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="show_style">False</property> + <property name="show_size">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkFontButton" id="fontCursive"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="show_style">False</property> + <property name="show_size">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkFontButton" id="fontFantasy"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="show_style">False</property> + <property name="show_size">False</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboDefault"> + <property name="visible">True</property> + <property name="model">model2</property> + <child> + <object class="GtkCellRendererText" id="renderer2"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">5</property> + <property name="bottom_attach">6</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label94"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Font faces</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame23"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment27"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkTable" id="table10"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">4</property> + <property name="column_spacing">3</property> + <property name="row_spacing">3</property> + <child> + <object class="GtkButton" id="fontPreview"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">View the changes in the browser window immediately.</property> + <child> + <object class="GtkHBox" id="hbox3"> + <property name="visible">True</property> + <property name="border_width">2</property> + <child> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="stock">gtk-apply</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="label" translatable="yes">_Preview</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + <packing> + <property name="left_attach">3</property> + <property name="right_attach">4</property> + <property name="bottom_attach">2</property> + <property name="x_options"/> + <property name="y_options"/> + <property name="x_padding">2</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinDefaultSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">The base-line font size to use.</property> + <property name="adjustment">adjustment6</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options"/> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMinimumSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Do not allow text to be displayed any smaller than this.</property> + <property name="adjustment">adjustment7</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options"/> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label97"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">pt</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label98"> + <property name="visible">True</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">pt</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label96"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Minimum</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label95"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Default</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + <property name="y_options"/> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label99"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Font size</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame6"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment6"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkTable" id="table3"> + <property name="visible">True</property> + <property name="n_columns">2</property> + <property name="column_spacing">10</property> + <property name="row_spacing">3</property> + <child> + <object class="GtkComboBox" id="comboButtonType"> + <property name="visible">True</property> + <property name="model">model3</property> + <child> + <object class="GtkCellRendererText" id="renderer3"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options"/> + <property name="y_options"/> + </packing> + </child> + <child> + <object class="GtkLabel" id="label19"> + <property name="visible">True</property> + <property name="label" translatable="yes">Toolbar buttons</property> + <property name="justify">right</property> + </object> + <packing> + <property name="x_options"/> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label18"> + <property name="visible">True</property> + <property name="xpad">5</property> + <property name="label" translatable="yes"><b>Icons</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label100"> + <property name="visible">True</property> + <property name="label" translatable="yes">Style</property> + </object> + <packing> + <property name="position">3</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox25"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame24"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment28"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox20"> + <property name="visible">True</property> + <property name="border_width">2</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label101"> + <property name="visible">True</property> + <property name="label" translatable="yes">Size</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMemoryCacheSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">How much memory to use for caching recently viewed objects in memory.</property> + <property name="adjustment">adjustment8</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label102"> + <property name="visible">True</property> + <property name="label" translatable="yes">MB</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label103"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Memory cache</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame25"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment29"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox26"> + <property name="visible">True</property> + <property name="spacing">5</property> + <child> + <object class="GtkHBox" id="hbox21"> + <property name="visible">True</property> + <property name="spacing">3</property> + <child> + <object class="GtkLabel" id="label104"> + <property name="visible">True</property> + <property name="label" translatable="yes">Duration</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinDiscCacheAge"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">How long to keep cached items around on disc.</property> + <property name="adjustment">adjustment9</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label105"> + <property name="visible">True</property> + <property name="label" translatable="yes">days</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox22"> + <property name="visible">True</property> + <property name="border_width">4</property> + <property name="spacing">4</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="button4"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Flush cached items that are older than the maximum permitted age.</property> + <child> + <object class="GtkAlignment" id="alignment30"> + <property name="visible">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <object class="GtkHBox" id="hbox23"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkImage" id="image399"> + <property name="visible">True</property> + <property name="stock">gtk-delete</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label106"> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="label" translatable="yes">Perform maintainance</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label107"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Disc cache</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label108"> + <property name="visible">True</property> + <property name="label" translatable="yes">Cache</property> + </object> + <packing> + <property name="position">4</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox_advanced"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame_downloads"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox4"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkClearDownloads"> + <property name="label" translatable="yes">Automatically clear downloads when completed</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Erase the download from the list as soon as it completes.</property> + <property name="use_underline">True</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkRequestOverwrite"> + <property name="label" translatable="yes">Request confirmation before overwriting files</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Ask before overwriting files when downloading.</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="xpad">2</property> + <property name="label" translatable="yes">Download directory</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">2</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFileChooserButton" id="fileChooserDownloads"> + <property name="visible">True</property> + <property name="show_hidden">True</property> + <property name="action">select-folder</property> + <property name="width_chars">25</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label3"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Downloads</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_tabs"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment8"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="advanced_tabs_vbox"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkShowSingleTab"> + <property name="label" translatable="yes">Show tab bar with only one tab</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkFocusNew"> + <property name="label" translatable="yes">Shift focus to new tab</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkNewBlank"> + <property name="label" translatable="yes">Open blank window</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox10"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label26"> + <property name="visible">True</property> + <property name="xalign">0.4699999988079071</property> + <property name="xpad">2</property> + <property name="label" translatable="yes">Tabs position</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">2</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboTabPosition"> + <property name="visible">True</property> + <property name="model">model4</property> + <child> + <object class="GtkCellRendererText" id="renderer4"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label21"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Tabs</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_view_source"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment10"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox11"> + <property name="visible">True</property> + <child> + <object class="GtkRadioButton" id="sourceButtonWindow"> + <property name="label" translatable="yes">in own window </property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="active">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkRadioButton" id="sourceButtonTab"> + <property name="label" translatable="yes">in new tab</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label24"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>View Source</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_search"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment9"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox9"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkUrlSearch"> + <property name="label" translatable="yes">Search from URL bar </property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label23"> + <property name="visible">True</property> + <property name="label" translatable="yes">Default provider</property> + <property name="justify">right</property> + </object> + <packing> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboSearch"> + <property name="visible">True</property> + <property name="model">model5</property> + <child> + <object class="GtkCellRendererText" id="renderer5"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label22"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Search</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_select_themes"> + <property name="visible">True</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment11"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="themehbox"> + <property name="visible">True</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="buttonaddtheme"> + <property name="label" translatable="yes">Add theme…</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label25"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Select themes</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">4</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label109"> + <property name="visible">True</property> + <property name="label" translatable="yes">Advanced</property> + </object> + <packing> + <property name="position">5</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox5"> + <property name="visible">True</property> + <child> + <object class="GtkFrame" id="frame2"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment2"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox4"> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <child> + <object class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">3</property> + <property name="column_spacing">4</property> + <property name="row_spacing">5</property> + <child> + <object class="GtkLabel" id="label10"> + <property name="visible">True</property> + <property name="label" translatable="yes">mm</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">mm</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginBottom"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Set the bottom margin</property> + <property name="adjustment">adjustment10</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginTop"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Set the top margin</property> + <property name="adjustment">adjustment11</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Bottom</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Top</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkTable" id="table2"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">3</property> + <property name="column_spacing">4</property> + <property name="row_spacing">5</property> + <child> + <object class="GtkLabel" id="label12"> + <property name="visible">True</property> + <property name="label" translatable="yes">mm</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label11"> + <property name="visible">True</property> + <property name="label" translatable="yes">mm</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginRight"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Set the right margin</property> + <property name="adjustment">adjustment12</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginLeft"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Set the left margin</property> + <property name="adjustment">adjustment13</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Right</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="xalign">0.89999997615814209</property> + <property name="label" translatable="yes">Left</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="frame"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Margins</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame3"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment3"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkHBox" id="hbox5"> + <property name="visible">True</property> + <property name="spacing">4</property> + <child> + <object class="GtkLabel" id="label14"> + <property name="visible">True</property> + <property name="label" translatable="yes">Scale</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinExportScale"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="tooltip-text" translatable="yes">Set the scaling for the document - this way more content can fit in a page</property> + <property name="adjustment">adjustment14</property> + <property name="climb_rate">1</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label15"> + <property name="visible">True</property> + <property name="label" translatable="yes">%</property> + </object> + <packing> + <property name="expand">False</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Scaling</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame4"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment4"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox6"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkSuppressImages"> + <property name="label" translatable="yes">Suppress images</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkRemoveBackgrounds"> + <property name="label" translatable="yes">Remove backgrounds</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkFitPage"> + <property name="label" translatable="yes">Fit page</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label16"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Appearance</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame5"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment5"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkVBox" id="vbox7"> + <property name="visible">True</property> + <child> + <object class="GtkCheckButton" id="checkCompressPDF"> + <property name="label" translatable="yes">Compress PDF</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkPasswordPDF"> + <property name="label" translatable="yes">Set a password for PDF</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_underline">True</property> + <property name="draw_indicator">True</property> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label17"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Advanced</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <property name="border_width">10</property> + <child> + <object class="GtkButton" id="setDefaultExportOptions"> + <property name="label" translatable="yes">Default</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="tooltip-text" translatable="yes">Reset export settings to defaults</property> + <property name="use_underline">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="position">4</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="label" translatable="yes">Export</property> + </object> + <packing> + <property name="position">6</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child internal-child="action_area"> + <object class="GtkHButtonBox" id="dialog-action_area7"> + <property name="visible">True</property> + <property name="layout_style">edge</property> + <child> + <object class="GtkButton" id="help"> + <property name="label">gtk-help</property> + <property name="visible">True</property> + <property name="sensitive">False</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="close"> + <property name="label">gtk-close</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">False</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="-7">close</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/password.glade b/gtk/res/password.glade deleted file mode 100644 index 27a16a085..000000000 --- a/gtk/res/password.glade +++ /dev/null @@ -1,443 +0,0 @@ -<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*--> -<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd"> - -<glade-interface> - -<widget class="GtkWindow" id="wndPDFPassword"> - <property name="title" translatable="yes">PDF Password</property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_CENTER</property> - <property name="modal">True</property> - <property name="resizable">True</property> - <property name="destroy_with_parent">False</property> - <property name="decorated">True</property> - <property name="skip_taskbar_hint">False</property> - <property name="skip_pager_hint">False</property> - <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> - <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> - <property name="focus_on_map">True</property> - <property name="urgency_hint">False</property> - - <child> - <widget class="GtkHBox" id="hbox1"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image1"> - <property name="visible">True</property> - <property name="icon_size">6</property> - <property name="icon_name">gtk-dialog-authentication</property> - <property name="xalign">0.5</property> - <property name="yalign">0.10000000149</property> - <property name="xpad">12</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkVBox" id="vbox1"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkHBox" id="hbox2"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label4"> - <property name="visible">True</property> - <property name="label" translatable="yes">Owner password</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.899999976158</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">15</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entryPDFOwnerPassword"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">False</property> - <property name="max_length">20</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">●</property> - <property name="activates_default">False</property> - <property name="width_chars">20</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox3"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label5"> - <property name="visible">True</property> - <property name="label" translatable="yes">Repeat password</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.899999976158</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">15</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entryPDFOwnerPassword1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">False</property> - <property name="max_length">20</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">●</property> - <property name="activates_default">False</property> - <property name="width_chars">20</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox4"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label6"> - <property name="visible">True</property> - <property name="label" translatable="yes">User password</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.899999976158</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">15</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entryPDFUserPassword"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">False</property> - <property name="max_length">20</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">●</property> - <property name="activates_default">False</property> - <property name="width_chars">20</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="hbox5"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="homogeneous">True</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="label7"> - <property name="visible">True</property> - <property name="label" translatable="yes">Repeat password</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.899999976158</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">15</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkEntry" id="entryPDFUserPassword1"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="editable">True</property> - <property name="visibility">False</property> - <property name="max_length">20</property> - <property name="text" translatable="yes"></property> - <property name="has_frame">True</property> - <property name="invisible_char">●</property> - <property name="activates_default">False</property> - <property name="width_chars">20</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkHButtonBox" id="hbuttonbox1"> - <property name="border_width">5</property> - <property name="visible">True</property> - <property name="layout_style">GTK_BUTTONBOX_END</property> - <property name="spacing">10</property> - - <child> - <widget class="GtkButton" id="buttonPDFSetPassword"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - - <child> - <widget class="GtkHBox" id="hbox7"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image7"> - <property name="visible">True</property> - <property name="stock">gtk-dialog-authentication</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label8"> - <property name="visible">True</property> - <property name="label" translatable="yes">Use these as passwords</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - - <child> - <widget class="GtkButton" id="buttonPDFNoPassword"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - - <child> - <widget class="GtkAlignment" id="alignment1"> - <property name="visible">True</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xscale">1</property> - <property name="yscale">1</property> - <property name="top_padding">0</property> - <property name="bottom_padding">0</property> - <property name="left_padding">0</property> - <property name="right_padding">0</property> - - <child> - <widget class="GtkHBox" id="hbox6"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkImage" id="image8"> - <property name="visible">True</property> - <property name="stock">gtk-cancel</property> - <property name="icon_size">4</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="label9"> - <property name="visible">True</property> - <property name="label" translatable="yes">Do not set any passwords</property> - <property name="use_underline">False</property> - <property name="use_markup">False</property> - <property name="justify">GTK_JUSTIFY_LEFT</property> - <property name="wrap">False</property> - <property name="selectable">False</property> - <property name="xalign">0.5</property> - <property name="yalign">0.5</property> - <property name="xpad">0</property> - <property name="ypad">0</property> - <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> - <property name="width_chars">-1</property> - <property name="single_line_mode">False</property> - <property name="angle">0</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">False</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/gtk/res/password.gtk2.ui b/gtk/res/password.gtk2.ui new file mode 100644 index 000000000..eb51e4f8f --- /dev/null +++ b/gtk/res/password.gtk2.ui @@ -0,0 +1,415 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkWindow" id="wndPDFPassword"> + <property name="title" translatable="yes">PDF Password</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_CENTER</property> + <property name="modal">True</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="icon_size">6</property> + <property name="icon_name">gtk-dialog-authentication</property> + <property name="xalign">0.5</property> + <property name="yalign">0.10000000149</property> + <property name="xpad">12</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Owner password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFOwnerPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox3"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Repeat password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFOwnerPassword1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox4"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes">User password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFUserPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox5"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Repeat password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFUserPassword1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHButtonBox" id="hbuttonbox1"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <property name="spacing">10</property> + <child> + <object class="GtkButton" id="buttonPDFSetPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image7"> + <property name="visible">True</property> + <property name="stock">gtk-dialog-authentication</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Use these as passwords</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkButton" id="buttonPDFNoPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + <child> + <object class="GtkHBox" id="hbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image8"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Do not set any passwords</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/password.gtk3.ui b/gtk/res/password.gtk3.ui new file mode 100644 index 000000000..eb51e4f8f --- /dev/null +++ b/gtk/res/password.gtk3.ui @@ -0,0 +1,415 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkWindow" id="wndPDFPassword"> + <property name="title" translatable="yes">PDF Password</property> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_CENTER</property> + <property name="modal">True</property> + <property name="resizable">True</property> + <property name="destroy_with_parent">False</property> + <property name="decorated">True</property> + <property name="skip_taskbar_hint">False</property> + <property name="skip_pager_hint">False</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_NORMAL</property> + <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> + <property name="focus_on_map">True</property> + <property name="urgency_hint">False</property> + <child> + <object class="GtkHBox" id="hbox1"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="icon_size">6</property> + <property name="icon_name">gtk-dialog-authentication</property> + <property name="xalign">0.5</property> + <property name="yalign">0.10000000149</property> + <property name="xpad">12</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkHBox" id="hbox2"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="label" translatable="yes">Owner password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFOwnerPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox3"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="label" translatable="yes">Repeat password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFOwnerPassword1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox4"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="label" translatable="yes">User password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFUserPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="hbox5"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="homogeneous">True</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="label" translatable="yes">Repeat password</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.899999976158</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">15</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryPDFUserPassword1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="editable">True</property> + <property name="visibility">False</property> + <property name="max_length">20</property> + <property name="text" translatable="yes"/> + <property name="has_frame">True</property> + <property name="invisible_char">●</property> + <property name="activates_default">False</property> + <property name="width_chars">20</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkHButtonBox" id="hbuttonbox1"> + <property name="border_width">5</property> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <property name="spacing">10</property> + <child> + <object class="GtkButton" id="buttonPDFSetPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkHBox" id="hbox7"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image7"> + <property name="visible">True</property> + <property name="stock">gtk-dialog-authentication</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="label" translatable="yes">Use these as passwords</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkButton" id="buttonPDFNoPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + <child> + <object class="GtkAlignment" id="alignment1"> + <property name="visible">True</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xscale">1</property> + <property name="yscale">1</property> + <property name="top_padding">0</property> + <property name="bottom_padding">0</property> + <property name="left_padding">0</property> + <property name="right_padding">0</property> + <child> + <object class="GtkHBox" id="hbox6"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkImage" id="image8"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + <property name="icon_size">4</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="label" translatable="yes">Do not set any passwords</property> + <property name="use_underline">False</property> + <property name="use_markup">False</property> + <property name="justify">GTK_JUSTIFY_LEFT</property> + <property name="wrap">False</property> + <property name="selectable">False</property> + <property name="xalign">0.5</property> + <property name="yalign">0.5</property> + <property name="xpad">0</property> + <property name="ypad">0</property> + <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property> + <property name="width_chars">-1</property> + <property name="single_line_mode">False</property> + <property name="angle">0</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/source.glade b/gtk/res/source.gtk2.ui index 144179bb1..84c3e0cf5 100644 --- a/gtk/res/source.glade +++ b/gtk/res/source.gtk2.ui @@ -1,183 +1,185 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> -<!--Generated with glade3 3.4.5 on Mon Apr 20 21:28:45 2009 --> -<glade-interface> - <widget class="GtkWindow" id="wndSource"> +<?xml version="1.0"?> +<interface> + <!-- interface-requires gtk+ 2.12 --> + <!-- interface-naming-policy toplevel-contextual --> + <object class="GtkWindow" id="wndSource"> <child> - <widget class="GtkVBox" id="vbox1"> + <object class="GtkVBox" id="vbox1"> <property name="visible">True</property> + <property name="orientation">vertical</property> <child> - <widget class="GtkMenuBar" id="menubar1"> + <object class="GtkMenuBar" id="menubar1"> <property name="visible">True</property> <child> - <widget class="GtkMenuItem" id="menuitem1"> + <object class="GtkMenuItem" id="menuitem1"> <property name="visible">True</property> <property name="label" translatable="yes">_File</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu1"> + <child type="submenu"> + <object class="GtkMenu" id="menu1"> <property name="visible">True</property> <child> - <widget class="GtkImageMenuItem" id="source_save_as"> + <object class="GtkImageMenuItem" id="source_save_as"> + <property name="label">gtk-save-as</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-save-as</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="S" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="S" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_print"> + <object class="GtkImageMenuItem" id="source_print"> + <property name="label">gtk-print</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-print</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="P" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="P" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> <child> - <widget class="GtkSeparatorMenuItem" id="separatormenuitem1"> + <object class="GtkSeparatorMenuItem" id="separatormenuitem1"> <property name="visible">True</property> - </widget> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_close"> + <object class="GtkImageMenuItem" id="source_close"> + <property name="label">gtk-close</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-close</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - </widget> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem2"> + <object class="GtkMenuItem" id="menuitem2"> <property name="visible">True</property> <property name="label" translatable="yes">_Edit</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu2"> + <child type="submenu"> + <object class="GtkMenu" id="menu2"> <property name="visible">True</property> <child> - <widget class="GtkImageMenuItem" id="source_select_all"> + <object class="GtkImageMenuItem" id="source_select_all"> + <property name="label">gtk-select-all</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-select-all</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="A" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="A" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_cut"> + <object class="GtkImageMenuItem" id="source_cut"> + <property name="label">gtk-cut</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-cut</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - </widget> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_copy"> + <object class="GtkImageMenuItem" id="source_copy"> + <property name="label">gtk-copy</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-copy</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - </widget> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_paste"> + <object class="GtkImageMenuItem" id="source_paste"> + <property name="label">gtk-paste</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-paste</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - </widget> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_delete"> + <object class="GtkImageMenuItem" id="source_delete"> + <property name="label">gtk-delete</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-delete</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="Delete" modifiers="" signal="activate"/> - </widget> + <accelerator key="Delete" signal="activate"/> + </object> </child> - </widget> + </object> |