diff options
author | Vincent Sanders <vince@kyllikki.org> | 2023-12-02 13:01:25 +0000 |
---|---|---|
committer | Vincent Sanders <vince@kyllikki.org> | 2023-12-02 13:01:25 +0000 |
commit | 6550da2bc452d71790dd7a439ad651ed7bcc19eb (patch) | |
tree | b227df46c3491e197bbc05ea468ce86c5547c5aa | |
parent | f68aca93b7e9f5dd05f1e49ba8ae70ada3ef3d1f (diff) | |
download | netsurf-vince/gtk4.tar.gz netsurf-vince/gtk4.tar.bz2 |
GTK4 investigation - read teh comments in compat.h - and forget itvince/gtk4
38 files changed, 6003 insertions, 89 deletions
diff --git a/frontends/Makefile.hts b/frontends/Makefile.hts index b5af240f1..b63e02134 100644 --- a/frontends/Makefile.hts +++ b/frontends/Makefile.hts @@ -94,6 +94,11 @@ else # unspecified gtk is gtk3 SUBTARGET = 3 else + ifeq ($(TARGET),gtk4) + # gtk3 is gtk target with subtarget of 3 + override TARGET := gtk + SUBTARGET = 4 + else ifeq ($(TARGET),gtk3) # gtk3 is gtk target with subtarget of 3 override TARGET := gtk @@ -110,6 +115,7 @@ else endif endif endif + endif endif endif diff --git a/frontends/gtk/Makefile b/frontends/gtk/Makefile index 79f03b370..f50c3d392 100644 --- a/frontends/gtk/Makefile +++ b/frontends/gtk/Makefile @@ -45,7 +45,12 @@ GTKCFLAGS := -std=c99 -Dgtk -Dnsgtk -g \ -DGTK_RESPATH=\"$(NETSURF_GTK_RES_PATH)\" # non optional pkg-configed libs -$(eval $(call pkg_config_find_and_add,gtk+-$(NETSURF_GTK_MAJOR).0,GTK-$(NETSURF_GTK_MAJOR))) +ifeq ($(NETSURF_GTK_MAJOR),4) +NETSURF_GTK_PKGCONF=gtk4 +else +NETSURF_GTK_PKGCONF=gtk+-$(NETSURF_GTK_MAJOR).0 +endif +$(eval $(call pkg_config_find_and_add,$(NETSURF_GTK_PKGCONF),GTK-$(NETSURF_GTK_MAJOR))) $(eval $(call pkg_config_find_and_add,gthread-2.0,GThread2)) $(eval $(call pkg_config_find_and_add,gmodule-2.0,GModule2)) diff --git a/frontends/gtk/Makefile.tools b/frontends/gtk/Makefile.tools index 5331dcc71..67e3a8a6f 100644 --- a/frontends/gtk/Makefile.tools +++ b/frontends/gtk/Makefile.tools @@ -7,6 +7,10 @@ PKG_CONFIG := pkg-config # gtk target processing +ifeq ($(SUBTARGET),4) + override NETSURF_GTK_MAJOR := 4 +endif + ifeq ($(SUBTARGET),3) override NETSURF_GTK_MAJOR := 3 endif diff --git a/frontends/gtk/about.c b/frontends/gtk/about.c index 9cf5d27b2..6f57ef32a 100644 --- a/frontends/gtk/about.c +++ b/frontends/gtk/about.c @@ -89,7 +89,7 @@ nsgtk_about_dialog_response(GtkDialog *dialog, } /* close about dialog */ - gtk_widget_destroy(GTK_WIDGET(dialog)); + nsgtk_window_destroy(GTK_WINDOW(dialog)); } void nsgtk_about_dialog_init(GtkWindow *parent) @@ -109,10 +109,10 @@ void nsgtk_about_dialog_init(GtkWindow *parent) vbox = nsgtk_vbox_new(FALSE, 8); - gtk_box_pack_start(GTK_BOX(nsgtk_dialog_get_content_area(GTK_DIALOG(dialog))), vbox, TRUE, TRUE, 0); + nsgtk_box_pack_start(GTK_BOX(nsgtk_dialog_get_content_area(GTK_DIALOG(dialog))), vbox, TRUE, TRUE, 0); /* NetSurf icon */ - pixbufs = gtk_window_get_default_icon_list(); + pixbufs = nsgtk_window_get_default_icon_list(); if (pixbufs != NULL) { GtkWidget *image; diff --git a/frontends/gtk/bitmap.c b/frontends/gtk/bitmap.c index a995a9e28..ba6bcbddc 100644 --- a/frontends/gtk/bitmap.c +++ b/frontends/gtk/bitmap.c @@ -28,7 +28,6 @@ #include <string.h> #include <stdlib.h> #include <cairo.h> -#include <gtk/gtk.h> #include "utils/utils.h" #include "utils/errors.h" @@ -36,6 +35,7 @@ #include "netsurf/bitmap.h" #include "netsurf/plotters.h" +#include "gtk/compat.h" #include "gtk/scaffolding.h" #include "gtk/plotters.h" #include "gtk/bitmap.h" diff --git a/frontends/gtk/compat.c b/frontends/gtk/compat.c index bd3f46ee5..c49fcfbbc 100644 --- a/frontends/gtk/compat.c +++ b/frontends/gtk/compat.c @@ -25,6 +25,10 @@ #include "gtk/compat.h" +#if GTK_CHECK_VERSION(3,22,0) +#include "gtk/scaffolding.h" +#endif + #ifdef _SEXY_ICON_ENTRY_H_ #include "gtk/sexy_icon_entry.c" @@ -42,8 +46,380 @@ GtkStateType nsgtk_widget_get_state(GtkWidget *widget) #endif } +#endif /* _SEXY_ICON_ENTRY_H_ */ + +#if GTK_CHECK_VERSION(4,0,0) +GdkScreen* gdk_screen_get_default(void) +{ + return NULL; +} + +gdouble gdk_screen_get_resolution(GdkScreen* screen) { + return 180; +} + +PangoContext* gdk_pango_context_get() +{ + return NULL; +} + + +GtkWidget* gtk_menu_new(void) +{ + return NULL; +} + +GtkWidget* gtk_check_menu_item_new_with_label(const gchar* label) +{ + return NULL; +} + +void gtk_check_menu_item_set_active(GtkCheckMenuItem* check_menu_item, gboolean is_active) +{ +} + +void gtk_menu_shell_append(GtkMenuShell* menu_shell, GtkWidget* child) +{ +} + +void gtk_widget_show_all(GtkWidget *widget) +{ +} + +void gtk_widget_destroy(GtkWidget* widget) +{ + g_object_unref(widget); +} + +gboolean gtk_check_menu_item_get_active(GtkCheckMenuItem* check_menu_item) +{ + return FALSE; +} + +void gtk_menu_item_set_submenu(GtkMenuItem* menu_item, GtkWidget* submenu) +{ +} + +GtkWidget*gtk_menu_item_new_with_mnemonic(const gchar* label) +{ + return NULL; +} + +GtkWidget *gtk_separator_menu_item_new (void) +{ + return NULL; +} + +void gtk_widget_add_accelerator (GtkWidget* widget, const gchar* accel_signal, GtkAccelGroup* accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags) +{ +} + +void gtk_box_pack_start(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding) +{ +} + +void gtk_label_set_line_wrap(GtkLabel* label, gboolean wrap) +{ +} + +gboolean gtk_show_uri_on_window(GtkWindow* parent, const char* uri, guint32 timestamp, GError** error) +{ +} + +void gtk_menu_popup_at_pointer(GtkMenu* menu, const GdkEvent* trigger_event) +{ +} + +void gtk_container_add(GtkContainer* container, GtkWidget* widget) +{ +} + +gint gtk_dialog_run(GtkDialog* dialog) +{ + return 0; +} + +gboolean gtk_icon_size_lookup(GtkIconSize size, gint* width, gint* height) +{ + return FALSE; +} + +void gtk_builder_connect_signals(GtkBuilder* builder, gpointer user_data) +{ +} + +const gchar*gtk_entry_get_text(GtkEntry* entry) +{ + return NULL; +} + +void gtk_widget_queue_draw_area(GtkWidget* widget, gint x, gint y, gint width, gint height) +{ +} + +GdkWindow*gtk_widget_get_parent_window(GtkWidget* widget) +{ + return NULL; +} + +void gtk_im_context_set_client_window(GtkIMContext *context, GdkWindow *window) +{ +} + +void gtk_file_chooser_set_do_overwrite_confirmation(GtkFileChooser* chooser, gboolean do_overwrite_confirmation) +{ +} + +gchar* gtk_file_chooser_get_filename(GtkFileChooser* chooser) +{ + return NULL; +} + +void gtk_button_set_image(GtkButton* button, GtkWidget* image) +{ +} + +GtkIconTheme* gtk_icon_theme_get_default(void) +{ + return NULL; +} + +void gtk_window_set_default_icon (GdkPixbuf* icon) +{ +} +gboolean gtk_main_iteration_do ( gboolean blocking ) +{ + return FALSE; +} + +gboolean gtk_main_iteration ( void) +{ + return FALSE; +} + +gboolean gtk_events_pending(void) +{ + return FALSE; +} + +void gtk_window_set_type_hint(GtkWindow* window, GdkWindowTypeHint hint) +{ +} + +GtkWidget* gtk_check_menu_item_new_with_mnemonic(const gchar* label) +{ + return NULL; +} + +void gtk_menu_set_accel_group (GtkMenu *menu, GtkAccelGroup *accel_group) +{ +} + +void gtk_entry_set_text (GtkEntry* entry, const gchar* text ) +{ +} +GtkWidget* gtk_widget_get_toplevel ( GtkWidget* widget ) +{ + return NULL; +} +GdkScreen* gtk_widget_get_screen ( GtkWidget* widget ) +{ + return NULL; +} +void gtk_window_set_screen ( GtkWindow* window, GdkScreen* screen ) +{ +} +void gtk_window_get_size ( GtkWindow* window, gint* width, gint* height ) +{ +} +void gtk_window_resize ( GtkWindow* window, gint width, gint height ) +{ +} +void gtk_window_move ( GtkWindow* window, gint x, gint y ) +{ +} +void gtk_window_get_position ( GtkWindow* window, gint* root_x, gint* root_y ) +{ +} +void gtk_toolbar_set_icon_size ( GtkToolbar* toolbar, GtkIconSize icon_size ) +{ +} +void gtk_toolbar_set_style ( GtkToolbar* toolbar, GtkToolbarStyle style ) +{ +} +GtkWidget* gtk_bin_get_child ( GtkBin* bin ) +{ + return NULL; +} +GdkCursor* gdk_cursor_new_from_pixbuf(GdkDisplay* display, GdkPixbuf* pixbuf, gint x, gint y) +{ + return NULL; +} +GtkClipboard* gtk_clipboard_get(GdkAtom selection) +{ + return NULL; +} +void gtk_clipboard_set_text(GtkClipboard* clipboard, const gchar* text, gint len) +{ +} +void gtk_window_add_accel_group(GtkWindow* window, GtkAccelGroup* accel_group) +{ +} +gchar* gtk_clipboard_wait_for_text(GtkClipboard* clipboard) +{ + return NULL; +} +void gtk_widget_set_events(GtkWidget* widget, gint events) +{ +} +void gtk_button_set_relief(GtkButton* button, GtkReliefStyle relief) +{ +} +gboolean gdk_event_get_scroll_deltas(const GdkEvent* event, gdouble* delta_x, gdouble* delta_y) +{ + return FALSE; +} +void gtk_entry_set_width_chars(GtkEntry* entry,gint n_chars) +{ +} +GtkAccelGroup* gtk_accel_group_new(void) +{ + return NULL; +} +GtkWidget* gtk_event_box_new(void) +{ + return NULL; +} +GtkWidget* gtk_toolbar_new(void) +{ + return NULL; +} +void gtk_toolbar_set_show_arrow(GtkToolbar* toolbar, gboolean show_arrow) +{ +} +GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label) +{ + return NULL; +} +GtkToolItem* gtk_tool_item_new(void) +{ + return NULL; +} +void gtk_tool_button_set_icon_widget(GtkToolButton* button, GtkWidget* icon_widget) +{ +} +void gtk_tool_item_set_expand (GtkToolItem *tool_item, gboolean expand) +{ +} +void gtk_editable_cut_clipboard(GtkEditable* editable) +{ +} +void gtk_editable_copy_clipboard(GtkEditable* editable) +{ +} +void gtk_editable_paste_clipboard(GtkEditable *editable) +{ +} +void gtk_widget_add_events(GtkWidget* widget, gint events) +{ +} +void gtk_layout_set_size(GtkLayout* layout, guint width, guint height) +{ +} +GdkCursor* gdk_cursor_new_for_display(GdkDisplay* display, GdkCursorType cursor_type) +{ + return NULL; +} +void gtk_tool_button_set_icon_name(GtkToolButton* button, const gchar* icon_name) +{ +} +void gtk_tool_item_set_use_drag_window(GtkToolItem *tool_item, gboolean use_drag_window) +{ +} +void gtk_drag_source_set(GtkWidget* widget, GdkModifierType start_button_mask, const GtkTargetEntry* targets, gint n_targets, GdkDragAction actions) +{ +} +void gtk_drag_finish(GdkDragContext* context, gboolean success, gboolean del, guint32 time_) +{ +} +void gtk_container_remove(GtkContainer* container, GtkWidget* widget) +{ +} +gint gtk_toolbar_get_drop_index(GtkToolbar* toolbar, gint x, gint y) +{ + return 0; +} +void gtk_toolbar_insert(GtkToolbar* toolbar, GtkToolItem* item, gint pos) +{ +} +void gtk_toolbar_set_drop_highlight_item(GtkToolbar* toolbar, GtkToolItem* tool_item, gint index_) +{ +} +void gtk_container_foreach(GtkContainer* container, GtkCallback callback, gpointer callback_data) +{ +} +void gtk_tool_button_set_label(GtkToolButton *button, const gchar *label) +{ +} +void gtk_drag_dest_set(GtkWidget* widget, GtkDestDefaults flags, const GtkTargetEntry* targets, gint n_targets, GdkDragAction actions) +{ +} +void gtk_widget_set_allocation(GtkWidget* widget, const GtkAllocation* allocation) +{ +} + +#endif /* GTK_CHECK_VERSION(4,0,0) */ + +void nsgtk_init(int* argc, char*** argv) +{ +#if GTK_CHECK_VERSION(4,0,0) + gtk_init(); + /* TODO: handle command line parameters */ +#else + gtk_init(argc,argv); #endif +} + +void nsgtk_widget_size_allocate(GtkWidget* widget, const GtkAllocation* allocation, int baseline) +{ +#if GTK_CHECK_VERSION(4,0,0) + gtk_widget_size_allocate(widget, allocation,baseline); +#else + gtk_widget_size_allocate(widget, allocation); +#endif +} + + +gboolean nsgtk_file_chooser_set_current_folder(GtkFileChooser* chooser, GFile* file) +{ +#if GTK_CHECK_VERSION(4,0,0) + return gtk_file_chooser_set_current_folder(chooser,file, NULL); +#else + return gtk_file_chooser_set_current_folder(chooser,file); +#endif +} + +void +nsgtk_box_pack_start(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding) +{ +#if GTK_CHECK_VERSION(4,0,0) + /* TODO: implement properly */ + gtk_box_append(box, child); +#else + gtk_box_pack_start(box, child, expand, fill, padding); +#endif +} + +GList *nsgtk_window_get_default_icon_list(void) { +#if GTK_CHECK_VERSION(4,0,0) + /* TODO: implement properly */ + return NULL; +#else + return gtk_window_get_default_icon_list(); +#endif +} + void nsgtk_widget_set_can_focus(GtkWidget *widget, gboolean can_focus) { @@ -152,7 +528,9 @@ void nsgtk_entry_set_icon_from_pixbuf(GtkWidget *entry, GtkEntryIconPosition icon_pos, GdkPixbuf *pixbuf) { -#if GTK_CHECK_VERSION(2,16,0) +#if GTK_CHECK_VERSION(4,0,0) + /* TODO:Implement*/ +#elif GTK_CHECK_VERSION(2,16,0) gtk_entry_set_icon_from_pixbuf(GTK_ENTRY(entry), icon_pos, pixbuf); #else GtkImage *image = GTK_IMAGE(gtk_image_new_from_pixbuf(pixbuf)); @@ -193,14 +571,26 @@ void nsgtk_entry_set_icon_from_icon_name(GtkWidget *entry, #endif } - +GtkWidget* nsgtk_image_new_from_icon_name(const gchar* icon_name, GtkIconSize size) +{ +#if GTK_CHECK_VERSION(4,0,0) + return gtk_image_new_from_icon_name(icon_name); +#else + return gtk_image_new_from_icon_name(icon_name, size); +#endif +} + /* exported interface documented in gtk/compat.h */ -GtkWidget *nsgtk_image_new_from_stock(const gchar *id, GtkIconSize size) +GtkWidget *nsgtk_image_new_from_stock(const gchar *icon_name, GtkIconSize size) { #ifdef NSGTK_USE_ICON_NAME - return gtk_image_new_from_icon_name(id, size); +#if GTK_CHECK_VERSION(4,0,0) + return gtk_image_new_from_icon_name(icon_name); #else - return gtk_image_new_from_stock(id, size); + return gtk_image_new_from_icon_name(icon_name, size); +#endif +#else + return gtk_image_new_from_stock(icon_name, size); #endif } @@ -226,15 +616,6 @@ void nsgtk_button_set_focus_on_click(GtkButton *button, gboolean focus_on_click) } -/* exported interface documented in gtk/compat.h */ -gboolean nsgtk_stock_lookup(const gchar *stock_id, GtkStockItem *item) -{ -#ifdef NSGTK_USE_ICON_NAME - return FALSE; -#else - return gtk_stock_lookup(stock_id, item); -#endif -} void nsgtk_widget_override_background_color(GtkWidget *widget, @@ -357,17 +738,18 @@ GtkStyleContext *nsgtk_widget_get_style_context(GtkWidget *widget) const PangoFontDescription* nsgtk_style_context_get_font(GtkStyleContext *style, GtkStateFlags state) { -#if GTK_CHECK_VERSION(3,8,0) +#if GTK_CHECK_VERSION(4,0,0) + /* TODO: implement */ + return NULL; +#elif GTK_CHECK_VERSION(3,8,0) const PangoFontDescription* fontdesc = NULL; gtk_style_context_get(style, state, GTK_STYLE_PROPERTY_FONT, &fontdesc, NULL); return fontdesc; -#else -#if GTK_CHECK_VERSION(3,0,0) +#elif GTK_CHECK_VERSION(3,0,0) return gtk_style_context_get_font(style, state); #else return style->font_desc; #endif -#endif } gulong nsgtk_connect_draw_event(GtkWidget *widget, @@ -401,15 +783,27 @@ void nsgtk_widget_modify_font(GtkWidget *widget, #endif } -GdkWindow *nsgtk_widget_get_window(GtkWidget *widget) +/* exported interface documented in gtk/compat.h */ +void nsgtk_widget_set_cursor(GtkWidget *widget, GdkCursor *cursor) { +#if GTK_CHECK_VERSION(4,0,0) + gdk_surface_set_cursor( + gtk_native_get_surface( + gtk_widget_get_native(widget)), + cursor); +#else + GdkWindow *window; + #if GTK_CHECK_VERSION(2,14,0) - return gtk_widget_get_window(widget); + window = gtk_widget_get_window(widget); #else - return widget->window; + window = widget->window; +#endif + gdk_window_set_cursor(window, cursor); #endif } + GtkWidget *nsgtk_dialog_get_content_area(GtkDialog *dialog) { #if GTK_CHECK_VERSION(2,14,0) @@ -419,9 +813,6 @@ GtkWidget *nsgtk_dialog_get_content_area(GtkDialog *dialog) #endif } -#if GTK_CHECK_VERSION(3,22,0) -#include "gtk/scaffolding.h" -#endif gboolean nsgtk_show_uri(GdkScreen *screen, const gchar *uri, @@ -441,6 +832,18 @@ gboolean nsgtk_show_uri(GdkScreen *screen, #endif } +#if GTK_CHECK_VERSION(3,0,0) +/* not required */ +#else +GdkWindow *nsgtk_widget_get_window(GtkWidget *widget) +{ +#if GTK_CHECK_VERSION(2,14,0) + return gtk_widget_get_window(widget); +#else + return widget->window; +#endif +} + GdkWindow *nsgtk_layout_get_bin_window(GtkLayout *layout) { #if GTK_CHECK_VERSION(2,14,0) @@ -449,6 +852,23 @@ GdkWindow *nsgtk_layout_get_bin_window(GtkLayout *layout) return layout->bin_window; #endif } +#endif + +void nsgtk_im_context_set_client_widget(GtkIMContext* context, GtkWidget* widget) +{ +#if GTK_CHECK_VERSION(4,0,0) + gtk_im_context_set_client_widget(context, widget); +#else + GdkWindow *window; +#if GTK_CHECK_VERSION(2,14,0) + window = gtk_layout_get_bin_window(GTK_LAYOUT(widget)); +#else + window = layout->bin_window; +#endif + + gtk_im_context_set_client_window(context, window); +#endif +} gdouble nsgtk_adjustment_get_step_increment(GtkAdjustment *adjustment) { @@ -517,6 +937,33 @@ GtkWidget *nsgtk_image_new_from_pixbuf_icon(GdkPixbuf *pixbuf, GtkIconSize size) #endif } +/* exported interface documented in gtk/compat.h */ +void nsgtk_window_destroy(GtkWindow *window) +{ +#if GTK_CHECK_VERSION(4,0,0) + gtk_window_destroy(window); +#else + gtk_widget_destroy(GTK_WIDGET(window)); +#endif +} + +void nsgtk_window_set_hide_on_close(GtkWindow *window, gboolean setting) +{ +#if GTK_CHECK_VERSION(4,0,0) + gtk_window_set_hide_on_close(window, setting); +#else + if (setting) { + g_signal_connect(G_OBJECT(window), + "delete_event", + G_CALLBACK(gtk_widget_hide_on_delete), + NULL); + } else { + g_signal_handlers_disconnect_by_func(G_OBJECT(window), + G_CALLBACK(gtk_widget_hide_on_delete), + NULL); + } +#endif +} /* exported interface documented in gtk/compat.h */ void nsgtk_window_set_opacity(GtkWindow *window, gdouble opacity) diff --git a/frontends/gtk/compat.h b/frontends/gtk/compat.h index 3b2f55094..871863e2d 100644 --- a/frontends/gtk/compat.h +++ b/frontends/gtk/compat.h @@ -66,8 +66,10 @@ #define NSGTK_STOCK_OPEN_MENU GTK_STOCK_JUSTIFY_FILL #endif -/* widget alignment only available since 3.0 */ -#if !GTK_CHECK_VERSION(3,0,0) + +#if GTK_CHECK_VERSION(3,0,0) +/* widget alignment only available since 3.0 */ +#else typedef enum { GTK_ALIGN_FILL, GTK_ALIGN_START, @@ -83,6 +85,331 @@ typedef enum { #endif +#if GTK_CHECK_VERSION(4,0,0) +/* TODO: this is mostly rubbish just to see how big a pile of fail it really is */ + +/* +the GTK 4 API has removed 80 interfaces +The highlights are: + - removal of main event loop + - removal of all the gdk events + - removal of all menus! + - removal of toolbar and all its sub widgets + - removal of numerous widgets including container, bin and layout + - removal of acelerators + - removal various window and widget methods including widget delete?!? + */ + +/* GDK first */ +typedef GdkSurface GdkWindow; +typedef int GdkWindowTypeHint; +typedef void GdkScreen; +typedef void GdkEventFocus; +typedef int GdkAtom; +typedef struct {uint keyval; int state;} GdkEventKey; +typedef struct {int type;int button; int state;int x;int y;} GdkEventButton; +typedef struct {int state;int x;int y;} GdkEventMotion; +typedef struct {int direction;int x;int y;} GdkEventScroll; +typedef enum +{ + GDK_X_CURSOR = 0, + GDK_ARROW = 2, + GDK_BASED_ARROW_DOWN = 4, + GDK_BASED_ARROW_UP = 6, + GDK_BOAT = 8, + GDK_BOGOSITY = 10, + GDK_BOTTOM_LEFT_CORNER = 12, + GDK_BOTTOM_RIGHT_CORNER = 14, + GDK_BOTTOM_SIDE = 16, + GDK_BOTTOM_TEE = 18, + GDK_BOX_SPIRAL = 20, + GDK_CENTER_PTR = 22, + GDK_CIRCLE = 24, + GDK_CLOCK = 26, + GDK_COFFEE_MUG = 28, + GDK_CROSS = 30, + GDK_CROSS_REVERSE = 32, + GDK_CROSSHAIR = 34, + GDK_DIAMOND_CROSS = 36, + GDK_DOT = 38, + GDK_DOTBOX = 40, + GDK_DOUBLE_ARROW = 42, + GDK_DRAFT_LARGE = 44, + GDK_DRAFT_SMALL = 46, + GDK_DRAPED_BOX = 48, + GDK_EXCHANGE = 50, + GDK_FLEUR = 52, + GDK_GOBBLER = 54, + GDK_GUMBY = 56, + GDK_HAND1 = 58, + GDK_HAND2 = 60, + GDK_HEART = 62, + GDK_ICON = 64, + GDK_IRON_CROSS = 66, + GDK_LEFT_PTR = 68, + GDK_LEFT_SIDE = 70, + GDK_LEFT_TEE = 72, + GDK_LEFTBUTTON = 74, + GDK_LL_ANGLE = 76, + GDK_LR_ANGLE = 78, + GDK_MAN = 80, + GDK_MIDDLEBUTTON = 82, + GDK_MOUSE = 84, + GDK_PENCIL = 86, + GDK_PIRATE = 88, + GDK_PLUS = 90, + GDK_QUESTION_ARROW = 92, + GDK_RIGHT_PTR = 94, + GDK_RIGHT_SIDE = 96, + GDK_RIGHT_TEE = 98, + GDK_RIGHTBUTTON = 100, + GDK_RTL_LOGO = 102, + GDK_SAILBOAT = 104, + GDK_SB_DOWN_ARROW = 106, + GDK_SB_H_DOUBLE_ARROW = 108, + GDK_SB_LEFT_ARROW = 110, + GDK_SB_RIGHT_ARROW = 112, + GDK_SB_UP_ARROW = 114, + GDK_SB_V_DOUBLE_ARROW = 116, + GDK_SHUTTLE = 118, + GDK_SIZING = 120, + GDK_SPIDER = 122, + GDK_SPRAYCAN = 124, + GDK_STAR = 126, + GDK_TARGET = 128, + GDK_TCROSS = 130, + GDK_TOP_LEFT_ARROW = 132, + GDK_TOP_LEFT_CORNER = 134, + GDK_TOP_RIGHT_CORNER = 136, + GDK_TOP_SIDE = 138, + GDK_TOP_TEE = 140, + GDK_TREK = 142, + GDK_UL_ANGLE = 144, + GDK_UMBRELLA = 146, + GDK_UR_ANGLE = 148, + GDK_WATCH = 150, + GDK_XTERM = 152, + GDK_LAST_CURSOR, + GDK_CURSOR_IS_PIXMAP = -1 +} GdkCursorType; +typedef enum +{ + GDK_EXPOSURE_MASK = 1 << 1, + GDK_POINTER_MOTION_MASK = 1 << 2, + GDK_POINTER_MOTION_HINT_MASK = 1 << 3, + GDK_BUTTON_MOTION_MASK = 1 << 4, + GDK_BUTTON1_MOTION_MASK = 1 << 5, + GDK_BUTTON2_MOTION_MASK = 1 << 6, + GDK_BUTTON3_MOTION_MASK = 1 << 7, + GDK_BUTTON_PRESS_MASK = 1 << 8, + GDK_BUTTON_RELEASE_MASK = 1 << 9, + GDK_KEY_PRESS_MASK = 1 << 10, + GDK_KEY_RELEASE_MASK = 1 << 11, + GDK_ENTER_NOTIFY_MASK = 1 << 12, + GDK_LEAVE_NOTIFY_MASK = 1 << 13, + GDK_FOCUS_CHANGE_MASK = 1 << 14, + GDK_STRUCTURE_MASK = 1 << 15, + GDK_PROPERTY_CHANGE_MASK = 1 << 16, + GDK_VISIBILITY_NOTIFY_MASK = 1 << 17, + GDK_PROXIMITY_IN_MASK = 1 << 18, + GDK_PROXIMITY_OUT_MASK = 1 << 19, + GDK_SUBSTRUCTURE_MASK = 1 << 20, + GDK_SCROLL_MASK = 1 << 21, + GDK_TOUCH_MASK = 1 << 22, + GDK_SMOOTH_SCROLL_MASK = 1 << 23, + GDK_TOUCHPAD_GESTURE_MASK = 1 << 24, + GDK_TABLET_PAD_MASK = 1 << 25, + GDK_ALL_EVENTS_MASK = 0x3FFFFFE +} GdkEventMask; +typedef enum +{ + GDK_DESTROY = 1, + GDK_2BUTTON_PRESS = 5, + GDK_3BUTTON_PRESS = 6, +} NSGdkEventType; + +GdkScreen* gdk_screen_get_default(void); +gdouble gdk_screen_get_resolution(GdkScreen* screen); +PangoContext* gdk_pango_context_get(void); +GdkCursor* gdk_cursor_new_from_pixbuf(GdkDisplay* display, GdkPixbuf* pixbuf, gint x, gint y); +gboolean gdk_event_get_scroll_deltas(const GdkEvent* event, gdouble* delta_x, gdouble* delta_y); + +/* GTK next */ +typedef GtkFixed GtkLayout; /* GTK4 removed layout widget, substitute with GtkFixed */ +#define GTK_LAYOUT GTK_FIXED +typedef void GtkMenuItem; +typedef void GtkMenu; +typedef void GtkMenuBar; +typedef void GtkMenuShell; +typedef void GtkCheckMenuItem; +typedef void GtkAccelGroup; +typedef void GtkClipboard; +typedef GtkBox GtkToolbar; +typedef void GtkToolButton; +typedef void GtkStyle; +typedef void GtkToolItem; +typedef void GdkDragContext; +typedef void GtkSelectionData; +typedef GtkWidget GtkContainer; +typedef void GtkBin; +typedef int GtkReliefStyle; +typedef struct GtkTargetEntry { + gchar* target; + guint flags; + guint info; +} GtkTargetEntry; +typedef int GtkAccelFlags; +typedef int GtkDestDefaults; +typedef void(* GtkCallback) (GtkWidget* widget, gpointer data); + +#define GTK_RELIEF_NONE 0 +#define GDK_MOD1_MASK 0 +typedef enum { + GTK_ICON_SIZE_INVALID=0, + GTK_ICON_SIZE_MENU=1, + GTK_ICON_SIZE_SMALL_TOOLBAR=2, + GTK_ICON_SIZE_LARGE_TOOLBAR=3, + GTK_ICON_SIZE_BUTTON=4, + GTK_ICON_SIZE_DND=5, + GTK_ICON_SIZE_DIALOG=6, +} NSGtkIconSize; +typedef enum { + GTK_TOOLBAR_ICONS=0, + GTK_TOOLBAR_TEXT=1, + GTK_TOOLBAR_BOTH=2, + GTK_TOOLBAR_BOTH_HORIZ=3, +} GtkToolbarStyle; +#define GDK_WINDOW_TYPE_HINT_DROPDOWN_MENU 0 +#define GTK_ACCEL_VISIBLE 0 +#define GDK_SELECTION_CLIPBOARD 0 +#define GTK_TARGET_SAME_APP 0 +#define GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER 0 +#define GTK_DEST_DEFAULT_MOTION 0 +#define GTK_DEST_DEFAULT_DROP 0 +#define GDK_WINDOW_STATE_FULLSCREEN 0 + +#define GTK_BIN(x) x +#define GTK_CONTAINER(x) x + +#define GTK_MENU(x) x +#define GTK_MENU_BAR(x) x +#define GTK_MENU_ITEM(x) x +#define GTK_MENU_SHELL(x) x +#define GTK_CHECK_MENU_ITEM(x) x + +#define GTK_TOOLBAR(x) x +#define GTK_TOOL_BUTTON(x) x +#define GTK_TOOL_ITEM(x) x + +gboolean gtk_main_iteration_do(gboolean blocking); +gboolean gtk_main_iteration(void); + +void gtk_window_set_default_icon(GdkPixbuf* icon); +void gtk_window_set_type_hint(GtkWindow* window, GdkWindowTypeHint hint); +void gtk_window_set_screen(GtkWindow* window, GdkScreen* screen); +void gtk_window_get_size(GtkWindow* window, gint* width, gint* height); +void gtk_window_resize(GtkWindow* window, gint width, gint height); +void gtk_window_move(GtkWindow* window, gint x, gint y); +void gtk_window_get_position(GtkWindow* window, gint* root_x, gint* root_y); +void gtk_window_add_accel_group(GtkWindow* window, GtkAccelGroup* accel_group); + +void gtk_widget_show_all(GtkWidget *widget); +void gtk_widget_destroy(GtkWidget* widget); +void gtk_widget_set_events(GtkWidget* widget, gint events); +void gtk_widget_add_events(GtkWidget* widget, gint events ); +void gtk_widget_set_allocation(GtkWidget* widget, const GtkAllocation* allocation); +GdkWindow* gtk_widget_get_parent_window(GtkWidget* widget); +GtkWidget* gtk_widget_get_toplevel(GtkWidget* widget); +GdkScreen* gtk_widget_get_screen(GtkWidget* widget); +void gtk_widget_add_accelerator(GtkWidget* widget, const gchar* accel_signal, GtkAccelGroup* accel_group, guint accel_key, GdkModifierType accel_mods, GtkAccelFlags accel_flags); +void gtk_widget_queue_draw_area(GtkWidget* widget, gint x, gint y, gint width, gint height); + +GtkWidget* gtk_menu_new(void); +void gtk_menu_shell_append(GtkMenuShell* menu_shell, GtkWidget* child); +void gtk_menu_item_set_submenu(GtkMenuItem* menu_item, GtkWidget* submenu); +GtkWidget*gtk_menu_item_new_with_mnemonic(const gchar* label); +void gtk_menu_popup_at_pointer(GtkMenu* menu, const GdkEvent* trigger_event); +void gtk_menu_set_accel_group (GtkMenu *menu, GtkAccelGroup *accel_group); + +GtkWidget* gtk_check_menu_item_new_with_label(const gchar* label); +void gtk_check_menu_item_set_active(GtkCheckMenuItem* check_menu_item, gboolean is_active); +gboolean gtk_check_menu_item_get_active(GtkCheckMenuItem* check_menu_item); +GtkWidget* gtk_separator_menu_item_new(void); +GtkWidget* gtk_check_menu_item_new_with_mnemonic(const gchar* label); + +GtkWidget* gtk_toolbar_new(void); +void gtk_toolbar_set_icon_size(GtkToolbar* toolbar, GtkIconSize icon_size); +void gtk_toolbar_set_style(GtkToolbar* toolbar, GtkToolbarStyle style); +void gtk_toolbar_set_show_arrow(GtkToolbar* toolbar, gboolean show_arrow); +gint gtk_toolbar_get_drop_index(GtkToolbar* toolbar, gint x, gint y); +void gtk_toolbar_insert(GtkToolbar* toolbar, GtkToolItem* item, gint pos); +void gtk_toolbar_set_drop_highlight_item(GtkToolbar* toolbar, GtkToolItem* tool_item, gint index_); +GtkToolItem* gtk_tool_button_new(GtkWidget* icon_widget, const gchar* label); +GtkToolItem* gtk_tool_item_new(void); +void gtk_tool_button_set_icon_widget(GtkToolButton* button, GtkWidget* icon_widget); +void gtk_tool_item_set_expand(GtkToolItem *tool_item, gboolean expand); +void gtk_tool_button_set_icon_name(GtkToolButton* button, const gchar* icon_name); +void gtk_tool_item_set_use_drag_window(GtkToolItem *tool_item, gboolean use_drag_window); +void gtk_tool_button_set_label(GtkToolButton *button, const gchar *label); + +void gtk_container_add(GtkContainer* container, GtkWidget* widget); +void gtk_container_remove(GtkContainer* container, GtkWidget* widget); +void gtk_container_foreach(GtkContainer* container, GtkCallback callback, gpointer callback_data); + +gint gtk_dialog_run(GtkDialog* dialog); + +void gtk_editable_cut_clipboard(GtkEditable* editable); +void gtk_editable_copy_clipboard(GtkEditable* editable); +void gtk_editable_paste_clipboard(GtkEditable *editable); + +GtkClipboard*gtk_clipboard_get(GdkAtom selection); +void gtk_clipboard_set_text(GtkClipboard* clipboard, const gchar* text, gint len); +gchar* gtk_clipboard_wait_for_text(GtkClipboard* clipboard); + +void gtk_entry_set_text (GtkEntry* entry, const gchar* text ); +void gtk_entry_set_width_chars(GtkEntry* entry,gint n_chars); +const gchar* gtk_entry_get_text(GtkEntry* entry); + +void gtk_drag_source_set(GtkWidget* widget, GdkModifierType start_button_mask, const GtkTargetEntry* targets, gint n_targets, GdkDragAction actions); +void gtk_drag_finish(GdkDragContext* context, gboolean success, gboolean del, guint32 time_); +void gtk_drag_dest_set(GtkWidget* widget, GtkDestDefaults flags, const GtkTargetEntry* targets, gint n_targets, GdkDragAction actions); + +void gtk_box_pack_start(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding); +void gtk_label_set_line_wrap(GtkLabel* label, gboolean wrap); +gboolean gtk_show_uri_on_window(GtkWindow* parent, const char* uri, guint32 timestamp, GError** error); +gboolean gtk_icon_size_lookup (GtkIconSize size, gint* width, gint* height); +void gtk_builder_connect_signals(GtkBuilder* builder, gpointer user_data); +void gtk_im_context_set_client_window (GtkIMContext *context, GdkWindow *window); +void gtk_file_chooser_set_do_overwrite_confirmation(GtkFileChooser* chooser, gboolean do_overwrite_confirmation); +gchar* gtk_file_chooser_get_filename(GtkFileChooser* chooser); +void gtk_button_set_image(GtkButton* button, GtkWidget* image); +GtkIconTheme* gtk_icon_theme_get_default(void); +gboolean gtk_events_pending(void); +GtkWidget* gtk_event_box_new(void); +GtkWidget* gtk_bin_get_child(GtkBin* bin); +void gtk_button_set_relief(GtkButton* button, GtkReliefStyle relief); +GtkAccelGroup* gtk_accel_group_new(void); +void gtk_layout_set_size(GtkLayout* layout, guint width, guint height); +GdkCursor* gdk_cursor_new_for_display(GdkDisplay* display, GdkCursorType cursor_type); + + +#endif + +void nsgtk_widget_size_allocate(GtkWidget* widget, const GtkAllocation* allocation, int baseline); + +/** + * Adds child to box, packed with reference to the start of box. + * The child is packed after any other child packed with reference to the start + * of box. + */ +void nsgtk_box_pack_start(GtkBox* box, GtkWidget* child, gboolean expand, gboolean fill, guint padding); + +/** + * Gets the value set by gtk_window_set_default_icon_list() + */ +GList *nsgtk_window_get_default_icon_list(void); + + /** * Set the alignment of a widget. * @@ -172,6 +499,10 @@ enum { #endif +void nsgtk_init(int* argc, char*** argv); + +GtkWidget* nsgtk_image_new_from_icon_name(const gchar* icon_name, GtkIconSize size); + /** * Sets the icon shown in the entry at the specified position from an * icon name. @@ -204,16 +535,6 @@ GtkWidget *nsgtk_image_new_from_stock(const gchar *stock_id, GtkIconSize size); */ GtkWidget *nsgtk_button_new_from_stock(const gchar *stock_id); -/** - * Fills item with the registered values for stock_id. - * - * Compatability interface for original deprecated in GTK 3.10 - * - * \param stock_id the name of the stock item. - * \param item The structure to update if the stock_id was known. - * \return TRUE if stock_id was known. - */ -gboolean nsgtk_stock_lookup(const gchar *stock_id, GtkStockItem *item); /** * Sets whether the button will grab focus when it is clicked with the mouse. @@ -225,6 +546,18 @@ gboolean nsgtk_stock_lookup(const gchar *stock_id, GtkStockItem *item); */ void nsgtk_button_set_focus_on_click(GtkButton *button, gboolean focus_on_click); +gboolean nsgtk_file_chooser_set_current_folder(GtkFileChooser* chooser, GFile* file); + +/** + * destroy a gtk window + */ +void nsgtk_window_destroy(GtkWindow *window); + +/** + * set the window to be hidden on close + */ +void nsgtk_window_set_hide_on_close(GtkWindow *window, gboolean); + void nsgtk_window_set_opacity(GtkWindow *window, gdouble opacity); void nsgtk_scrolled_window_add_with_viewport(GtkScrolledWindow *window, GtkWidget *child); @@ -242,10 +575,30 @@ const PangoFontDescription* nsgtk_style_context_get_font(GtkStyleContext *style, 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); -GdkWindow *nsgtk_widget_get_window(GtkWidget *widget); + +/** + * set cursor on a widget + * + * /param widget The widget upon which to set the cursor. + * /param cursor The gdk cursor to set. + */ +void nsgtk_widget_set_cursor(GtkWidget *widget, GdkCursor *cursor); + +/** + * set input manager on client widget + */ +void nsgtk_im_context_set_client_widget(GtkIMContext* context, GtkWidget* widget); + GtkWidget *nsgtk_dialog_get_content_area(GtkDialog *dialog); gboolean nsgtk_show_uri(GdkScreen *screen, const gchar *uri, guint32 timestamp, GError **error); + +#if GTK_CHECK_VERSION(3,0,0) +/* not required */ +#else +GdkWindow *nsgtk_widget_get_window(GtkWidget *widget); GdkWindow *nsgtk_layout_get_bin_window(GtkLayout *layout); +#endif + void nsgtk_widget_get_allocation(GtkWidget *widget, GtkAllocation *allocation); gboolean nsgtk_icon_size_lookup_for_settings (GtkSettings *settings, GtkIconSize size, gint *width, gint *height); diff --git a/frontends/gtk/cookies.c b/frontends/gtk/cookies.c index 0df9719cb..d9e1f0b68 100644 --- a/frontends/gtk/cookies.c +++ b/frontends/gtk/cookies.c @@ -23,13 +23,13 @@ #include <stdint.h> #include <stdlib.h> -#include <gtk/gtk.h> #include "utils/log.h" #include "netsurf/keypress.h" #include "netsurf/plotters.h" #include "desktop/cookie_manager.h" +#include "gtk/compat.h" #include "gtk/cookies.h" #include "gtk/plotters.h" #include "gtk/resources.h" @@ -275,10 +275,7 @@ static nserror nsgtk_cookies_init(void) gtk_builder_get_object(ncwin->builder, "cookiesDrawingArea")); /* make the delete event hide the window */ - g_signal_connect(G_OBJECT(ncwin->wnd), - "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), - NULL); + nsgtk_window_set_hide_on_close(ncwin->wnd, TRUE); nsgtk_cookies_init_menu(ncwin); @@ -334,7 +331,7 @@ nserror nsgtk_cookies_destroy(void) res = cookie_manager_fini(); if (res == NSERROR_OK) { res = nsgtk_corewindow_fini(&cookie_window->core); - gtk_widget_destroy(GTK_WIDGET(cookie_window->wnd)); + nsgtk_window_destroy(GTK_WINDOW(cookie_window->wnd)); g_object_unref(G_OBJECT(cookie_window->builder)); free(cookie_window); cookie_window = NULL; diff --git a/frontends/gtk/corewindow.c b/frontends/gtk/corewindow.c index baa4cf155..9d7579cdd 100644 --- a/frontends/gtk/corewindow.c +++ b/frontends/gtk/corewindow.c @@ -537,7 +537,7 @@ nsgtk_cw_draw_event(GtkWidget *widget, { struct nsgtk_corewindow *nsgtk_cw = (struct nsgtk_corewindow *)g; struct rect clip; - + clip.x0 = event->area.x; clip.y0 = event->area.y; clip.x1 = event->area.x + event->area.width; diff --git a/frontends/gtk/download.c b/frontends/gtk/download.c index 173d2e46e..ed46a8b53 100644 --- a/frontends/gtk/download.c +++ b/frontends/gtk/download.c @@ -20,7 +20,6 @@ #include <string.h> #include <math.h> -#include <gtk/gtk.h> #include <glib/gstdio.h> #include "utils/log.h" @@ -32,6 +31,7 @@ #include "desktop/download.h" #include "netsurf/download.h" +#include "gtk/compat.h" #include "gtk/warn.h" #include "gtk/scaffolding.h" #include "gtk/toolbar_items.h" @@ -639,7 +639,7 @@ nsgtk_download_dialog_show(const gchar *filename, NULL); gtk_file_chooser_set_current_name (GTK_FILE_CHOOSER(dialog), filename); - gtk_file_chooser_set_current_folder + nsgtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER(dialog), nsoption_charp(downloads_directory)); gtk_file_chooser_set_do_overwrite_confirmation diff --git a/frontends/gtk/fetch.c b/frontends/gtk/fetch.c index d77073a63..322b6bb10 100644 --- a/frontends/gtk/fetch.c +++ b/frontends/gtk/fetch.c @@ -38,7 +38,6 @@ #include <unistd.h> #include <string.h> #include <strings.h> -#include <gtk/gtk.h> #include "utils/log.h" #include "utils/hashtable.h" @@ -48,6 +47,7 @@ #include "utils/ascii.h" #include "netsurf/fetch.h" +#include "gtk/compat.h" #include "gtk/gui.h" #include "gtk/resources.h" #include "gtk/fetch.h" diff --git a/frontends/gtk/global_history.c b/frontends/gtk/global_history.c index 33032e567..71528cb49 100644 --- a/frontends/gtk/global_history.c +++ b/frontends/gtk/global_history.c @@ -188,7 +188,7 @@ MENUHANDLER(export) NSGTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(save_dialog), + nsgtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(save_dialog), getenv("HOME") ? getenv("HOME") : "/"); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(save_dialog), @@ -332,10 +332,7 @@ static nserror nsgtk_global_history_init(void) "globalHistoryDrawingArea")); /* make the delete event hide the window */ - g_signal_connect(G_OBJECT(ncwin->wnd), - "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), - NULL); + nsgtk_window_set_hide_on_close(ncwin->wnd, TRUE); nsgtk_global_history_init_menu(ncwin); diff --git a/frontends/gtk/gui.c b/frontends/gtk/gui.c index 661176ded..9c51148c5 100644 --- a/frontends/gtk/gui.c +++ b/frontends/gtk/gui.c @@ -760,7 +760,7 @@ static nserror create_cache_home(char **cache_home_out) /** * GTK specific initialisation */ -static nserror nsgtk_init(int *pargc, char ***pargv, char **cache_home) +static nserror nsgtk_appinit(int *pargc, char ***pargv, char **cache_home) { nserror ret; @@ -777,7 +777,7 @@ static nserror nsgtk_init(int *pargc, char ***pargv, char **cache_home) } /* Initialise gtk */ - gtk_init(pargc, pargv); + nsgtk_init(pargc, pargv); /* initialise logging. Not fatal if it fails but not much we * can do about it either. @@ -1203,7 +1203,7 @@ int main(int argc, char** argv) } /* gtk specific initialisation */ - res = nsgtk_init(&argc, &argv, &cache_home); + res = nsgtk_appinit(&argc, &argv, &cache_home); if (res != NSERROR_OK) { fprintf(stderr, "NetSurf gtk failed to initialise (%s)\n", messages_get_errorcode(res)); diff --git a/frontends/gtk/hotlist.c b/frontends/gtk/hotlist.c index b047dc65f..9e2134c5a 100644 --- a/frontends/gtk/hotlist.c +++ b/frontends/gtk/hotlist.c @@ -124,7 +124,7 @@ MENUHANDLER(export) NSGTK_STOCK_SAVE, GTK_RESPONSE_ACCEPT, NULL); - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(save_dialog), + nsgtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(save_dialog), getenv("HOME") ? getenv("HOME") : "/"); gtk_file_chooser_set_current_name(GTK_FILE_CHOOSER(save_dialog), @@ -346,10 +346,7 @@ static nserror nsgtk_hotlist_init(void) gtk_builder_get_object(ncwin->builder, "hotlistDrawingArea")); /* make the delete event hide the window */ - g_signal_connect(G_OBJECT(ncwin->wnd), - "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), - NULL); + nsgtk_window_set_hide_on_close(ncwin->wnd, TRUE); nsgtk_hotlist_init_menu(ncwin); diff --git a/frontends/gtk/local_history.c b/frontends/gtk/local_history.c index 0d59c468a..69fe92a29 100644 --- a/frontends/gtk/local_history.c +++ b/frontends/gtk/local_history.c @@ -174,11 +174,10 @@ nsgtk_local_history_init(struct browser_window *bw, "HistoryDrawingArea")); /* make the delete event hide the window */ - g_signal_connect(G_OBJECT(ncwin->wnd), - "delete_event", - G_CALLBACK(gtk_widget_hide_on_delete), - NULL); + nsgtk_window_set_hide_on_close(ncwin->wnd, TRUE); + /* Ditto if we lose the grab */ +#if !GTK_CHECK_VERSION(4,0,0) g_signal_connect(G_OBJECT(ncwin->wnd), "grab-broken-event", G_CALLBACK(gtk_widget_hide_on_delete), @@ -188,6 +187,7 @@ nsgtk_local_history_init(struct browser_window *bw, "button-press-event", G_CALLBACK(gtk_widget_hide_on_delete), ncwin); +#endif ncwin->core.draw = nsgtk_local_history_draw; ncwin->core.key = nsgtk_local_history_key; diff --git a/frontends/gtk/page_info.c b/frontends/gtk/page_info.c index 0d76a2f71..5c56cb1ae 100644 --- a/frontends/gtk/page_info.c +++ b/frontends/gtk/page_info.c @@ -23,7 +23,6 @@ #include <stdint.h> #include <stdlib.h> -#include <gtk/gtk.h> #include "utils/log.h" #include "utils/messages.h" @@ -34,6 +33,7 @@ #include "desktop/page-info.h" #include "desktop/gui_internal.h" +#include "gtk/compat.h" #include "gtk/plotters.h" #include "gtk/scaffolding.h" #include "gtk/resources.h" diff --git a/frontends/gtk/plotters.c b/frontends/gtk/plotters.c index 110dcffc5..1f8cc1ffd 100644 --- a/frontends/gtk/plotters.c +++ b/frontends/gtk/plotters.c @@ -28,12 +28,12 @@ #include <math.h> #include <assert.h> #include <gdk/gdk.h> -#include <gtk/gtk.h> #include "utils/log.h" #include "netsurf/plotters.h" #include "utils/nsoption.h" +#include "gtk/compat.h" #include "gtk/layout_pango.h" #include "gtk/plotters.h" #include "gtk/scaffolding.h" diff --git a/frontends/gtk/preferences.c b/frontends/gtk/preferences.c index a44e7241e..1fa78e072 100644 --- a/frontends/gtk/preferences.c +++ b/frontends/gtk/preferences.c @@ -891,7 +891,7 @@ G_MODULE_EXPORT void nsgtk_preferences_fileChooserDownloads_realize(GtkWidget *widget, struct ppref *priv) { - gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), + nsgtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(widget), nsoption_charp(downloads_directory)); } diff --git a/frontends/gtk/print.c b/frontends/gtk/print.c index c4f1b0f7a..9e418cba3 100644 --- a/frontends/gtk/print.c +++ b/frontends/gtk/print.c @@ -31,7 +31,6 @@ #include <math.h> #include <assert.h> #include <gdk/gdk.h> -#include <gtk/gtk.h> #include "utils/log.h" #include "utils/utils.h" @@ -40,6 +39,7 @@ #include "desktop/print.h" #include "desktop/printer.h" +#include "gtk/compat.h" #include "gtk/layout_pango.h" #include "gtk/bitmap.h" #include "gtk/print.h" diff --git a/frontends/gtk/res/gtk4/cookies.ui b/frontends/gtk/res/gtk4/cookies.ui new file mode 100644 index 000000000..85f9aae76 --- /dev/null +++ b/frontends/gtk/res/gtk4/cookies.ui @@ -0,0 +1,206 @@ +<?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">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/frontends/gtk/res/gtk4/downloads.ui b/frontends/gtk/res/gtk4/downloads.ui new file mode 100644 index 000000000..1e71328a4 --- /dev/null +++ b/frontends/gtk/res/gtk4/downloads.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/frontends/gtk/res/gtk4/globalhistory.ui b/frontends/gtk/res/gtk4/globalhistory.ui new file mode 100644 index 000000000..c0496964f --- /dev/null +++ b/frontends/gtk/res/gtk4/globalhistory.ui @@ -0,0 +1,238 @@ +<?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="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> + </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> + </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="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="globalHistoryScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport" id="globalHistoryViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkDrawingArea" id="globalHistoryDrawingArea"> + <property name="visible">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/frontends/gtk/res/gtk4/hotlist.ui b/frontends/gtk/res/gtk4/hotlist.ui new file mode 100644 index 000000000..ccd193637 --- /dev/null +++ b/frontends/gtk/res/gtk4/hotlist.ui @@ -0,0 +1,255 @@ +<?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">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/frontends/gtk/res/gtk4/localhistory.ui b/frontends/gtk/res/gtk4/localhistory.ui new file mode 100644 index 000000000..9a36a91a7 --- /dev/null +++ b/frontends/gtk/res/gtk4/localhistory.ui @@ -0,0 +1,46 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="wndHistory"> + <property name="type">GTK_WINDOW_POPUP</property> + <property name="can_focus">False</property> + <property name="title" translatable="yes">NetSurf Local History</property> + <property name="window_position">center</property> + <property name="default_width">20</property> + <property name="default_height">20</property> + <property name="type_hint">utility</property> + <property name="decorated">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="GtkScrolledWindow" id="HistoryScrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport" id="HistoryViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkDrawingArea" id="HistoryDrawingArea"> + <property name="visible">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/frontends/gtk/res/gtk4/netsurf.ui b/frontends/gtk/res/gtk4/netsurf.ui new file mode 100644 index 000000000..6ea8f07a7 --- /dev/null +++ b/frontends/gtk/res/gtk4/netsurf.ui @@ -0,0 +1,61 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface> + <requires lib="gtk+" version="3.0"/> + <object class="GtkWindow" id="wndBrowser"> + <property name="can_focus">False</property> + <child> + <placeholder/> + </child> + <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="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/frontends/gtk/res/gtk4/options.ui b/frontends/gtk/res/gtk4/options.ui new file mode 100644 index 000000000..82a3e175a --- /dev/null +++ b/frontends/gtk/res/gtk4/options.ui @@ -0,0 +1,3015 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkAdjustment" id="adjustment_animation_time"> + <property name="lower">0.10000000000000001</property> + <property name="upper">10</property> + <property name="value">0.10000000000000001</property> + <property name="step_increment">0.10000000000000001</property> + <property name="page_increment">1</property> + </object> + <object class="GtkAdjustment" id="adjustment_cache_disc_size"> + <property name="upper">4096</property> + <property name="value">1024</property> + <property name="step_increment">4</property> + <property name="page_increment">16</property> + </object> + <object class="GtkAdjustment" id="adjustment_cache_memory_size"> + <property name="upper">1024</property> + <property name="value">16</property> + <property name="step_increment">4</property> + <property name="page_increment">16</property> + </object> + <object class="GtkAdjustment" id="adjustment_disc_cache_age"> + <property name="upper">999</property> + <property name="value">28</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_cached"> + <property name="upper">100</property> + <property name="value">1</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_max"> + <property name="lower">1</property> + <property name="upper">100</property> + <property name="value">10</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_fetching_perhost"> + <property name="lower">1</property> + <property name="upper">100</property> + <property name="value">1</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_font_default_size"> + <property name="lower">1</property> + <property name="upper">99.900000000000006</property> + <property name="value">16</property> + <property name="step_increment">0.10000000000000001</property> + <property name="page_increment">2</property> + </object> + <object class="GtkAdjustment" id="adjustment_history_age"> + <property name="upper">999</property> + <property name="value">28</property> + <property name="step_increment">1</property> + <property name="page_increment">28</property> + </object> + <object class="GtkAdjustment" id="adjustment_pdf_lmargin"> + <property name="upper">999</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_pdf_scale"> + <property name="lower">1</property> + <property name="upper">1000</property> + <property name="value">100</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="adjustment_proxy_port"> + <property name="lower">1</property> + <property name="upper">65535</property> + <property name="value">3128</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkDialog" id="dialogPreferences"> + <property name="can_focus">False</property> + <property name="border_width">5</property> + <property name="title" translatable="yes">preferencesTitle</property> + <property name="window_position">center-on-parent</property> + <property name="destroy_with_parent">True</property> + <property name="type_hint">dialog</property> + <signal name="destroy" handler="nsgtk_preferences_dialogPreferences_destroy" swapped="no"/> + <signal name="delete-event" handler="nsgtk_preferences_dialogPreferences_deleteevent" swapped="no"/> + <signal name="response" handler="nsgtk_preferences_dialogPreferences_response" swapped="no"/> + <child internal-child="vbox"> + <object class="GtkBox" id="vbox_dialog"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">2</property> + <child internal-child="action_area"> + <object class="GtkButtonBox" id="dialog-action_area1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkButton" id="help"> + <property name="label">gtk-help</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="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="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="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="fill">True</property> + <property name="pack_type">end</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkNotebook" id="notebook1"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <child> + <object class="GtkBox" id="vbox_main"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="valign">start</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_main_startup"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkBox" id="hbox1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label_startup_page"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesStartupPage</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">preferencesStartupPageTooltip</property> + <property name="invisible_char">●</property> + <signal name="changed" handler="nsgtk_preferences_entryHomePageURL_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_entryHomePageURL_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="setDefaultPage"> + <property name="label" translatable="yes">preferencesStartupPageDefault</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + <signal name="clicked" handler="nsgtk_preferences_setDefaultPage_clicked" swapped="no"/> + </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> + <child> + <object class="GtkButton" id="setCurrentPage"> + <property name="label" translatable="yes">preferencesStartupPageCurrent</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + <signal name="clicked" handler="nsgtk_preferences_setCurrentPage_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="pack_type">end</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label_main_startup"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesStartup</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_main_search"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkUrlSearch"> + <property name="label" translatable="yes">preferencesSearchURLBar</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkUrlSearch_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkUrlSearch_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesSearchProvider</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboSearch"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">preferencesSearchProviderTooltip</property> + <property name="halign">start</property> + <property name="model">liststore_search_provider</property> + <signal name="changed" handler="nsgtk_preferences_comboSearch_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboSearch_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext1"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesSearch</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_main_downloads"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkClearDownloads"> + <property name="label" translatable="yes">preferencesDownloadsRemove</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkClearDownloads_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkClearDownloads_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkRequestOverwrite"> + <property name="label" translatable="yes">preferencesDownloadsConfirm</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkRequestOverwrite_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkRequestOverwrite_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label8"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesDownloadsLocation</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFileChooserButton" id="fileChooserDownloads"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">preferencesDownloadsLocationTooltip</property> + <property name="halign">start</property> + <property name="action">select-folder</property> + <signal name="selection-changed" handler="nsgtk_preferences_fileChooserDownloads_selectionchanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_fileChooserDownloads_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label7"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesDownloads</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + <child type="tab"> + <object class="GtkLabel" id="label1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesMainTabtitle</property> + </object> + <packing> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkBox" id="vbox_appearance"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="valign">start</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_appearance_tabs"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkShowSingleTab"> + <property name="label" translatable="yes">preferencesTabsAlways</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkShowSingleTab_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkShowSingleTab_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkFocusNew"> + <property name="label" translatable="yes">preferencesTabsSwitch</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkFocusNew_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkFocusNew_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkNewBlank"> + <property name="label" translatable="yes">preferencesTabsNewly</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkNewBlank_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkNewBlank_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox5"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label9"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesTabsPosition</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboTabPosition"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="model">liststore_tab_position</property> + <signal name="changed" handler="nsgtk_preferences_comboTabPosition_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboTabPosition_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext2"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesTabs</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_appearance_tools"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkBox" id="hbox6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label13"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesDeveloperView</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboboxDeveloperView"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="model">liststore_developer_view</property> + <signal name="changed" handler="nsgtk_preferences_comboDeveloperView_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboDeveloperView_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext10"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label12"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesTools</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_appearance_url"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox7"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkDisplayRecentURLs"> + <property name="label" translatable="yes">preferencesURLbarDisplay</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkDisplayRecentURLs_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkDisplayRecentURLs_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label14"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesURLbar</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">7</property> + <property name="position">3</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_appearance_toolbar"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox8"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkBox" id="hbox7"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label16"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesToolbarButtons</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboButtonType"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="model">liststore_toolbar_buttontype</property> + <signal name="changed" handler="nsgtk_preferences_comboButtonType_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboButtonType_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext3"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label15"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesToolbar</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">4</property> + </packing> + </child> + </object> + <packing> + <property name="position">1</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesAppearanceTabtitle</property> + </object> + <packing> + <property name="position">1</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkBox" id="vbox_content"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">start</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_content_control"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox6"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkDisablePopups"> + <property name="label" translatable="yes">preferencesControlPrevent</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkDisablePopups_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkDisablePopups_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkHideAdverts"> + <property name="label" translatable="yes">preferencesControlHide</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkHideAdverts_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkHideAdverts_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkEnableJavascript"> + <property name="label" translatable="yes">preferencesControlEnable</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkEnableJavascript_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkEnableJavascript_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox8"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label17"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesControlLoad</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboboxLoadImages"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="halign">start</property> + <property name="model">liststore_image_loading</property> + <signal name="changed" handler="nsgtk_preferences_comboboxLoadImages_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboboxLoadImages_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext4"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label11"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesControl</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_content_animation"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox9"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkEnableAnimations"> + <property name="label" translatable="yes">preferencesAnimationEnable</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkEnableAnimations_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkEnableAnimations_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label18"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesAnimation</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_content_fonts"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment14"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="hbox11"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkBox" id="hbox12"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label26"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesFontsDefault</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboDefault"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="model">liststore_defaultfont</property> + <signal name="changed" handler="nsgtk_preferences_comboDefault_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboDefault_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext5"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox13"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label27"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesFontsSize</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinDefaultSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesFontsSizeTooltip</property> + <property name="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">4</property> + <property name="adjustment">adjustment_font_default_size</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinDefaultSize_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinDefaultSize_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="fontPreview"> + <property name="label" translatable="yes">preferencesFontsPreview</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + <property name="image">image1</property> + <property name="use_underline">True</property> + <signal name="clicked" handler="nsgtk_preferences_fontPreview_clicked" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label20"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesFonts</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_content_font"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox10"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkBox" id="hbox10"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">12</property> + <child> + <object class="GtkLabel" id="label21"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesLanguagePreferred</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboboxLanguage"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesLanguagePreferredTooltip</property> + <property name="halign">start</property> + <property name="model">liststore_content_language</property> + <signal name="changed" handler="nsgtk_preferences_comboboxLanguage_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboboxLanguage_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext7"> + <property name="xalign">0</property> + </object> + <attributes> + <attribute name="text">1</attribute> + </attributes> + </child> + <child> + <object class="GtkCellRendererText" id="cellrenderertext8"> + <property name="xalign">1</property> + </object> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label25"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesLanguage</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + <packing> + <property name="position">2</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label10"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesContentTabtitle</property> + </object> + <packing> + <property name="position">2</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkBox" id="vbox_privacy"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">start</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_privacy_general"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox15"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkSendReferer"> + <property name="label" translatable="yes">preferencesGeneralReferral</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkSendReferer_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkSendReferer_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkSendDNT"> + <property name="label" translatable="yes">preferencesGeneralDNT</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkSendDNT_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkSendDNT_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label61"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesGeneral</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_privacy_history"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment12"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox11"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkHoverURLs"> + <property name="label" translatable="yes">preferencesHistoryShow</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkHoverURLs_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkHoverURLs_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox14"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label28"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesHistoryRemember</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</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="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">4</property> + <property name="adjustment">adjustment_history_age</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <property name="update_policy">if-valid</property> + <signal name="value-changed" handler="nsgtk_preferences_spinHistoryAge_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinHistoryAge_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label29"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesHistoryDays</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label23"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesHistory</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_privacy_cache"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment13"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox12"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkTable" id="table3"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="n_rows">3</property> + <property name="n_columns">3</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> + <child> + <object class="GtkLabel" id="label30"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesCacheMemory</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label31"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesCacheDisc</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label34"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesCacheExpire</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMemoryCacheSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="adjustment">adjustment_cache_memory_size</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMemoryCacheSize_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMemoryCacheSize_realize" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinDiscCacheSize"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="adjustment">adjustment_cache_disc_size</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinDiscCacheSize_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinDiscCacheSize_realize" swapped="no"/> + </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> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinDiscCacheAge"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + <property name="width_chars">3</property> + <property name="adjustment">adjustment_disc_cache_age</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinDiscCacheAge_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinDiscCacheAge_realize" swapped="no"/> + </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> + </packing> + </child> + <child> + <object class="GtkLabel" id="label32"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">MB</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label33"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="no">MB</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="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label35"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesCacheDays</property> + </object> + <packing> + <property name="left_attach">2</property> + <property name="right_attach">3</property> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox17"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkButton" id="buttonCacheMaintenance"> + <property name="label" translatable="yes">preferencesCacheMaintenance</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_action_appearance">False</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="pack_type">end</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</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="can_focus">False</property> + <property name="label" translatable="yes">preferencesCache</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">3</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label22"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesPrivacyTabtitle</property> + </object> + <packing> + <property name="position">3</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkBox" id="vbox_network"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">start</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_network_proxy"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment15"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkTable" id="table2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="n_rows">5</property> + <property name="n_columns">2</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> + <child> + <object class="GtkLabel" id="label42"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesProxyType</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label43"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesProxyHost</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label44"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesProxyUsername</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label45"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesProxyPassword</property> + </object> + <packing> + <property name="top_attach">3</property> + <property name="bottom_attach">4</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkComboBox" id="comboProxyType"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyTypeTooltip</property> + <property name="model">liststore_proxy_type</property> + <signal name="changed" handler="nsgtk_preferences_comboProxyType_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_comboProxyType_realize" swapped="no"/> + <child> + <object class="GtkCellRendererText" id="cellrenderertext6"/> + <attributes> + <attribute name="text">0</attribute> + </attributes> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox19"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkEntry" id="entryProxyHost"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyHostTooltip</property> + <property name="invisible_char">●</property> + <signal name="changed" handler="nsgtk_preferences_entryProxyHost_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_entryProxyHost_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label46"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="no">:</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinProxyPort"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyPortTooltip</property> + <property name="max_length">5</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="adjustment">adjustment_proxy_port</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <property name="update_policy">if-valid</property> + <signal name="value-changed" handler="nsgtk_preferences_spinProxyPort_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinProxyPort_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</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> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryProxyUser"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyUsernameTooltip</property> + <property name="invisible_char">●</property> + <signal name="changed" handler="nsgtk_preferences_entryProxyUser_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_entryProxyUser_realize" swapped="no"/> + </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> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryProxyPassword"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyPasswordTooltip</property> + <property name="visibility">False</property> + <property name="invisible_char">●</property> + <signal name="changed" handler="nsgtk_preferences_entryProxyPassword_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_entryProxyPassword_realize" swapped="no"/> + </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> + </packing> + </child> + <child> + <object class="GtkLabel" id="label55"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesProxyNoproxy</property> + </object> + <packing> + <property name="top_attach">4</property> + <property name="bottom_attach">5</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkEntry" id="entryProxyNoproxy"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesProxyNoproxyTooltip</property> + <property name="caps_lock_warning">False</property> + <signal name="changed" handler="nsgtk_preferences_entryProxyNoproxy_changed" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_entryProxyNoproxy_realize" swapped="no"/> + </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> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label37"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesProxy</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_network_fetching"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment16"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkTable" id="table1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="n_rows">3</property> + <property name="n_columns">2</property> + <property name="column_spacing">6</property> + <property name="row_spacing">6</property> + <child> + <object class="GtkLabel" id="label39"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesFetchingMax</property> + </object> + <packing> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label40"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesFetchingPerhost</property> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label41"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xalign">0</property> + <property name="label" translatable="yes">preferencesFetchingCached</property> + </object> + <packing> + <property name="top_attach">2</property> + <property name="bottom_attach">3</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMaxFetchers"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesFetchingMaxTooltip</property> + <property name="invisible_char">●</property> + <property name="width_chars">3</property> + <property name="adjustment">adjustment_fetching_max</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMaxFetchers_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMaxFetchers_realize" swapped="no"/> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_FILL</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinFetchesPerHost"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesFetchingPerhostTooltip</property> + <property name="invisible_char">●</property> + <property name="width_chars">3</property> + <property name="adjustment">adjustment_fetching_perhost</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinFetchesPerHost_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinFetchesPerHost_realize" swapped="no"/> + </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> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinCachedConnections"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="has_tooltip">True</property> + <property name="tooltip_text" translatable="yes">preferencesFetchingCachedTooltip</property> + <property name="invisible_char">●</property> + <property name="width_chars">3</property> + <property name="adjustment">adjustment_fetching_cached</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinCachedConnections_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinCachedConnections_realize" swapped="no"/> + </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> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label38"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesFetching</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="position">4</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label36"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesNetworkTabtitle</property> + </object> + <packing> + <property name="position">4</property> + <property name="tab_fill">False</property> + </packing> + </child> + <child> + <object class="GtkBox" id="vbox_pdfexport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="valign">start</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkFrame" id="frame_pdfexport_appearance"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label_xalign">0</property> + <property name="shadow_type">none</property> + <child> + <object class="GtkAlignment" id="alignment17"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox13"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkCheckButton" id="checkSuppressImages"> + <property name="label" translatable="yes">preferencesAppearanceImages</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkSuppressImages_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkSuppressImages_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkRemoveBackgrounds"> + <property name="label" translatable="yes">preferencesAppearanceBackground</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkRemoveBackgrounds_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkRemoveBackgrounds_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkFitPage"> + <property name="label" translatable="yes">preferencesAppearanceScalefit</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkFitPage_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkFitPage_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox15"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label59"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesAppearanceScale</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</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="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">4</property> + <property name="xalign">1</property> + <property name="adjustment">adjustment_pdf_scale</property> + <property name="climb_rate">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinExportScale_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinExportScale_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkLabel" id="label60"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="no">%</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label48"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesAppearance</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_pdfexport_margins"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox16"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">6</property> + <child> + <object class="GtkBox" id="hbox22"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <child> + <object class="GtkLabel" id="label62"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesMarginsMeasurements</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkTable" id="table4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="n_rows">3</property> + <property name="n_columns">3</property> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <object class="GtkBox" id="hbox16"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label51"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Top</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginTop"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="xalign">1</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMarginTop_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMarginTop_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="left_attach">1</property> + <property name="right_attach">2</property> + <property name="x_options">GTK_EXPAND</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox18"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label52"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Left</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginLeft"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="xalign">1</property> + <property name="adjustment">adjustment_pdf_lmargin</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMarginLeft_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMarginLeft_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + <packing> + <property name="top_attach">1</property> + <property name="bottom_attach">2</property> + <property name="x_options">GTK_EXPAND</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox20"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label53"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Bottom</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginBottom"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="xalign">1</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMarginBottom_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMarginBottom_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </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_EXPAND</property> + </packing> + </child> + <child> + <object class="GtkBox" id="hbox21"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">horizontal</property> + <property name="spacing">6</property> + <child> + <object class="GtkLabel" id="label54"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">Right</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkSpinButton" id="spinMarginRight"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="max_length">4</property> + <property name="invisible_char">●</property> + <property name="width_chars">5</property> + <property name="xalign">1</property> + <property name="climb_rate">1</property> + <property name="digits">1</property> + <property name="numeric">True</property> + <signal name="value-changed" handler="nsgtk_preferences_spinMarginRight_valuechanged" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_spinMarginRight_realize" swapped="no"/> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </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="x_options">GTK_EXPAND</property> + </packing> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label49"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesMargins</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkFrame" id="frame_pdfexport_generation"> + <property name="visible">True</property> + <property name="can_focus">False</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="can_focus">False</property> + <property name="top_padding">6</property> + <property name="left_padding">12</property> + <property name="right_padding">12</property> + <child> + <object class="GtkBox" id="vbox14"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <property name="spacing">7</property> + <child> + <object class="GtkCheckButton" id="checkCompressPDF"> + <property name="label" translatable="yes">preferencesGenerationCompressed</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkCompressPDF_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkCompressPDF_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkCheckButton" id="checkPasswordPDF"> + <property name="label" translatable="yes">preferencesGenerationPassword</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="halign">start</property> + <property name="use_action_appearance">False</property> + <property name="xalign">0.5</property> + <property name="draw_indicator">True</property> + <signal name="toggled" handler="nsgtk_preferences_checkPasswordPDF_toggled" swapped="no"/> + <signal name="realize" handler="nsgtk_preferences_checkPasswordPDF_realize" swapped="no"/> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> + </child> + <child type="label"> + <object class="GtkLabel" id="label50"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesGeneration</property> + <property name="use_markup">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="position">5</property> + </packing> + </child> + <child type="tab"> + <object class="GtkLabel" id="label47"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">preferencesPDFTabtitle</property> + </object> + <packing> + <property name="position">5</property> + <property name="tab_fill">False</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + <action-widgets> + <action-widget response="0">help</action-widget> + <action-widget response="-7">close</action-widget> + </action-widgets> + </object> + <object class="GtkImage" id="image1"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xpad">3</property> + <property name="stock">gtk-apply</property> + </object> + <object class="GtkListStore" id="liststore_content_language"> + <columns> + <!-- column-name Code --> + <column type="gchararray"/> + <!-- column-name Description --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">en</col> + <col id="1" translatable="yes">English</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_defaultfont"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesFonttypeSans</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeSerif</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeMonospace</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeCursive</col> + </row> + <row> + <col id="0" translatable="yes">preferencesFonttypeFantasy</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_developer_view"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewWindow</col> + </row> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewTab</col> + </row> + <row> + <col id="0" translatable="yes">preferencesDeveloperViewEditor</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_image_loading"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesImageLoadBoth</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadFore</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadBack</col> + </row> + <row> + <col id="0" translatable="yes">preferencesImageLoadNone</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_proxy_type"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesProxyTypeDirect</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeManual</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeBasic</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeNLTM</col> + </row> + <row> + <col id="0" translatable="yes">preferencesProxyTypeSystem</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_search_provider"> + <columns> + <!-- column-name Provider --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="no">Google</col> + </row> + <row> + <col id="0" translatable="no">Yahoo!</col> + </row> + <row> + <col id="0" translatable="no">Microsoft Live</col> + </row> + <row> + <col id="0" translatable="no">Buisiness.com</col> + </row> + <row> + <col id="0" translatable="no">Omgili</col> + </row> + <row> + <col id="0" translatable="no">BBC News</col> + </row> + <row> + <col id="0" translatable="no">Ubuntu Packages</col> + </row> + <row> + <col id="0" translatable="no">Creative Commons</col> + </row> + <row> + <col id="0" translatable="no">Ask</col> + </row> + <row> + <col id="0" translatable="no">Answers</col> + </row> + <row> + <col id="0" translatable="no">Dictionary.com</col> + </row> + <row> + <col id="0" translatable="no">YouTube</col> + </row> + <row> + <col id="0" translatable="no">AeroMP3</col> + </row> + <row> + <col id="0" translatable="no">AOL</col> + </row> + <row> + <col id="0" translatable="no">Baidu</col> + </row> + <row> + <col id="0" translatable="no">Amazon</col> + </row> + <row> + <col id="0" translatable="no">Ebay</col> + </row> + <row> + <col id="0" translatable="no">IMBD</col> + </row> + <row> + <col id="0" translatable="no">ESPN</col> + </row> + <row> + <col id="0" translatable="no">Wikipedia</col> + </row> + <row> + <col id="0" translatable="no">DuckDuckGo</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_tab_position"> + <columns> + <!-- column-name Position --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesTabLocTop</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocLeft</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocRight</col> + </row> + <row> + <col id="0" translatable="yes">preferencesTabLocBottom</col> + </row> + </data> + </object> + <object class="GtkListStore" id="liststore_toolbar_buttontype"> + <columns> + <!-- column-name Type --> + <column type="gchararray"/> + </columns> + <data> + <row> + <col id="0" translatable="yes">preferencesButtonTypeSmall</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeLarge</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeLargeText</col> + </row> + <row> + <col id="0" translatable="yes">preferencesButtonTypeText</col> + </row> + </data> + </object> +</interface> diff --git a/frontends/gtk/res/gtk4/pageinfo.ui b/frontends/gtk/res/gtk4/pageinfo.ui new file mode 100644 index 000000000..fdee5ac8d --- /dev/null +++ b/frontends/gtk/res/gtk4/pageinfo.ui @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface> + <requires lib="gtk+" version="3.20"/> + <object class="GtkWindow" id="PGIWindow"> + <property name="type">GTK_WINDOW_POPUP</property> + <property name="can_focus">False</property> + <property name="events">GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_STRUCTURE_MASK</property> + <property name="resizable">False</property> + <child> + <placeholder/> + </child> + <child> + <object class="GtkDrawingArea" id="PGIDrawingArea"> + <property name="name">PGIDrawingArea</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_STRUCTURE_MASK</property> + </object> + </child> + </object> +</interface> diff --git a/frontends/gtk/res/gtk4/password.ui b/frontends/gtk/res/gtk4/password.ui new file mode 100644 index 000000000..eb51e4f8f --- /dev/null +++ b/frontends/gtk/res/gtk4/password.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/frontends/gtk/res/gtk4/tabcontents.ui b/frontends/gtk/res/gtk4/tabcontents.ui new file mode 100644 index 000000000..b07cf92e0 --- /dev/null +++ b/frontends/gtk/res/gtk4/tabcontents.ui @@ -0,0 +1,229 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<interface> + <requires lib="gtk+" version="3.0"/> + <object class="GtkAdjustment" id="layouthadjustment"> + <property name="upper">100</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkAdjustment" id="layoutvadjustment"> + <property name="upper">100</property> + <property name="step_increment">1</property> + <property name="page_increment">10</property> + </object> + <object class="GtkBox" id="tabBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <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="findbar"> + <property name="can_focus">False</property> + <property name="toolbar_style">both</property> + <child> + <object class="GtkToolItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkEntry" id="Find"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="invisible_char">●</property> + <property name="placeholder_text" translatable="yes">gtkFindPlaceholder</property> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="homogeneous">False</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="FindBack"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">gtkFindBack</property> + <property name="label" translatable="yes">gtkFindBack</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-go-up</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="FindForward"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">gtkFindForward</property> + <property name="label" translatable="yes">gtkFindForward</property> + <property name="use_underline">True</property> + <property name="stock_id">gtk-go-down</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</property> + </packing> + </child> + <child> + <object class="GtkToolItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkCheckButton" id="FindHighlightAll"> + <property name="label" translatable="yes">gtkFindHighlightAll</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="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + <child> + <object class="GtkToolItem"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkCheckButton" id="FindMatchCase"> + <property name="label" translatable="yes">gtkFindMatchCase</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="xalign">0</property> + <property name="draw_indicator">True</property> + </object> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">False</property> + </packing> + </child> + <child> + <object class="GtkToolButton" id="FindClose"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="tooltip_text" translatable="yes">gtkFindClose</property> + <property name="label" translatable="yes">gtkFindClose</property> + <property name="stock_id">gtk-close</property> + </object> + <packing> + <property name="expand">False</property> + <property name="homogeneous">True</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="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> + <property name="events">GDK_EXPOSURE_MASK | GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK | GDK_KEY_RELEASE_MASK | GDK_LEAVE_NOTIFY_MASK | GDK_STRUCTURE_MASK | GDK_SCROLL_MASK</property> + <property name="hadjustment">layouthadjustment</property> + <property name="vadjustment">layoutvadjustment</property> + </object> + <packing> + <property name="left_attach">0</property> + <property name="top_attach">0</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> + <property name="adjustment">layoutvadjustment</property> + </object> + <packing> + <property name="left_attach">1</property> + <property name="top_attach">0</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="xpad">4</property> + <property name="label" translatable="yes">Status</property> + <property name="single_line_mode">True</property> + <property name="xalign">0</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> + <property name="adjustment">layouthadjustment</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> + </packing> + </child> + <child> + <placeholder/> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">3</property> + </packing> + </child> + </object> +</interface> diff --git a/frontends/gtk/res/gtk4/toolbar.ui b/frontends/gtk/res/gtk4/toolbar.ui new file mode 100644 index 000000000..60452f472 --- /dev/null +++ b/frontends/gtk/res/gtk4/toolbar.ui @@ -0,0 +1,126 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Generated with glade 3.22.1 --> +<!--*- mode: xml -*--> +<interface> + <requires lib="gtk+" version="3.0"/> + <object class="GtkImage" id="image2"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="stock">gtk-refresh</property> + </object> + <object class="GtkBox" id="customisation"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <object class="GtkToolbar" id="toolbar"> + <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="GtkLabel"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="xpad">6</property> + <property name="label" translatable="yes">gtkCustomizeToolbarInstructions</property> + <property name="wrap">True</property> + <property name="xalign">0</property> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">True</property> + <property name="padding">6</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkScrolledWindow"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="shadow_type">in</property> + <child> + <object class="GtkViewport"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkBox" id="toolbox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="orientation">vertical</property> + <child> + <placeholder/> + </child> + </object> + </child> + </object> + </child> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + <child> + <object class="GtkButtonBox"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="layout_style">end</property> + <child> + <object class="GtkButton" id="reset"> + <property name="label" translatable="yes">Reset</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="image">image2</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">0</property> + </packing> + </child> + <child> + <object class="GtkButton" id="discard"> + <property name="label">gtk-discard</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + <child> + <object class="GtkButton" id="apply"> + <property name="label">gtk-apply</property> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="receives_default">True</property> + <property name="use_stock">True</property> + </object> + <packing> + <property name="expand">True</property> + <property name="fill">True</property> + <property name="position">2</property> + </packing> + </child> + </object> + <packing> + <property name="expand">False</property> + <property name="fill">False</property> + <property name="padding">6</property> + <property name="position">3</property> + </packing> + </child> + </object> +</interface> diff --git a/frontends/gtk/res/gtk4/viewdata.ui b/frontends/gtk/res/gtk4/viewdata.ui new file mode 100644 index 000000000..b742d5f6b --- /dev/null +++ b/frontends/gtk/res/gtk4/viewdata.ui @@ -0,0 +1,239 @@ +<?xml version="1.0" encoding="UTF-8"?> +<interface> + <!-- interface-requires gtk+ 3.0 --> + <object class="GtkWindow" id="ViewDataWindow"> + <property name="can_focus">False</property> + <property name="default_width">640</property> + <property name="default_height">480</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="GtkImageMenuItem" id="viewdata_save_as"> + <property name="label">gtk-save-as</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_print"> + <property name="label">gtk-print</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkSeparatorMenuItem" id="separatormenuitem1"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_close"> + <property name="label">gtk-close</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">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="GtkImageMenuItem" id="viewdata_select_all"> + <property name="label">gtk-select-all</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_cut"> + <property name="label">gtk-cut</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_copy"> + <property name="label">gtk-copy</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_paste"> + <property name="label">gtk-paste</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_delete"> + <property name="label">gtk-delete</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">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="menu4"> + <property name="visible">True</property> + <property name="can_focus">False</property> + <child> + <object class="GtkImageMenuItem" id="viewdata_zoom_in"> + <property name="label">gtk-zoom-in</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_zoom_out"> + <property name="label">gtk-zoom-out</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + <child> + <object class="GtkImageMenuItem" id="viewdata_zoom_normal"> + <property name="label">gtk-zoom-100</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </object> + </child> + </object> + </child> + </object> + </child> + <child> + <object class="GtkMenuItem" id="menuitem4"> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="label" translatable="yes">_Help</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="GtkImageMenuItem" id="viewdata_about"> + <property name="label">gtk-about</property> + <property name="use_action_appearance">False</property> + <property name="visible">True</property> + <property name="can_focus">False</property> + <property name="use_underline">True</property> + <property name="use_stock">True</property> + </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="sourcescrolled"> + <property name="visible">True</property> + <property name="can_focus">True</property> + <property name="window_placement">bottom-right</property> + <child> + <object class="GtkTextView" id="viewdata_view"> + <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">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="expand">True</property> + <property name="fill">True</property> + <property name="position">1</property> + </packing> + </child> + </object> + </child> + </object> +</interface> diff --git a/frontends/gtk/res/gtk4/warning.ui b/frontends/gtk/res/gtk4/warning.ui new file mode 100644 index 000000000..e4fb4e662 --- /dev/null +++ b/frontends/gtk/res/gtk4/warning.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/frontends/gtk/scaffolding.c b/frontends/gtk/scaffolding.c index f9d4f6d67..b35e55560 100644 --- a/frontends/gtk/scaffolding.c +++ b/frontends/gtk/scaffolding.c @@ -1170,17 +1170,17 @@ static void nsgtk_menu_set_icons(struct nsgtk_scaffolding *g) } if (g->menus[i].main != NULL) { - img = gtk_image_new_from_icon_name(g->menus[i].iconname, + img = nsgtk_image_new_from_icon_name(g->menus[i].iconname, GTK_ICON_SIZE_MENU); nsgtk_image_menu_item_set_image(GTK_WIDGET(g->menus[i].main), img); } if (g->menus[i].burger != NULL) { - img = gtk_image_new_from_icon_name(g->menus[i].iconname, + img = nsgtk_image_new_from_icon_name(g->menus[i].iconname, GTK_ICON_SIZE_MENU); nsgtk_image_menu_item_set_image(GTK_WIDGET(g->menus[i].burger), img); } if (g->menus[i].popup != NULL) { - img = gtk_image_new_from_icon_name(g->menus[i].iconname, + img = nsgtk_image_new_from_icon_name(g->menus[i].iconname, GTK_ICON_SIZE_MENU); nsgtk_image_menu_item_set_image(GTK_WIDGET(g->menus[i].popup), img); } diff --git a/frontends/gtk/selection.c b/frontends/gtk/selection.c index 871526047..5cda76746 100644 --- a/frontends/gtk/selection.c +++ b/frontends/gtk/selection.c @@ -17,13 +17,13 @@ */ #include <string.h> -#include <gtk/gtk.h> #include <stdlib.h> #include "utils/log.h" #include "netsurf/browser_window.h" #include "netsurf/clipboard.h" +#include "gtk/compat.h" #include "gtk/toolbar_items.h" #include "gtk/window.h" diff --git a/frontends/gtk/tabs.c b/frontends/gtk/tabs.c index 4fa109b70..2b5138aa0 100644 --- a/frontends/gtk/tabs.c +++ b/frontends/gtk/tabs.c @@ -146,10 +146,11 @@ nsgtk_tab_label_setup(GtkWidget *page, g_object_set_data(G_OBJECT(ebox), "label", label); /* attach signal handlers */ +#if !GTK_CHECK_VERSION(4,0,0) g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_widget_destroy), page); - +#endif g_signal_connect(hbox, "style-set", G_CALLBACK(nsgtk_tab_update_size), @@ -318,7 +319,7 @@ nsgtk_tab_add_newtab(GtkNotebook *notebook) tablabel = nsgtk_hbox_new(FALSE, 1); tabcontents = nsgtk_hbox_new(FALSE, 1); - add = gtk_image_new_from_icon_name(NSGTK_STOCK_ADD, + add = nsgtk_image_new_from_icon_name(NSGTK_STOCK_ADD, GTK_ICON_SIZE_LARGE_TOOLBAR); gtk_widget_set_tooltip_text(add, "New Tab"); diff --git a/frontends/gtk/toolbar.c b/frontends/gtk/toolbar.c index 6ec41cc1d..f1309a8ad 100644 --- a/frontends/gtk/toolbar.c +++ b/frontends/gtk/toolbar.c @@ -44,6 +44,7 @@ #include "netsurf/browser_window.h" #include "netsurf/keypress.h" +#include "gtk/compat.h" #include "gtk/toolbar_items.h" #include "gtk/completion.h" #include "gtk/gui.h" @@ -52,7 +53,6 @@ #include "gtk/throbber.h" #include "gtk/scaffolding.h" #include "gtk/window.h" -#include "gtk/compat.h" #include "gtk/resources.h" #include "gtk/schedule.h" #include "gtk/local_history.h" @@ -1658,12 +1658,13 @@ static gboolean cutomize_button_clicked_cb(GtkWidget *widget, gpointer data) GDK_ACTION_COPY); /* discard button calls destroy */ +#if !GTK_CHECK_VERSION(4,0,0) g_signal_connect_swapped(GTK_WIDGET(gtk_builder_get_object(builder, "discard")), "clicked", G_CALLBACK(gtk_widget_destroy), tbc->container); - +#endif /* save and update on apply button */ g_signal_connect(GTK_WIDGET(gtk_builder_get_object(builder, "apply")), "clicked", @@ -1762,7 +1763,7 @@ toolbar_item_size_allocate_cb(GtkWidget *widget, } tb->toolbarmem = alloc->x; - gtk_widget_size_allocate(widget, alloc); + nsgtk_widget_size_allocate(widget, alloc, -1); } @@ -2706,6 +2707,7 @@ zoomnormal_button_clicked_cb(GtkWidget *widget, gpointer data) static gboolean fullscreen_button_clicked_cb(GtkWidget *widget, gpointer data) { +#if !GTK_CHECK_VERSION(4,0,0) GtkWindow *gtkwindow; /* gtk window widget is in */ GdkWindow *gdkwindow; GdkWindowState state; @@ -2719,6 +2721,7 @@ fullscreen_button_clicked_cb(GtkWidget *widget, gpointer data) } else { gtk_window_fullscreen(gtkwindow); } +#endif return TRUE; } diff --git a/frontends/gtk/viewdata.c b/frontends/gtk/viewdata.c index d633238d0..970cd32b7 100644 --- a/frontends/gtk/viewdata.c +++ b/frontends/gtk/viewdata.c @@ -142,7 +142,7 @@ static gboolean nsgtk_viewdata_destroy_event(GtkBuilder *window, gpointer g) return FALSE; } -static gboolean nsgtk_viewdata_delete_event(GtkWindow * window, gpointer g) +static gboolean nsgtk_viewdata_delete_event(GtkWindow* window, gpointer g) { return FALSE; } @@ -171,9 +171,11 @@ static void nsgtk_viewdata_file_save(GtkWindow *parent, const char *filename, GTK_RESPONSE_NONE, NULL); +#if !GTK_CHECK_VERSION(4,0,0) g_signal_connect_swapped(notif, "response", G_CALLBACK(gtk_widget_destroy), notif); - +#endif + label = gtk_label_new(messages_get("gtkSaveFailed")); gtk_container_add(GTK_CONTAINER(nsgtk_dialog_get_content_area(GTK_DIALOG(notif))), label); gtk_widget_show_all(notif); diff --git a/frontends/gtk/window.c b/frontends/gtk/window.c index f5c87ef87..4d2454216 100644 --- a/frontends/gtk/window.c +++ b/frontends/gtk/window.c @@ -48,9 +48,9 @@ #include "desktop/searchweb.h" #include "desktop/textinput.h" +#include "gtk/compat.h" #include "gtk/selection.h" #include "gtk/warn.h" -#include "gtk/compat.h" #include "gtk/gui.h" #include "gtk/scaffolding.h" #include "gtk/toolbar_items.h" @@ -964,8 +964,7 @@ gui_window_create(struct browser_window *bw, CONNECT(g->container, "destroy", window_destroy, g); /* input method */ - gtk_im_context_set_client_window(g->input_method, - nsgtk_layout_get_bin_window(g->layout)); + nsgtk_im_context_set_client_widget(g->input_method, GTK_WIDGET(g->layout)); gtk_im_context_set_use_preedit(g->input_method, FALSE); /* input method signals */ @@ -1286,8 +1285,7 @@ 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(nsgtk_widget_get_window(GTK_WIDGET(g->layout)), - cursor); + nsgtk_widget_set_cursor(GTK_WIDGET(g->layout), cursor); if (!nullcursor) nsgdk_cursor_unref(cursor); |