diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2012-05-16 19:57:43 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2012-05-16 19:57:43 +0000 |
commit | 2622adaa1fd3a6f24ed3ba527ee132148fd25beb (patch) | |
tree | 1a40026a0693e61bf7e46ab0b79838eb3d918e35 /gtk | |
parent | 6d125e79b364e844523faa69d7d0861cc8f1bbf4 (diff) | |
download | netsurf-2622adaa1fd3a6f24ed3ba527ee132148fd25beb.tar.gz netsurf-2622adaa1fd3a6f24ed3ba527ee132148fd25beb.tar.bz2 |
allow netsurf to build with gtk3
svn path=/trunk/netsurf/; revision=13926
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> </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="GtkImageMenuItem" id="source_zoom_in"> + <object class="GtkImageMenuItem" id="source_zoom_in"> + <property name="label">gtk-zoom-in</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-zoom-in</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="plus" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="plus" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_zoom_out"> + <object class="GtkImageMenuItem" id="source_zoom_out"> + <property name="label">gtk-zoom-out</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-zoom-out</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="minus" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="minus" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> <child> - <widget class="GtkImageMenuItem" id="source_zoom_normal"> + <object class="GtkImageMenuItem" id="source_zoom_normal"> + <property name="label">gtk-zoom-100</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-zoom-100</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - <accelerator key="0" modifiers="GDK_CONTROL_MASK" signal="activate"/> - </widget> + <accelerator key="0" signal="activate" modifiers="GDK_CONTROL_MASK"/> + </object> </child> - </widget> + </object> </child> - </widget> + </object> </child> <child> - <widget class="GtkMenuItem" id="menuitem4"> + <object class="GtkMenuItem" id="menuitem4"> <property name="visible">True</property> <property name="label" translatable="yes">_Help</property> <property name="use_underline">True</property> - <child> - <widget class="GtkMenu" id="menu3"> + <child type="submenu"> + <object class="GtkMenu" id="menu3"> <property name="visible">True</property> <child> - <widget class="GtkImageMenuItem" id="source_about"> + <object class="GtkImageMenuItem" id="source_about"> + <property name="label">gtk-about</property> <property name="visible">True</property> - <property name="label" translatable="yes">gtk-about</property> <property name="use_underline">True</property> <property name="use_stock">True</property> - </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="sourcescrolled"> + <object class="GtkScrolledWindow" id="sourcescrolled"> <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="hscrollbar_policy">automatic</property> + <property name="vscrollbar_policy">automatic</property> <child> - <widget class="GtkTextView" id="source_view"> + <object class="GtkTextView" id="source_view"> <property name="width_request">600</property> <property name="height_request">400</property> <property name="visible">True</property> @@ -185,18 +187,18 @@ <property name="pixels_above_lines">1</property> <property name="pixels_below_lines">1</property> <property name="editable">False</property> - <property name="wrap_mode">GTK_WRAP_WORD</property> + <property name="wrap_mode">word</property> <property name="left_margin">3</property> <property name="right_margin">3</property> <property name="accepts_tab">False</property> - </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/source.gtk3.ui b/gtk/res/source.gtk3.ui new file mode 100644 index 000000000..b972315d3 --- /dev/null +++ b/gtk/res/source.gtk3.ui @@ -0,0 +1,179 @@ +<?xml version="1.0"?> +<!--Generated with glade3 3.4.5 on Mon Apr 20 21:28:45 2009 --> +<interface> + <object class="GtkUIManager" id="uimanager1"> + <child> + <object class="GtkActionGroup" id="actiongroup1"> + <child> + <object class="GtkAction" id="menuitem1"> + <property name="name">menuitem1</property> + <property name="label" translatable="yes">_File</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_save_as"> + <property name="stock_id" translatable="yes">gtk-save-as</property> + <property name="name">source_save_as</property> + </object> + <accelerator key="S" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="source_print"> + <property name="stock_id" translatable="yes">gtk-print</property> + <property name="name">source_print</property> + </object> + <accelerator key="P" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="source_close"> + <property name="stock_id" translatable="yes">gtk-close</property> + <property name="name">source_close</property> + </object> + </child> + <child> + <object class="GtkAction" id="menuitem2"> + <property name="name">menuitem2</property> + <property name="label" translatable="yes">_Edit</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_select_all"> + <property name="stock_id" translatable="yes">gtk-select-all</property> + <property name="name">source_select_all</property> + </object> + <accelerator key="A" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="source_cut"> + <property name="stock_id" translatable="yes">gtk-cut</property> + <property name="name">source_cut</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_copy"> + <property name="stock_id" translatable="yes">gtk-copy</property> + <property name="name">source_copy</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_paste"> + <property name="stock_id" translatable="yes">gtk-paste</property> + <property name="name">source_paste</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_delete"> + <property name="stock_id" translatable="yes">gtk-delete</property> + <property name="name">source_delete</property> + </object> + <accelerator key="Delete" modifiers=""/> + </child> + <child> + <object class="GtkAction" id="menuitem3"> + <property name="name">menuitem3</property> + <property name="label" translatable="yes">_View</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_zoom_in"> + <property name="stock_id" translatable="yes">gtk-zoom-in</property> + <property name="name">source_zoom_in</property> + </object> + <accelerator key="plus" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="source_zoom_out"> + <property name="stock_id" translatable="yes">gtk-zoom-out</property> + <property name="name">source_zoom_out</property> + </object> + <accelerator key="minus" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="source_zoom_normal"> + <property name="stock_id" translatable="yes">gtk-zoom-100</property> + <property name="name">source_zoom_normal</property> + </object> + <accelerator key="0" modifiers="GDK_CONTROL_MASK"/> + </child> + <child> + <object class="GtkAction" id="menuitem4"> + <property name="name">menuitem4</property> + <property name="label" translatable="yes">_Help</property> + </object> + </child> + <child> + <object class="GtkAction" id="source_about"> + <property name="stock_id" translatable="yes">gtk-about</property> + <property name="name">source_about</property> + </object> + </child> + </object> + </child> + <ui> + <menubar name="menubar1"> + <menu action="menuitem1"> + <menuitem action="source_save_as"/> + <menuitem action="source_print"/> + <separator/> + <menuitem action="source_close"/> + </menu> + <menu action="menuitem2"> + <menuitem action="source_select_all"/> + <menuitem action="source_cut"/> + <menuitem action="source_copy"/> + <menuitem action="source_paste"/> + <menuitem action="source_delete"/> + </menu> + <menu action="menuitem3"> + <menuitem action="source_zoom_in"/> + <menuitem action="source_zoom_out"/> + <menuitem action="source_zoom_normal"/> + </menu> + <menu action="menuitem4"> + <menuitem action="source_about"/> + </menu> + </menubar> + </ui> + </object> + <object class="GtkWindow" id="wndSource"> + <child> + <object class="GtkVBox" id="vbox1"> + <property name="visible">True</property> + <child> + <object class="GtkMenuBar" constructor="uimanager1" id="menubar1"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="sourcescrolled"> + <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> + <child> + <object class="GtkTextView" id="source_view"> + <property name="width_request">600</property> + <property name="height_request">400</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="pixels_above_lines">1</property> + <property name="pixels_below_lines">1</property> + <property name="editable">False</property> + <property name="wrap_mode">GTK_WRAP_WORD</property> + <property name="left_margin">3</property> + <property name="right_margin">3</property> + <property name="accepts_tab">False</property> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/ssl.glade b/gtk/res/ssl.gtk2.ui index 5d0570987..90f449ddd 100644 --- a/gtk/res/ssl.glade +++ b/gtk/res/ssl.gtk2.ui @@ -1,8 +1,7 @@ -<?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="wndSSLProblem"> +<interface> + <object class="GtkDialog" id="wndSSLProblem"> <property name="border_width">1</property> <property name="title" translatable="yes">SSL certificate problem</property> <property name="modal">True</property> @@ -10,195 +9,194 @@ <property name="default_height">250</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <child internal-child="vbox"> - <widget class="GtkVBox" id="dialog-vbox3"> + <object class="GtkVBox" id="dialog-vbox3"> <property name="visible">True</property> <child> - <widget class="GtkHBox" id="hbox15"> + <object class="GtkHBox" id="hbox15"> <property name="visible">True</property> <child> - <widget class="GtkImage" id="image6"> + <object class="GtkImage" id="image6"> <property name="visible">True</property> <property name="yalign">0</property> <property name="icon_size">6</property> <property name="icon_name">gtk-dialog-warning</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkVBox" id="vbox13"> + <object class="GtkVBox" id="vbox13"> <property name="visible">True</property> <child> - <widget class="GtkLabel" id="label62"> + <object class="GtkLabel" id="label62"> <property name="visible">True</property> <property name="label" translatable="yes">NetSurf failed to verify the authenticity of an SSL certificate. Please verify the details presented below.</property> <property name="justify">GTK_JUSTIFY_CENTER</property> <property name="wrap">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkFrame" id="frame13"> + <object class="GtkFrame" id="frame13"> <property name="visible">True</property> <property name="border_width">5</property> <property name="label_xalign">0</property> <child> - <widget class="GtkAlignment" id="alignment17"> + <object class="GtkAlignment" id="alignment17"> <property name="visible">True</property> <property name="left_padding">12</property> <child> - <widget class="GtkScrolledWindow" id="SSLScrolled"> + <object class="GtkScrolledWindow" id="SSLScrolled"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="shadow_type">GTK_SHADOW_IN</property> <child> - <widget class="GtkViewport" id="SSLViewport"> + <object class="GtkViewport" id="SSLViewport"> <property name="visible">True</property> <property name="resize_mode">GTK_RESIZE_QUEUE</property> <child> - <widget class="GtkDrawingArea" id="SSLDrawingArea"> + <object class="GtkDrawingArea" id="SSLDrawingArea"> <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> </child> - </widget> + </object> </child> - <child> - <widget class="GtkLabel" id="label63"> + <child type="label"> + <object class="GtkLabel" id="label63"> <property name="visible">True</property> <property name="label" translatable="yes"><b>Certificate chain</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="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_area3"> + <object class="GtkHButtonBox" id="dialog-action_area3"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> - <widget class="GtkButton" id="sslreject"> + <object class="GtkButton" id="sslreject"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> - <property name="response_id">-6</property> <child> - <widget class="GtkAlignment" id="alignment16"> + <object class="GtkAlignment" id="alignment16"> <property name="visible">True</property> <property name="xscale">0</property> <property name="yscale">0</property> <child> - <widget class="GtkHBox" id="hbox14"> + <object class="GtkHBox" id="hbox14"> <property name="visible">True</property> <property name="spacing">2</property> <child> - <widget class="GtkImage" id="image5"> + <object class="GtkImage" id="image5"> <property name="visible">True</property> <property name="stock">gtk-cancel</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkLabel" id="label61"> + <object class="GtkLabel" id="label61"> <property name="visible">True</property> <property name="label" translatable="yes">Reject</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> </child> <child> - <widget class="GtkButton" id="sslaccept"> + <object class="GtkButton" id="sslaccept"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> - <property name="response_id">-5</property> <child> - <widget class="GtkAlignment" id="alignment15"> + <object class="GtkAlignment" id="alignment15"> <property name="visible">True</property> <property name="xscale">0</property> <property name="yscale">0</property> <child> - <widget class="GtkHBox" id="hbox13"> + <object class="GtkHBox" id="hbox13"> <property name="visible">True</property> <property name="spacing">2</property> <child> - <widget class="GtkImage" id="image4"> + <object class="GtkImage" id="image4"> <property name="visible">True</property> <property name="stock">gtk-apply</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkLabel" id="label60"> + <object class="GtkLabel" id="label60"> <property name="visible">True</property> <property name="label" translatable="yes">Accept</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">sslreject</action-widget> + <action-widget response="-5">sslaccept</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/ssl.gtk3.ui b/gtk/res/ssl.gtk3.ui new file mode 100644 index 000000000..90f449ddd --- /dev/null +++ b/gtk/res/ssl.gtk3.ui @@ -0,0 +1,202 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkDialog" id="wndSSLProblem"> + <property name="border_width">1</property> + <property name="title" translatable="yes">SSL certificate problem</property> + <property name="modal">True</property> + <property name="default_width">500</property> + <property name="default_height">250</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <child internal-child="vbox"> + <object class="GtkVBox" id="dialog-vbox3"> + <property name="visible">True</property> + <child> + <object class="GtkHBox" id="hbox15"> + <property name="visible">True</property> + <child> + <object class="GtkImage" id="image6"> + <property name="visible">True</property> + <property name="yalign">0</property> + <property name="icon_size">6</property> + <property name="icon_name">gtk-dialog-warning</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkVBox" id="vbox13"> + <property name="visible">True</property> + <child> + <object class="GtkLabel" id="label62"> + <property name="visible">True</property> + <property name="label" translatable="yes">NetSurf failed to verify the authenticity of an SSL certificate. Please verify the details presented below.</property> + <property name="justify">GTK_JUSTIFY_CENTER</property> + <property name="wrap">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame13"> + <property name="visible">True</property> + <property name="border_width">5</property> + <property name="label_xalign">0</property> + <child> + <object class="GtkAlignment" id="alignment17"> + <property name="visible">True</property> + <property name="left_padding">12</property> + <child> + <object class="GtkScrolledWindow" id="SSLScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <child> + <object class="GtkViewport" id="SSLViewport"> + <property name="visible">True</property> + <property name="resize_mode">GTK_RESIZE_QUEUE</property> + <child> + <object class="GtkDrawingArea" id="SSLDrawingArea"> + <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> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label63"> + <property name="visible">True</property> + <property name="label" translatable="yes"><b>Certificate chain</b></property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <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_area3"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <child> + <object class="GtkButton" id="sslreject"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <child> + <object class="GtkAlignment" id="alignment16"> + <property name="visible">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <object class="GtkHBox" id="hbox14"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkImage" id="image5"> + <property name="visible">True</property> + <property name="stock">gtk-cancel</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label61"> + <property name="visible">True</property> + <property name="label" translatable="yes">Reject</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> + </child> + <child> + <object class="GtkButton" id="sslaccept"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <child> + <object class="GtkAlignment" id="alignment15"> + <property name="visible">True</property> + <property name="xscale">0</property> + <property name="yscale">0</property> + <child> + <object class="GtkHBox" id="hbox13"> + <property name="visible">True</property> + <property name="spacing">2</property> + <child> + <object class="GtkImage" id="image4"> + <property name="visible">True</property> + <property name="stock">gtk-apply</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label60"> + <property name="visible">True</property> + <property name="label" translatable="yes">Accept</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">sslreject</action-widget> + <action-widget response="-5">sslaccept</action-widget> + </action-widgets> + </object> +</interface> diff --git a/gtk/res/tabcontents.gtk2.ui b/gtk/res/tabcontents.gtk2.ui new file mode 100644 index 000000000..1c7d99bc3 --- /dev/null +++ b/gtk/res/tabcontents.gtk2.ui @@ -0,0 +1,75 @@ +<?xml version="1.0"?> +<interface> + <!-- interface-requires gtk+ 2.12 --> + <!-- interface-naming-policy toplevel-contextual --> + <object class="GtkTable" id="tabContents"> + <property name="visible">True</property> + <property name="n_rows">2</property> + <property name="n_columns">2</property> + <child> + <object class="GtkLayout" id="layout"> + <property name="visible">True</property> + <property name="app_paintable">True</property> + </object> + </child> + <child> + <object class="GtkStatusbar" id="resizer"> + <property name="height_request">1</property> + <property name="visible">True</property> + <property name="spacing">2</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">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkHPaned" id="hpaned1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object 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> + </object> + <packing> + <property name="resize">False</property> + <property name="shrink">False</property> + </packing> + </child> + <child> + <object class="GtkHScrollbar" id="hscrollbar"> + <property name="visible">True</property> + </object> + <packing> + <property name="resize">True</property> + <property name="shrink">True</property> + </packing> + </child> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="y_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkVScrollbar" id="vscrollbar"> + <property name="visible">True</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options"></property> + </packing> + </child> + </object> +</interface> diff --git a/gtk/res/tabcontents.gtk3.ui b/gtk/res/tabcontents.gtk3.ui new file mode 100644 index 000000000..28d09e074 --- /dev/null +++ b/gtk/res/tabcontents.gtk3.ui @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkGrid" id="tabContents"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="row_spacing">2</property> + <property name="column_spacing">2</property> + <child> + <object class="GtkLayout" id="layout"> + <property name="visible">True</property> + <property name="app_paintable">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkScrollbar" id="vscrollbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="vexpand">True</property> + <property name="orientation">vertical</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkStatusbar" id="resizer"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="spacing">2</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + <child> + <object class="GtkPaned" id="hpaned1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="hexpand">True</property> + <child> + <object class="GtkLabel" id="status_bar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="xpad">4</property> + <property name="label" translatable="yes">Status</property> + <property name="single_line_mode">True</property> + </object> + <packing> + <property name="resize">False</property> + <property name="shrink">True</property> + </packing> + </child> + <child> + <object class="GtkScrollbar" id="hscrollbar"> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + <packing> + <property name="resize">True</property> + <property name="shrink">True</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">1</property> + <property name="width">1</property> + <property name="height">1</property> + </packing> + </child> + </object> +</interface> diff --git a/gtk/res/toolbar.glade b/gtk/res/toolbar.glade deleted file mode 100644 index 9e2a338b5..000000000 --- a/gtk/res/toolbar.glade +++ /dev/null @@ -1,206 +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="toolbarwindow"> - <property name="width_request">700</property> - <property name="height_request">450</property> - <property name="title" translatable="yes"></property> - <property name="type">GTK_WINDOW_TOPLEVEL</property> - <property name="window_position">GTK_WIN_POS_NONE</property> - <property name="modal">False</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="GtkVBox" id="windowvbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkLabel" id="toolbarlabel"> - <property name="visible">True</property> - <property name="label" translatable="yes">Move items from store to toolbar Rearrange items in toolbar Move items from toolbar to store</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">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkScrolledWindow" id="scrolledwindow1"> - <property name="visible">True</property> - <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> - <property name="shadow_type">GTK_SHADOW_NONE</property> - <property name="window_placement">GTK_CORNER_TOP_LEFT</property> - - <child> - <widget class="GtkViewport" id="viewport1"> - <property name="visible">True</property> - <property name="shadow_type">GTK_SHADOW_IN</property> - - <child> - <widget class="GtkVBox" id="widgetvbox"> - <property name="visible">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <placeholder/> - </child> - </widget> - </child> - </widget> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">True</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkHBox" id="buttonhbox"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="homogeneous">False</property> - <property name="spacing">0</property> - - <child> - <widget class="GtkButton" id="resetbutton"> - <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="button1hbox"> - <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="stock">gtk-refresh</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">True</property> - </packing> - </child> - - <child> - <widget class="GtkLabel" id="refreshbuttonlabel"> - <property name="visible">True</property> - <property name="label" translatable="yes">Reset to defaults</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> - <packing> - <property name="padding">10</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <placeholder/> - </child> - - <child> - <widget class="GtkButton" id="okbutton"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="has_focus">True</property> - <property name="label">gtk-apply</property> - <property name="use_stock">True</property> - <property name="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - </widget> - <packing> - <property name="padding">10</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - - <child> - <widget class="GtkButton" id="cancelbutton"> - <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="relief">GTK_RELIEF_NORMAL</property> - <property name="focus_on_click">True</property> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - <packing> - <property name="padding">0</property> - <property name="expand">False</property> - <property name="fill">True</property> - </packing> - </child> - </widget> - </child> -</widget> - -</glade-interface> diff --git a/gtk/res/toolbar.gtk2.ui b/gtk/res/toolbar.gtk2.ui new file mode 100644 index 000000000..d84db5c8c --- /dev/null +++ b/gtk/res/toolbar.gtk2.ui @@ -0,0 +1,189 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkWindow" id="toolbarwindow"> + <property name="width_request">700</property> + <property name="height_request">450</property> + <property name="title" translatable="yes"/> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</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="GtkVBox" id="windowvbox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="toolbarlabel"> + <property name="visible">True</property> + <property name="label" translatable="yes">Move items from store to toolbar Rearrange items in toolbar Move items from toolbar to store</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">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <child> + <object class="GtkViewport" id="viewport1"> + <property name="visible">True</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <child> + <object class="GtkVBox" id="widgetvbox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="buttonhbox"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkButton" id="resetbutton"> + <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="button1hbox"> + <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="stock">gtk-refresh</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">True</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="refreshbuttonlabel"> + <property name="visible">True</property> + <property name="label" translatable="yes">Reset to defaults</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> + <packing> + <property name="padding">10</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="okbutton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_focus">True</property> + <property name="label">gtk-apply</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </object> + <packing> + <property name="padding">10</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkButton" id="cancelbutton"> + <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="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/toolbar.gtk3.ui b/gtk/res/toolbar.gtk3.ui new file mode 100644 index 000000000..d84db5c8c --- /dev/null +++ b/gtk/res/toolbar.gtk3.ui @@ -0,0 +1,189 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkWindow" id="toolbarwindow"> + <property name="width_request">700</property> + <property name="height_request">450</property> + <property name="title" translatable="yes"/> + <property name="type">GTK_WINDOW_TOPLEVEL</property> + <property name="window_position">GTK_WIN_POS_NONE</property> + <property name="modal">False</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="GtkVBox" id="windowvbox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkLabel" id="toolbarlabel"> + <property name="visible">True</property> + <property name="label" translatable="yes">Move items from store to toolbar Rearrange items in toolbar Move items from toolbar to store</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">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow" id="scrolledwindow1"> + <property name="visible">True</property> + <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property> + <property name="shadow_type">GTK_SHADOW_NONE</property> + <property name="window_placement">GTK_CORNER_TOP_LEFT</property> + <child> + <object class="GtkViewport" id="viewport1"> + <property name="visible">True</property> + <property name="shadow_type">GTK_SHADOW_IN</property> + <child> + <object class="GtkVBox" id="widgetvbox"> + <property name="visible">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">True</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkHBox" id="buttonhbox"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="homogeneous">False</property> + <property name="spacing">0</property> + <child> + <object class="GtkButton" id="resetbutton"> + <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="button1hbox"> + <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="stock">gtk-refresh</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">True</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="refreshbuttonlabel"> + <property name="visible">True</property> + <property name="label" translatable="yes">Reset to defaults</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> + <packing> + <property name="padding">10</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="okbutton"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_focus">True</property> + <property name="label">gtk-apply</property> + <property name="use_stock">True</property> + <property name="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </object> + <packing> + <property name="padding">10</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + <child> + <object class="GtkButton" id="cancelbutton"> + <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="relief">GTK_RELIEF_NORMAL</property> + <property name="focus_on_click">True</property> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </object> + <packing> + <property name="padding">0</property> + <property name="expand">False</property> + <property name="fill">True</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/gtk/res/warning.glade b/gtk/res/warning.gtk2.ui index edfa18076..e4fb4e662 100644 --- a/gtk/res/warning.glade +++ b/gtk/res/warning.gtk2.ui @@ -1,50 +1,49 @@ -<?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="GtkWindow" id="wndWarning"> +<interface> + <object class="GtkWindow" id="wndWarning"> <property name="title" translatable="yes">Warning from NetSurf</property> <property name="window_position">GTK_WIN_POS_CENTER</property> <property name="icon_name">gtk-dialog-warning</property> <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> <property name="urgency_hint">True</property> <child> - <widget class="GtkVBox" id="vbox32"> + <object class="GtkVBox" id="vbox32"> <property name="visible">True</property> <property name="border_width">2</property> <child> - <widget class="GtkHBox" id="hbox30"> + <object class="GtkHBox" id="hbox30"> <property name="visible">True</property> <property name="border_width">3</property> <child> - <widget class="GtkImage" id="image519"> + <object class="GtkImage" id="image519"> <property name="visible">True</property> <property name="xpad">12</property> <property name="icon_size">6</property> <property name="icon_name">gtk-dialog-warning</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="fill">False</property> </packing> </child> <child> - <widget class="GtkLabel" id="labelWarning"> + <object class="GtkLabel" id="labelWarning"> <property name="visible">True</property> <property name="label" translatable="yes">Help help help! I'm being held prisoner by a bunch of RISC OS zealots!</property> <property name="wrap">True</property> - </widget> + </object> <packing> <property name="padding">1</property> <property name="position">1</property> </packing> </child> - </widget> + </object> </child> <child> - <widget class="GtkHSeparator" id="hseparator2"> + <object class="GtkHSeparator" id="hseparator2"> <property name="visible">True</property> - </widget> + </object> <packing> <property name="expand">False</property> <property name="padding">3</property> @@ -52,28 +51,27 @@ </packing> </child> <child> - <widget class="GtkHButtonBox" id="hbuttonbox2"> + <object class="GtkHButtonBox" id="hbuttonbox2"> <property name="visible">True</property> <property name="layout_style">GTK_BUTTONBOX_END</property> <child> - <widget class="GtkButton" id="button14"> + <object class="GtkButton" id="button14"> <property name="visible">True</property> <property name="can_focus">True</property> <property name="can_default">True</property> <property name="label">gtk-ok</property> <property name="use_stock">True</property> - <property name="response_id">0</property> - <signal name="clicked" handler="gtk_widget_hide" object="wndWarning"/> - </widget> + <signal handler="gtk_widget_hide" name="clicked" object="wndWarning"/> + </object> </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/warning.gtk3.ui b/gtk/res/warning.gtk3.ui new file mode 100644 index 000000000..e4fb4e662 --- /dev/null +++ b/gtk/res/warning.gtk3.ui @@ -0,0 +1,77 @@ +<?xml version="1.0"?> +<!--*- mode: xml -*--> +<interface> + <object class="GtkWindow" id="wndWarning"> + <property name="title" translatable="yes">Warning from NetSurf</property> + <property name="window_position">GTK_WIN_POS_CENTER</property> + <property name="icon_name">gtk-dialog-warning</property> + <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> + <property name="urgency_hint">True</property> + <child> + <object class="GtkVBox" id="vbox32"> + <property name="visible">True</property> + <property name="border_width">2</property> + <child> + <object class="GtkHBox" id="hbox30"> + <property name="visible">True</property> + <property name="border_width">3</property> + <child> + <object class="GtkImage" id="image519"> + <property name="visible">True</property> + <property name="xpad">12</property> + <property name="icon_size">6</property> + <property name="icon_name">gtk-dialog-warning</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="labelWarning"> + <property name="visible">True</property> + <property name="label" translatable="yes">Help help help! I'm being held prisoner by a bunch of RISC OS zealots!</property> + <property name="wrap">True</property> + </object> + <packing> + <property name="padding">1</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <child> + <object class="GtkHSeparator" id="hseparator2"> + <property name="visible">True</property> + </object> + <packing> + <property name="expand">False</property> + <property name="padding">3</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkHButtonBox" id="hbuttonbox2"> + <property name="visible">True</property> + <property name="layout_style">GTK_BUTTONBOX_END</property> + <child> + <object class="GtkButton" id="button14"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="can_default">True</property> + <property name="label">gtk-ok</property> + <property name="use_stock">True</property> + <signal handler="gtk_widget_hide" name="clicked" object="wndWarning"/> + </object> + </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/scaffolding.c b/gtk/scaffolding.c index 34e0d514b..f09dc446c 100644 --- a/gtk/scaffolding.c +++ b/gtk/scaffolding.c @@ -88,8 +88,6 @@ #include "utils/log.h" -/** Obtain a GTK widget handle from glade xml object */ -#define GET_WIDGET(x) glade_xml_get_widget(g->xml, (x)) /** Macro to define a handler for menu, button and activate events. */ #define MULTIHANDLER(q)\ @@ -139,7 +137,7 @@ struct gtk_scaffolding { int toolbarbase; int historybase; - GladeXML *xml; + GtkBuilder *xml; struct gtk_history_window *history_window; GtkDialog *preferences_dialog; @@ -565,8 +563,9 @@ MULTIHANDLER(newtab) if (nsoption_bool(new_blank)) { browser_window_create(NULL, bw, NULL, false, true); GtkWidget *window = gtk_notebook_get_nth_page(g->notebook, -1); - gtk_widget_modify_bg(window, GTK_STATE_NORMAL, &((GdkColor) - {0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF})); + nsgtk_widget_override_background_color(window, + GTK_STATE_NORMAL, + 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF); } else { const char *url = nsoption_charp(homepage_url); @@ -1285,8 +1284,10 @@ MULTIHANDLER(savedomtree) if (bw->current_content && content_get_type(bw->current_content) == CONTENT_HTML) { +#ifdef FIXME xmlDebugDumpDocument(fh, html_get_document(bw->current_content)); +#endif } fclose(fh); @@ -1409,7 +1410,7 @@ MULTIHANDLER(localhistory) gtk_widget_show(GTK_WIDGET(g->history_window->window)); gtk_window_move(g->history_window->window, x + g->historybase, y + g->toolbarbase); - gdk_window_raise(GTK_WIDGET(g->history_window->window)->window); + gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(g->history_window->window))); return TRUE; } @@ -1417,7 +1418,7 @@ MULTIHANDLER(localhistory) MULTIHANDLER(globalhistory) { gtk_widget_show(GTK_WIDGET(wndHistory)); - gdk_window_raise(GTK_WIDGET(wndHistory)->window); + gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(wndHistory))); return TRUE; } @@ -1436,7 +1437,7 @@ MULTIHANDLER(addbookmarks) MULTIHANDLER(showbookmarks) { gtk_widget_show(GTK_WIDGET(wndHotlist)); - gdk_window_raise(GTK_WIDGET(wndHotlist)->window); + gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(wndHotlist))); gtk_window_set_focus(wndHotlist, NULL); return TRUE; @@ -1445,7 +1446,7 @@ MULTIHANDLER(showbookmarks) MULTIHANDLER(showcookies) { gtk_widget_show(GTK_WIDGET(wndCookies)); - gdk_window_raise(GTK_WIDGET(wndCookies)->window); + gdk_window_raise(gtk_widget_get_window(GTK_WIDGET(wndCookies))); return TRUE; } @@ -1519,10 +1520,49 @@ BUTTONHANDLER(history) #undef CHECKHANDLER #undef BUTTONHANDLER +#if GTK_CHECK_VERSION(3,0,0) + +static gboolean +nsgtk_history_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) +{ + struct rect clip; + struct gtk_history_window *hw = (struct gtk_history_window *)data; + struct browser_window *bw = + nsgtk_get_browser_window(hw->g->top_level); + + struct redraw_context ctx = { + .interactive = true, + .background_images = true, + .plot = &nsgtk_plotters + }; + double x1; + double y1; + double x2; + double y2; + + current_widget = widget; + current_cr = cr; + + cairo_clip_extents(cr, &x1, &y1, &x2, &y2); + + clip.x0 = x1; + clip.y0 = y1; + clip.x1 = x2; + clip.y1 = y2; + + ctx.plot->clip(&clip); + + history_redraw(bw->history, &ctx); + + current_widget = NULL; + + return FALSE; +} +#else /* signal handler functions for the local history window */ -static gboolean nsgtk_history_expose_event(GtkWidget *widget, - GdkEventExpose *event, gpointer g) +static gboolean +nsgtk_history_draw_event(GtkWidget *widget, GdkEventExpose *event, gpointer g) { struct rect clip; struct gtk_history_window *hw = (struct gtk_history_window *)g; @@ -1537,7 +1577,7 @@ static gboolean nsgtk_history_expose_event(GtkWidget *widget, current_widget = widget; - current_cr = gdk_cairo_create(widget->window); + current_cr = gdk_cairo_create(gtk_widget_get_window(widget)); clip.x0 = event->area.x; clip.y0 = event->area.y; @@ -1547,13 +1587,14 @@ static gboolean nsgtk_history_expose_event(GtkWidget *widget, history_redraw(bw->history, &ctx); - current_widget = NULL; - cairo_destroy(current_cr); + current_widget = NULL; + return FALSE; } +#endif /* GTK_CHECK_VERSION(3,0,0) */ static gboolean nsgtk_history_button_press_event(GtkWidget *widget, GdkEventButton *event, gpointer g) @@ -1654,6 +1695,7 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) char *searchname; int i; GtkAccelGroup *group; + GError* error = NULL; if (g == NULL) { warn_user("NoMemory", 0); @@ -1669,9 +1711,18 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) /* load the window template from the glade xml file, and extract * widget references from it for later use. */ - g->xml = glade_xml_new(glade_file_location->netsurf, - "wndBrowser", NULL); - glade_xml_signal_autoconnect(g->xml); + g->xml = gtk_builder_new(); + if (!gtk_builder_add_from_file(g->xml, glade_file_location->netsurf, &error)) { + g_warning("Couldn't load builder file: \"%s\"", error->message); + g_error_free (error); + return NULL; + } + + gtk_builder_connect_signals(g->xml, NULL); + +/** Obtain a GTK widget handle from glade xml object */ +#define GET_WIDGET(x) GTK_WIDGET (gtk_builder_get_object(g->xml, (x))) + g->window = GTK_WINDOW(GET_WIDGET("wndBrowser")); g->notebook = GTK_NOTEBOOK(GET_WIDGET("notebook")); g->tool_bar = GTK_TOOLBAR(GET_WIDGET("toolbar")); @@ -1694,7 +1745,7 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) g->search->checkAll = GTK_CHECK_BUTTON(GET_WIDGET("checkAllSearch")); g->search->caseSens = GTK_CHECK_BUTTON(GET_WIDGET("caseSensButton")); - +#undef GET_WIDGET for (i = BACK_BUTTON; i < PLACEHOLDER_BUTTON; i++) { g->buttons[i] = malloc(sizeof(struct nsgtk_button_connect)); @@ -1724,7 +1775,7 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) group = gtk_accel_group_new(); gtk_window_add_accel_group(g->window, group); - g->menu_bar = nsgtk_menu_bar_create(GTK_MENU_SHELL(glade_xml_get_widget(g->xml, "menubar")), group); + g->menu_bar = nsgtk_menu_bar_create(GTK_MENU_SHELL(gtk_builder_get_object(g->xml, "menubar")), group); g->preferences_dialog = NULL; @@ -1838,9 +1889,9 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_PRESS_MASK); - gtk_widget_modify_bg(GTK_WIDGET(g->history_window->drawing_area), + nsgtk_widget_override_background_color(GTK_WIDGET(g->history_window->drawing_area), GTK_STATE_NORMAL, - &((GdkColor) { 0, 0xffff, 0xffff, 0xffff } )); + 0, 0xffff, 0xffff, 0xffff); gtk_scrolled_window_add_with_viewport(g->history_window->scrolled, GTK_WIDGET(g->history_window->drawing_area)); gtk_widget_show(GTK_WIDGET(g->history_window->drawing_area)); @@ -1868,8 +1919,9 @@ nsgtk_scaffolding *nsgtk_new_scaffolding(struct gui_window *toplevel) g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) /* connect history window signals to their handlers */ - CONNECT(g->history_window->drawing_area, "expose_event", - nsgtk_history_expose_event, g->history_window); + nsgtk_connect_draw_event(GTK_WIDGET(g->history_window->drawing_area), + G_CALLBACK(nsgtk_history_draw_event), + g->history_window); /*CONNECT(g->history_window->drawing_area, "motion_notify_event", nsgtk_history_motion_notify_event, g->history_window);*/ CONNECT(g->history_window->drawing_area, "button_press_event", diff --git a/gtk/scaffolding.h b/gtk/scaffolding.h index 4769ad8df..cf75f0af3 100644 --- a/gtk/scaffolding.h +++ b/gtk/scaffolding.h @@ -20,7 +20,7 @@ #define NETSURF_GTK_SCAFFOLDING_H 1 #include <gtk/gtk.h> -#include <glade/glade.h> +//#include <glade/glade.h> #include <glib.h> #include "desktop/gui.h" diff --git a/gtk/search.c b/gtk/search.c index fc2f3f2c3..1c002d523 100644 --- a/gtk/search.c +++ b/gtk/search.c @@ -20,10 +20,12 @@ /** \file * Free text search (front component) */ +#include <stdint.h> #include <ctype.h> #include <string.h> #include <gdk/gdkkeysyms.h> +#include "gtk/compat.h" #include "gtk/search.h" #include "gtk/scaffolding.h" #include "gtk/window.h" @@ -37,7 +39,6 @@ #include "desktop/selection.h" #include "render/box.h" #include "render/html.h" -#include "utils/config.h" #include "utils/log.h" #include "utils/messages.h" #include "utils/utils.h" @@ -171,7 +172,7 @@ gboolean nsgtk_search_entry_activate(GtkWidget *widget, gpointer data) gboolean nsgtk_search_entry_key(GtkWidget *widget, GdkEventKey *event, gpointer data) { - if (event->keyval == GDK_Escape) { + if (event->keyval == GDK_KEY(Escape)) { struct gtk_scaffolding *g = (struct gtk_scaffolding *)data; nsgtk_scaffolding_toggle_search_bar_visibility(g); } diff --git a/gtk/tabs.c b/gtk/tabs.c index 13f6d393d..b258a20ad 100644 --- a/gtk/tabs.c +++ b/gtk/tabs.c @@ -16,8 +16,10 @@ * along with this program. If not, see <http://www.gnu.org/licenses/>. */ -#include <glade/glade.h> +#include <stdint.h> #include <string.h> + +#include "gtk/compat.h" #include "gtk/window.h" #include "gtk/gui.h" #include "desktop/browser.h" @@ -37,10 +39,16 @@ static void nsgtk_tab_update_size(GtkWidget *hbox, GtkStyle *previous_style, PangoFontMetrics *metrics; PangoContext *context; int char_width, h, w; + GtkStyleContext *style; + GtkStateFlags state; + + state = nsgtk_widget_get_state_flags(hbox); + style = nsgtk_widget_get_style_context(hbox); context = gtk_widget_get_pango_context(hbox); - metrics = pango_context_get_metrics(context, hbox->style->font_desc, - pango_context_get_language(context)); + metrics = pango_context_get_metrics(context, + nsgtk_style_context_get_font(style, state), + pango_context_get_language(context)); char_width = pango_font_metrics_get_approximate_digit_width(metrics); pango_font_metrics_unref(metrics); @@ -59,9 +67,8 @@ static void nsgtk_tab_update_size(GtkWidget *hbox, GtkStyle *previous_style, static GtkWidget *nsgtk_tab_label_setup(struct gui_window *window) { GtkWidget *hbox, *label, *button, *close; - GtkRcStyle *rcstyle; - hbox = gtk_hbox_new(FALSE, 2); + hbox = nsgtk_hbox_new(FALSE, 2); if (nsoption_bool(new_blank) == true) label = gtk_label_new("New Tab"); @@ -81,10 +88,13 @@ static GtkWidget *nsgtk_tab_label_setup(struct gui_window *window) gtk_button_set_relief(GTK_BUTTON(button), GTK_RELIEF_NONE); gtk_widget_set_tooltip_text(button, "Close this tab."); +#ifdef FIXME + GtkRcStyle *rcstyle; rcstyle = gtk_rc_style_new(); rcstyle->xthickness = rcstyle->ythickness = 0; gtk_widget_modify_style(button, rcstyle); g_object_unref(rcstyle); +#endif g_signal_connect_swapped(button, "clicked", G_CALLBACK(nsgtk_window_destroy_browser), window); diff --git a/gtk/theme.c b/gtk/theme.c index 26206110e..a8c33225c 100644 --- a/gtk/theme.c +++ b/gtk/theme.c @@ -254,7 +254,7 @@ void nsgtk_theme_add(const char *themename) } g_signal_connect_swapped(notification, "response", G_CALLBACK(gtk_widget_destroy), notification); - gtk_container_add(GTK_CONTAINER(GTK_DIALOG(notification)->vbox), label); + gtk_container_add(GTK_CONTAINER(gtk_dialog_get_action_area(GTK_DIALOG(notification))), label); gtk_widget_show_all(notification); /* update combo */ diff --git a/gtk/toolbar.c b/gtk/toolbar.c index 7fa2764df..0e5ef4e1d 100644 --- a/gtk/toolbar.c +++ b/gtk/toolbar.c @@ -43,7 +43,7 @@ struct nsgtk_toolbar_custom_store { GtkWidget *widgetvbox; GtkWidget *currentbar; char numberh; /* current horizontal location while adding */ - GladeXML *glade; /* button widgets to store */ + GtkBuilder *glade; /* button widgets to store */ int buttonlocations[PLACEHOLDER_BUTTON]; int currentbutton; bool fromstore; @@ -123,10 +123,10 @@ void nsgtk_toolbar_customization_init(nsgtk_scaffolding *g) nsgtk_window_get_signalhandler( nsgtk_scaffolding_top_level(list), NSGTK_WINDOW_SIGNAL_REDRAW)); - gtk_widget_modify_bg(GTK_WIDGET(nsgtk_window_get_layout( + nsgtk_widget_override_background_color( + GTK_WIDGET(nsgtk_window_get_layout( nsgtk_scaffolding_top_level(list))), - GTK_STATE_NORMAL, &((GdkColor) - {0, 0xEEEE, 0xEEEE, 0xEEEE})); + GTK_STATE_NORMAL, 0, 0xEEEE, 0xEEEE, 0xEEEE); if (list == g) { list = nsgtk_scaffolding_iterate(list); @@ -188,6 +188,7 @@ void nsgtk_toolbar_customization_init(nsgtk_scaffolding *g) void nsgtk_toolbar_window_open(nsgtk_scaffolding *g) { int x = 0, y = 0; + GError* error = NULL; struct nsgtk_theme *theme = nsgtk_theme_load(GTK_ICON_SIZE_LARGE_TOOLBAR); if (theme == NULL) { @@ -195,22 +196,29 @@ void nsgtk_toolbar_window_open(nsgtk_scaffolding *g) nsgtk_toolbar_cancel_clicked(NULL, g); return; } - window->glade = glade_xml_new(glade_file_location->toolbar, - "toolbarwindow", NULL); - if (window->glade == NULL) { + + window->glade = gtk_builder_new(); + if (!gtk_builder_add_from_file(window->glade, + glade_file_location->toolbar, + &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free (error); warn_user(messages_get("NoMemory"), 0); nsgtk_toolbar_cancel_clicked(NULL, g); + return; } - glade_xml_signal_autoconnect(window->glade); - window->window = glade_xml_get_widget(window->glade, "toolbarwindow"); + gtk_builder_connect_signals(window->glade, NULL); + + window->window = GTK_WIDGET(gtk_builder_get_object(window->glade, "toolbarwindow")); if (window->window == NULL) { warn_user(messages_get("NoMemory"), 0); nsgtk_toolbar_cancel_clicked(NULL, g); free(theme); return; } - window->widgetvbox = glade_xml_get_widget(window->glade, "widgetvbox"); + + window->widgetvbox = GTK_WIDGET(gtk_builder_get_object(window->glade, "widgetvbox")); if (window->widgetvbox == NULL) { warn_user(messages_get("NoMemory"), 0); nsgtk_toolbar_cancel_clicked(NULL, g); @@ -251,12 +259,14 @@ void nsgtk_toolbar_window_open(nsgtk_scaffolding *g) GTK_WIN_POS_CENTER_ON_PARENT); gtk_window_get_position(nsgtk_scaffolding_window(g), &x, &y); gtk_window_move(GTK_WINDOW(window->window), x, y + 100); - g_signal_connect(glade_xml_get_widget(window->glade, "cancelbutton"), - "clicked", G_CALLBACK( - nsgtk_toolbar_cancel_clicked), g); - g_signal_connect(glade_xml_get_widget(window->glade, "okbutton"), + g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->glade, "cancelbutton")), + "clicked", + G_CALLBACK(nsgtk_toolbar_cancel_clicked), + g); + + g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->glade, "okbutton")), "clicked", G_CALLBACK(nsgtk_toolbar_persist), g); - g_signal_connect(glade_xml_get_widget(window->glade, "resetbutton"), + g_signal_connect(GTK_WIDGET(gtk_builder_get_object(window->glade, "resetbutton")), "clicked", G_CALLBACK(nsgtk_toolbar_reset), g); g_signal_connect(window->window, "delete-event", G_CALLBACK(nsgtk_toolbar_delete), g); @@ -396,10 +406,7 @@ void nsgtk_toolbar_close(nsgtk_scaffolding *g) gtk_widget_show_all(GTK_WIDGET(nsgtk_scaffolding_toolbar( list))); nsgtk_scaffolding_set_sensitivity(list); - gtk_widget_modify_bg(GTK_WIDGET(nsgtk_window_get_layout( - nsgtk_scaffolding_top_level(list))), - GTK_STATE_NORMAL, &((GdkColor) - {0, 0xFFFF, 0xFFFF, 0xFFFF})); + nsgtk_widget_override_background_color(GTK_WIDGET(nsgtk_window_get_layout(nsgtk_scaffolding_top_level(list))), GTK_STATE_NORMAL, 0, 0xFFFF, 0xFFFF, 0xFFFF); g_signal_handler_unblock(GTK_WIDGET( nsgtk_window_get_layout( nsgtk_scaffolding_top_level(list))), @@ -1044,8 +1051,9 @@ void nsgtk_toolbar_customization_load(nsgtk_scaffolding *g) return; } val = fgets(buffer, sizeof buffer, f); - if (val == NULL) + if (val == NULL) { LOG(("empty read toolbar settings")); + } fclose(f); i = BACK_BUTTON; ii = BACK_BUTTON; diff --git a/gtk/treeview.c b/gtk/treeview.c index 7e690e7db..ca936ef5f 100644 --- a/gtk/treeview.c +++ b/gtk/treeview.c @@ -22,14 +22,16 @@ */ #include <assert.h> -#include <gdk/gdkkeysyms.h> -#include <gtk/gtk.h> #include <stdio.h> #include <limits.h> +#include <gtk/gtk.h> +#include <gdk/gdkkeysyms.h> + #include "desktop/tree.h" #include "desktop/tree_url_node.h" #include "desktop/plotters.h" +#include "gtk/compat.h" #include "gtk/gui.h" #include "gtk/plotters.h" #include "gtk/treeview.h" @@ -164,9 +166,40 @@ static void nsgtk_tree_get_window_dimensions(int *width, int *height, void *data } } +#if GTK_CHECK_VERSION(3,0,0) + +static gboolean +nsgtk_tree_window_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) +{ + struct tree *tree = (struct tree *)data; + struct redraw_context ctx = { + .interactive = true, + .background_images = true, + .plot = &nsgtk_plotters + }; + double x1; + double y1; + double x2; + double y2; + + current_widget = widget; + current_cr = cr; + + cairo_clip_extents(cr, &x1, &y1, &x2, &y2); + + tree_set_redraw(tree, true); + tree_draw(tree, 0, 0, x1, y1, x2 - x1, y2 - y1, &ctx); + + current_widget = NULL; + + return FALSE; +} + +#else + /* signal handler functions for a tree window */ -gboolean nsgtk_tree_window_expose_event(GtkWidget *widget, - GdkEventExpose *event, gpointer g) +static gboolean +nsgtk_tree_window_draw_event(GtkWidget *widget, GdkEventExpose *event, gpointer g) { struct tree *tree = (struct tree *) g; struct redraw_context ctx = { @@ -182,7 +215,7 @@ gboolean nsgtk_tree_window_expose_event(GtkWidget *widget, height = event->area.height; current_widget = widget; - current_cr = gdk_cairo_create(widget->window); + current_cr = gdk_cairo_create(gtk_widget_get_window(widget)); tree_set_redraw(tree, true); tree_draw(tree, 0, 0, x, y, width, height, &ctx); @@ -193,6 +226,8 @@ gboolean nsgtk_tree_window_expose_event(GtkWidget *widget, return FALSE; } +#endif + void nsgtk_tree_window_hide(GtkWidget *widget, gpointer g) { struct nsgtk_treeview *tw = g; @@ -382,81 +417,85 @@ gboolean nsgtk_tree_window_keypress_event(GtkWidget *widget, GdkEventKey *event, edited = tree_is_edited(tree); switch (event->keyval) { - case GDK_Home: - case GDK_KP_Home: + case GDK_KEY(Home): + case GDK_KEY(KP_Home): if (edited) break; scroll = vscroll; - value = scroll->lower; + value = gtk_adjustment_get_lower(scroll); break; - case GDK_End: - case GDK_KP_End: + case GDK_KEY(End): + case GDK_KEY(KP_End): if (edited) break; scroll = vscroll; - value = scroll->upper - vpage; - if (value < scroll->lower) - value = scroll->lower; + value = gtk_adjustment_get_upper(scroll) - vpage; + if (value < gtk_adjustment_get_lower(scroll)) + value = gtk_adjustment_get_lower(scroll); break; - case GDK_Left: - case GDK_KP_Left: + case GDK_KEY(Left): + case GDK_KEY(KP_Left): if (edited) break; scroll = hscroll; value = gtk_adjustment_get_value(scroll) - - scroll->step_increment; - if (value < scroll->lower) - value = scroll->lower; + gtk_adjustment_get_step_increment(scroll); + if (value < gtk_adjustment_get_lower(scroll)) + value = gtk_adjustment_get_lower(scroll); break; - case GDK_Up: - case GDK_KP_Up: + case GDK_KEY(Up): + case GDK_KEY(KP_Up): scroll = vscroll; value = gtk_adjustment_get_value(scroll) - - scroll->step_increment; - if (value < scroll->lower) - value = scroll->lower; + gtk_adjustment_get_step_increment(scroll); + if (value < gtk_adjustment_get_lower(scroll)) + value = gtk_adjustment_get_lower(scroll); break; - case GDK_Right: - case GDK_KP_Right: + case GDK_KEY(Right): + case GDK_KEY(KP_Right): if (edited) break; scroll = hscroll; value = gtk_adjustment_get_value(scroll) + - scroll->step_increment; - if (value > scroll->upper - hpage) - value = scroll->upper - hpage; + gtk_adjustment_get_step_increment(scroll); + if (value > gtk_adjustment_get_upper(scroll) - hpage) + value = gtk_adjustment_get_upper(scroll) - hpage; break; - case GDK_Down: - case GDK_KP_Down: + case GDK_KEY(Down): + case GDK_KEY(KP_Down): scroll = vscroll; value = gtk_adjustment_get_value(scroll) + - scroll->step_increment; - if (value > scroll->upper - vpage) - value = scroll->upper - vpage; + gtk_adjustment_get_step_increment(scroll); + if (value > gtk_adjustment_get_upper(scroll) - vpage) + value = gtk_adjustment_get_upper(scroll) - vpage; break; - case GDK_Page_Up: - case GDK_KP_Page_Up: + case GDK_KEY(Page_Up): + case GDK_KEY(KP_Page_Up): scroll = vscroll; value = gtk_adjustment_get_value(scroll) - - scroll->page_increment; - if (value < scroll->lower) - value = scroll->lower; + gtk_adjustment_get_page_increment(scroll); + + if (value < gtk_adjustment_get_lower(scroll)) + value = gtk_adjustment_get_lower(scroll); + break; - case GDK_Page_Down: - case GDK_KP_Page_Down: + case GDK_KEY(Page_Down): + case GDK_KEY(KP_Page_Down): scroll = vscroll; value = gtk_adjustment_get_value(scroll) + - scroll->page_increment; - if (value > scroll->upper - vpage) - value = scroll->upper - vpage; + gtk_adjustment_get_page_increment(scroll); + + if (value > gtk_adjustment_get_upper(scroll) - vpage) + value = gtk_adjustment_get_upper(scroll) - vpage; break; + default: tree_keypress(tree, nskey); return TRUE; @@ -483,6 +522,8 @@ struct nsgtk_treeview *nsgtk_treeview_create(unsigned int flags, { struct nsgtk_treeview *tv; + assert(drawing_area != NULL); + tv = malloc(sizeof(struct nsgtk_treeview)); if (tv == NULL) { LOG(("malloc failed")); @@ -497,15 +538,14 @@ struct nsgtk_treeview *nsgtk_treeview_create(unsigned int flags, tv->mouse_state = 0; tv->mouse_pressed = false; - gtk_widget_modify_bg(GTK_WIDGET(drawing_area), GTK_STATE_NORMAL, - &((GdkColor) { 0, 0xffff, 0xffff, 0xffff } )); + nsgtk_widget_override_background_color(GTK_WIDGET(drawing_area), + GTK_STATE_NORMAL, + 0, 0xffff, 0xffff, 0xffff); + + nsgtk_connect_draw_event(GTK_WIDGET(drawing_area), G_CALLBACK(nsgtk_tree_window_draw_event), tv->tree); #define CONNECT(obj, sig, callback, ptr) \ g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) - - CONNECT(drawing_area, "expose_event", - nsgtk_tree_window_expose_event, - tv->tree); CONNECT(drawing_area, "button_press_event", nsgtk_tree_window_button_press_event, tv); diff --git a/gtk/window.c b/gtk/window.c index 14a17df40..bf5f022da 100644 --- a/gtk/window.c +++ b/gtk/window.c @@ -22,7 +22,9 @@ #include <limits.h> #include <assert.h> +#include <gtk/gtk.h> #include <gdk/gdkkeysyms.h> +#include <gdk-pixbuf/gdk-pixdata.h> #include "content/hlcache.h" #include "gtk/window.h" @@ -43,6 +45,8 @@ #include "utils/log.h" #include "utils/utils.h" +extern const GdkPixdata menu_cursor_pixdata; + struct gui_window { /** The gtk scaffold object containing menu, buttons, url bar, [tabs], * drawing area, etc that may contain one or more gui_windows. @@ -143,10 +147,12 @@ float nsgtk_get_scale_for_gui(struct gui_window *g) return g->bw->scale; } -static gboolean nsgtk_window_expose_event(GtkWidget *widget, - GdkEventExpose *event, gpointer data) +#if GTK_CHECK_VERSION(3,0,0) + +static gboolean +nsgtk_window_draw_event(GtkWidget *widget, cairo_t *cr, gpointer data) { - struct gui_window *g = data; + struct gui_window *gw = data; struct gui_window *z; struct rect clip; struct redraw_context ctx = { @@ -155,34 +161,85 @@ static gboolean nsgtk_window_expose_event(GtkWidget *widget, .plot = &nsgtk_plotters }; - assert(g); - assert(g->bw); + double x1; + double y1; + double x2; + double y2; + + assert(gw); + assert(gw->bw); + + for (z = window_list; z && z != gw; z = z->next) + continue; + assert(z); + assert(GTK_WIDGET(gw->layout) == widget); + + current_widget = (GtkWidget *)gw->layout; + current_cr = cr; + + cairo_clip_extents(cr, &x1, &y1, &x2, &y2); + + clip.x0 = x1; + clip.y0 = y1; + clip.x1 = x2; + clip.y1 = y2; + + browser_window_redraw(gw->bw, 0, 0, &clip, &ctx); + + if (gw->careth != 0) { + nsgtk_plot_caret(gw->caretx, gw->carety, gw->careth); + } + + current_widget = NULL; + + return FALSE; +} + +#else + +static gboolean +nsgtk_window_draw_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) +{ + struct gui_window *gw = data; + struct gui_window *z; + struct rect clip; + struct redraw_context ctx = { + .interactive = true, + .background_images = true, + .plot = &nsgtk_plotters + }; - for (z = window_list; z && z != g; z = z->next) + assert(gw); + assert(gw->bw); + + for (z = window_list; z && z != gw; z = z->next) continue; assert(z); - assert(GTK_WIDGET(g->layout) == widget); + assert(GTK_WIDGET(gw->layout) == widget); - current_widget = (GtkWidget *)g->layout; - current_cr = gdk_cairo_create(g->layout->bin_window); + current_widget = (GtkWidget *)gw->layout; + current_cr = gdk_cairo_create(gtk_layout_get_bin_window(gw->layout)); clip.x0 = event->area.x; clip.y0 = event->area.y; clip.x1 = event->area.x + event->area.width; clip.y1 = event->area.y + event->area.height; - browser_window_redraw(g->bw, 0, 0, &clip, &ctx); + browser_window_redraw(gw->bw, 0, 0, &clip, &ctx); - if (g->careth != 0) { - nsgtk_plot_caret(g->caretx, g->carety, g->careth); + if (gw->careth != 0) { + nsgtk_plot_caret(gw->caretx, gw->carety, gw->careth); } - current_widget = NULL; cairo_destroy(current_cr); + current_widget = NULL; + return FALSE; } +#endif + static gboolean nsgtk_window_motion_notify_event(GtkWidget *widget, GdkEventMotion *event, gpointer data) { @@ -320,79 +377,102 @@ static gboolean nsgtk_window_scroll_event(GtkWidget *widget, { struct gui_window *g = data; double value; - GtkAdjustment *vscroll = gtk_layout_get_vadjustment(g->layout); - GtkAdjustment *hscroll = gtk_layout_get_hadjustment(g->layout); - GtkAdjustment *scroll; - const GtkAllocation *const alloc = - >K_WIDGET(g->layout)->allocation; + GtkAdjustment *vscroll = nsgtk_layout_get_vadjustment(g->layout); + GtkAdjustment *hscroll = nsgtk_layout_get_hadjustment(g->layout); + GtkAllocation alloc; + LOG(("%d", event->direction)); switch (event->direction) { case GDK_SCROLL_LEFT: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, - -100, 0) == true) - /* Core handled it */ - return TRUE; - - scroll = hscroll; - value = gtk_adjustment_get_value(scroll) - - (scroll->step_increment * 2); - if (value < scroll->lower) - value = scroll->lower; + -100, 0) != true) { + /* core did not handle event do horizontal scroll */ + + value = gtk_adjustment_get_value(hscroll) - + (gtk_adjustment_get_step_increment(hscroll) *2); + + if (value < gtk_adjustment_get_lower(hscroll)) { + value = gtk_adjustment_get_lower(hscroll); + } + + gtk_adjustment_set_value(hscroll, value); + } break; case GDK_SCROLL_UP: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, - 0, -100) == true) - /* Core handled it */ - return TRUE; - - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) - - (scroll->step_increment * 2); - if (value < scroll->lower) - value = scroll->lower; + 0, -100) != true) { + /* core did not handle event change vertical + * adjustment. + */ + + value = gtk_adjustment_get_value(vscroll) - + (gtk_adjustment_get_step_increment(vscroll) * 2); + + if (value < gtk_adjustment_get_lower(vscroll)) { + value = gtk_adjustment_get_lower(vscroll); + } + + gtk_adjustment_set_value(vscroll, value); + } break; case GDK_SCROLL_RIGHT: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, - 100, 0) == true) - /* Core handled it */ - return TRUE; - - scroll = hscroll; - value = gtk_adjustment_get_value(scroll) + - (scroll->step_increment * 2); - if (value > scroll->upper - alloc->width) - value = scroll->upper - alloc->width; + 100, 0) != true) { + + /* core did not handle event change horizontal + * adjustment. + */ + + value = gtk_adjustment_get_value(hscroll) + + (gtk_adjustment_get_step_increment(hscroll) * 2); + + /* @todo consider gtk_widget_get_allocated_width() */ + gtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); + + if (value > gtk_adjustment_get_upper(hscroll) - alloc.width) { + value = gtk_adjustment_get_upper(hscroll) - + alloc.width; + } + + gtk_adjustment_set_value(hscroll, value); + } break; case GDK_SCROLL_DOWN: if (browser_window_scroll_at_point(g->bw, event->x / g->bw->scale, event->y / g->bw->scale, - 0, 100) == true) - /* Core handled it */ - return TRUE; - - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) + - (scroll->step_increment * 2); - if (value > scroll->upper - alloc->height) - value = scroll->upper - alloc->height; + 0, 100) != true) { + /* core did not handle event change vertical + * adjustment. + */ + + value = gtk_adjustment_get_value(vscroll) + + (gtk_adjustment_get_step_increment(vscroll) * 2); + /* @todo consider gtk_widget_get_allocated_height */ + gtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); + + if (value > gtk_adjustment_get_upper(vscroll) - alloc.height) { + value = gtk_adjustment_get_upper(vscroll) - + alloc.height; + } + + gtk_adjustment_set_value(vscroll, value); + } break; default: - return TRUE; + break; } - gtk_adjustment_set_value(scroll, value); - return TRUE; } @@ -405,88 +485,104 @@ static gboolean nsgtk_window_keypress_event(GtkWidget *widget, if (browser_window_key_press(g->bw, nskey)) return TRUE; - if ((event->state & 0x7) == 0) { - double value; - GtkAdjustment *vscroll = gtk_layout_get_vadjustment(g->layout); - GtkAdjustment *hscroll = gtk_layout_get_hadjustment(g->layout); - GtkAdjustment *scroll; - const GtkAllocation *const alloc = - >K_WIDGET(g->layout)->allocation; - - switch (event->keyval) { - default: - return TRUE; - - case GDK_Home: - case GDK_KP_Home: - scroll = vscroll; - value = scroll->lower; - break; - - case GDK_End: - case GDK_KP_End: - scroll = vscroll; - value = scroll->upper - alloc->height; - if (value < scroll->lower) - value = scroll->lower; - break; - - case GDK_Left: - case GDK_KP_Left: - scroll = hscroll; - value = gtk_adjustment_get_value(scroll) - - scroll->step_increment; - if (value < scroll->lower) - value = scroll->lower; - break; - - case GDK_Up: - case GDK_KP_Up: - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) - - scroll->step_increment; - if (value < scroll->lower) - value = scroll->lower; - break; - - case GDK_Right: - case GDK_KP_Right: - scroll = hscroll; - value = gtk_adjustment_get_value(scroll) + - scroll->step_increment; - if (value > scroll->upper - alloc->width) - value = scroll->upper - alloc->width; - break; - - case GDK_Down: - case GDK_KP_Down: - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) + - scroll->step_increment; - if (value > scroll->upper - alloc->height) - value = scroll->upper - alloc->height; - break; - - case GDK_Page_Up: - case GDK_KP_Page_Up: - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) - - scroll->page_increment; - if (value < scroll->lower) - value = scroll->lower; - break; - - case GDK_Page_Down: - case GDK_KP_Page_Down: - scroll = vscroll; - value = gtk_adjustment_get_value(scroll) + - scroll->page_increment; - if (value > scroll->upper - alloc->height) - value = scroll->upper - alloc->height; - break; - } + if ((event->state & 0x7) != 0) + return TRUE; + + double value; + GtkAdjustment *vscroll = nsgtk_layout_get_vadjustment(g->layout); + GtkAdjustment *hscroll = nsgtk_layout_get_hadjustment(g->layout); + GtkAllocation alloc; + + /* @todo consider gtk_widget_get_allocated_width() */ + gtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); + + switch (event->keyval) { + + case GDK_KEY(Home): + case GDK_KEY(KP_Home): + value = gtk_adjustment_get_lower(vscroll); + gtk_adjustment_set_value(vscroll, value); + break; + + case GDK_KEY(End): + case GDK_KEY(KP_End): + value = gtk_adjustment_get_upper(vscroll) - alloc.height; + + if (value < gtk_adjustment_get_lower(vscroll)) + value = gtk_adjustment_get_lower(vscroll); + + gtk_adjustment_set_value(vscroll, value); + break; + + case GDK_KEY(Left): + case GDK_KEY(KP_Left): + value = gtk_adjustment_get_value(hscroll) - + gtk_adjustment_get_step_increment(hscroll); + + if (value < gtk_adjustment_get_lower(hscroll)) + value = gtk_adjustment_get_lower(hscroll); + + gtk_adjustment_set_value(hscroll, value); + break; + + case GDK_KEY(Up): + case GDK_KEY(KP_Up): + value = gtk_adjustment_get_value(vscroll) - + gtk_adjustment_get_step_increment(vscroll); + + if (value < gtk_adjustment_get_lower(vscroll)) + value = gtk_adjustment_get_lower(vscroll); + + gtk_adjustment_set_value(vscroll, value); + break; + + case GDK_KEY(Right): + case GDK_KEY(KP_Right): + value = gtk_adjustment_get_value(hscroll) + + gtk_adjustment_get_step_increment(hscroll); + + if (value > gtk_adjustment_get_upper(hscroll) - alloc.width) + value = gtk_adjustment_get_upper(hscroll) - alloc.width; + + gtk_adjustment_set_value(hscroll, value); + break; + + case GDK_KEY(Down): + case GDK_KEY(KP_Down): + value = gtk_adjustment_get_value(vscroll) + + gtk_adjustment_get_step_increment(vscroll); + + if (value > gtk_adjustment_get_upper(vscroll) - alloc.height) + value = gtk_adjustment_get_upper(vscroll) - alloc.height; + + gtk_adjustment_set_value(vscroll, value); + break; + + case GDK_KEY(Page_Up): + case GDK_KEY(KP_Page_Up): + value = gtk_adjustment_get_value(vscroll) - + gtk_adjustment_get_page_increment(vscroll); + + if (value < gtk_adjustment_get_lower(vscroll)) + value = gtk_adjustment_get_lower(vscroll); + + gtk_adjustment_set_value(vscroll, value); + break; + + case GDK_KEY(Page_Down): + case GDK_KEY(KP_Page_Down): + value = gtk_adjustment_get_value(vscroll) + + gtk_adjustment_get_page_increment(vscroll); + + if (value > gtk_adjustment_get_upper(vscroll) - alloc.height) + value = gtk_adjustment_get_upper(vscroll) - alloc.height; + + gtk_adjustment_set_value(vscroll, value); + break; + + default: + break; - gtk_adjustment_set_value(scroll, value); } return TRUE; @@ -558,26 +654,27 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, /* Construct our primary elements */ /* top-level document (not a frame) => create a new tab */ - GladeXML *xml = glade_xml_new(glade_file_location->netsurf, - "tabContents", NULL); - if (!xml) { - warn_user("MiscError", "Failed to create tab contents"); - free(g); + GError* error = NULL; + GtkBuilder* xml = gtk_builder_new(); + if (!gtk_builder_add_from_file(xml, + glade_file_location->tabcontents, + &error)) { + g_warning ("Couldn't load builder file: %s", error->message); + g_error_free(error); return 0; } - GtkWidget *tab_contents = glade_xml_get_widget(xml, "tabContents"); - g->layout = GTK_LAYOUT(glade_xml_get_widget(xml, "layout")); - g->status_bar = GTK_LABEL(glade_xml_get_widget(xml, "status_bar")); - g->paned = GTK_PANED(glade_xml_get_widget(xml, "hpaned1")); + g->layout = GTK_LAYOUT(gtk_builder_get_object(xml, "layout")); + g->status_bar = GTK_LABEL(gtk_builder_get_object(xml, "status_bar")); + g->paned = GTK_PANED(gtk_builder_get_object(xml, "hpaned1")); /* connect the scrollbars to the layout widget */ - gtk_layout_set_hadjustment(g->layout, + nsgtk_layout_set_hadjustment(g->layout, gtk_range_get_adjustment(GTK_RANGE( - glade_xml_get_widget(xml, "hscrollbar")))); - gtk_layout_set_vadjustment(g->layout, + gtk_builder_get_object(xml, "hscrollbar")))); + nsgtk_layout_set_vadjustment(g->layout, gtk_range_get_adjustment(GTK_RANGE( - glade_xml_get_widget(xml, "vscrollbar")))); + gtk_builder_get_object(xml, "vscrollbar")))); /* add the tab to the scaffold */ bool tempback = true; @@ -592,6 +689,8 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, tempback = true; break; } + + GtkWidget *tab_contents = GTK_WIDGET(gtk_builder_get_object(xml, "tabContents")); g_object_set_data(G_OBJECT(tab_contents), "gui_window", g); nsgtk_tab_add(g, tab_contents, tempback); @@ -620,14 +719,15 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, nsgtk_widget_set_can_focus(GTK_WIDGET(g->layout), TRUE); /* set the default background colour of the drawing area to white. */ - gtk_widget_modify_bg(GTK_WIDGET(g->layout), GTK_STATE_NORMAL, - &((GdkColor) { 0, 0xffff, 0xffff, 0xffff } )); + nsgtk_widget_override_background_color(GTK_WIDGET(g->layout), + GTK_STATE_NORMAL, 0, 0xffff, 0xffff, 0xffff); + + + nsgtk_connect_draw_event(GTK_WIDGET(g->layout), G_CALLBACK(nsgtk_window_draw_event), g); #define CONNECT(obj, sig, callback, ptr) \ g_signal_connect(G_OBJECT(obj), (sig), G_CALLBACK(callback), (ptr)) - g->signalhandler[NSGTK_WINDOW_SIGNAL_REDRAW] = - CONNECT(g->layout, "expose_event", - nsgtk_window_expose_event, g); + CONNECT(g->layout, "motion_notify_event", nsgtk_window_motion_notify_event, g); g->signalhandler[NSGTK_WINDOW_SIGNAL_CLICK] = @@ -665,16 +765,19 @@ void nsgtk_reflow_all_windows(void) void nsgtk_window_process_reformats(void) { struct gui_window *g; + GtkAllocation alloc; browser_reformat_pending = false; for (g = window_list; g; g = g->next) { - GtkWidget *widget = GTK_WIDGET(g->layout); if (!g->bw->reformat_pending) continue; + g->bw->reformat_pending = false; - browser_window_reformat(g->bw, false, - widget->allocation.width, - widget->allocation.height); + + /* @todo consider gtk_widget_get_allocated_width() */ + gtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); + + browser_window_reformat(g->bw, false, alloc.width, alloc.height); } } @@ -797,8 +900,8 @@ void gui_window_set_status(struct gui_window *g, const char *text) bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy) { - GtkAdjustment *vadj = gtk_layout_get_vadjustment(g->layout); - GtkAdjustment *hadj = gtk_layout_get_hadjustment(g->layout); + GtkAdjustment *vadj = nsgtk_layout_get_vadjustment(g->layout); + GtkAdjustment *hadj = nsgtk_layout_get_hadjustment(g->layout); assert(vadj); assert(hadj); @@ -811,8 +914,8 @@ bool gui_window_get_scroll(struct gui_window *g, int *sx, int *sy) void gui_window_set_scroll(struct gui_window *g, int sx, int sy) { - GtkAdjustment *vadj = gtk_layout_get_vadjustment(g->layout); - GtkAdjustment *hadj = gtk_layout_get_hadjustment(g->layout); + GtkAdjustment *vadj = nsgtk_layout_get_vadjustment(g->layout); + GtkAdjustment *hadj = nsgtk_layout_get_hadjustment(g->layout); gdouble vlower, vpage, vupper, hlower, hpage, hupper, x = (double)sx, y = (double)sy; assert(vadj); @@ -853,35 +956,13 @@ void gui_window_update_extent(struct gui_window *g) static GdkCursor *nsgtk_create_menu_cursor(void) { - 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, }; - - 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, }; - - static GdkCursor *r; - static GdkColor fg = { 0, 0, 0, 0 }; - static GdkColor bg = { 0, 65535, 65535, 65535 }; - - GdkPixmap *source, *mask; - - if (r != NULL) - return r; - - source = gdk_bitmap_create_from_data(NULL, menu_cursor_bits, - 16, 16); - mask = gdk_bitmap_create_from_data (NULL, menu_cursor_mask_bits, - 16, 16); - - r = gdk_cursor_new_from_pixmap(source, mask, &fg, &bg, 0, 3); - g_object_unref(source); - g_object_unref(mask); + GdkCursor *cursor = NULL; + GdkPixbuf *pixbuf; + pixbuf = gdk_pixbuf_from_pixdata(&menu_cursor_pixdata, FALSE, NULL); + cursor = gdk_cursor_new_from_pixbuf(gdk_display_get_default(), pixbuf, 0, 3); + g_object_unref (pixbuf); - return r; + return cursor; } void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape) @@ -961,10 +1042,11 @@ void gui_window_set_pointer(struct gui_window *g, gui_pointer_shape shape) gtk_widget_get_display( GTK_WIDGET(g->layout)), cursortype); - gdk_window_set_cursor(GTK_WIDGET(g->layout)->window, cursor); + gdk_window_set_cursor(gtk_widget_get_window(GTK_WIDGET(g->layout)), + cursor); if (!nullcursor) - gdk_cursor_unref(cursor); + nsgdk_cursor_unref(cursor); } void gui_window_hide_pointer(struct gui_window *g) @@ -1015,8 +1097,13 @@ void gui_drag_save_selection(struct selection *s, struct gui_window *g) void gui_window_get_dimensions(struct gui_window *g, int *width, int *height, bool scaled) { - *width = GTK_WIDGET(g->layout)->allocation.width; - *height = GTK_WIDGET(g->layout)->allocation.height; + GtkAllocation alloc; + + /* @todo consider gtk_widget_get_allocated_width() */ + gtk_widget_get_allocation(GTK_WIDGET(g->layout), &alloc); + + *width = alloc.width; + *height = alloc.height; if (scaled) { *width /= g->bw->scale; |