+static void fancy_apply_prefs(FancyViewer *viewer)
+{
+ g_object_set(viewer->settings,
+ "auto-load-images", viewer->override_prefs_images,
+ "enable-scripts", viewer->override_prefs_scripts,
+ "enable-plugins", viewer->override_prefs_plugins,
+ "enable-java-applet", viewer->override_prefs_java,
+ "enable-dns-prefetching", viewer->override_prefs_remote_content,
+#ifdef G_OS_WIN32
+ "default-font-family", "Arial",
+ "cursive-font-family", "Comic Sans MS",
+ "fantasy-font-family", "Comic Sans MS",
+ "monospace-font-family", "Courier New",
+ "sans-serif-font-family", "Arial",
+ "serif-font-family", "Times New Roman",
+#endif
+ NULL);
+ webkit_web_view_set_settings(viewer->view, viewer->settings);
+}
+
+static void fancy_auto_load_images_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_images = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+ webkit_web_view_reload (viewer->view);
+}
+
+static void fancy_enable_remote_content_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_remote_content = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+ webkit_web_view_reload (viewer->view);
+}
+
+static void fancy_enable_scripts_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_scripts = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+ webkit_web_view_reload (viewer->view);
+}
+
+static void fancy_enable_plugins_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_plugins = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+ webkit_web_view_reload (viewer->view);
+}
+
+static void fancy_enable_java_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_java = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+ webkit_web_view_reload (viewer->view);
+}
+
+static void fancy_open_external_activated(GtkCheckMenuItem *item, FancyViewer *viewer) {
+ viewer->override_prefs_external = gtk_check_menu_item_get_active(item);
+ fancy_apply_prefs(viewer);
+}
+
+static void fancy_set_defaults(FancyViewer *viewer)
+{
+ viewer->override_prefs_remote_content = fancy_prefs.enable_remote_content;
+ viewer->override_prefs_external = fancy_prefs.open_external;
+ viewer->override_prefs_images = fancy_prefs.enable_images;
+ viewer->override_prefs_scripts = fancy_prefs.enable_scripts;
+ viewer->override_prefs_plugins = fancy_prefs.enable_plugins;
+ viewer->override_prefs_java = fancy_prefs.enable_java;
+
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->enable_images),
+ fancy_auto_load_images_activated, viewer);
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->enable_remote_content),
+ fancy_enable_remote_content_activated, viewer);
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->enable_scripts),
+ fancy_enable_scripts_activated, viewer);
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->enable_plugins),
+ fancy_enable_plugins_activated, viewer);
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->enable_java),
+ fancy_enable_java_activated, viewer);
+ g_signal_handlers_block_by_func(G_OBJECT(viewer->open_external),
+ fancy_open_external_activated, viewer);
+
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->enable_images),
+ viewer->override_prefs_images);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->enable_scripts),
+ viewer->override_prefs_scripts);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->enable_plugins),
+ viewer->override_prefs_plugins);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->enable_java),
+ viewer->override_prefs_java);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->enable_remote_content),
+ viewer->override_prefs_remote_content);
+ gtk_check_menu_item_set_active(
+ GTK_CHECK_MENU_ITEM(viewer->open_external),
+ viewer->override_prefs_external);
+
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->enable_images),
+ fancy_auto_load_images_activated, viewer);
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->enable_remote_content),
+ fancy_enable_remote_content_activated, viewer);
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->enable_scripts),
+ fancy_enable_scripts_activated, viewer);
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->enable_plugins),
+ fancy_enable_plugins_activated, viewer);
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->enable_java),
+ fancy_enable_java_activated, viewer);
+ g_signal_handlers_unblock_by_func(G_OBJECT(viewer->open_external),
+ fancy_open_external_activated, viewer);
+
+ fancy_apply_prefs(viewer);
+}
+
+static void fancy_load_uri(FancyViewer *viewer, const gchar *uri)
+{
+#if WEBKIT_CHECK_VERSION(1,1,1)
+ webkit_web_view_load_uri(viewer->view, uri);
+#else
+ webkit_web_view_open(viewer->view, uri);
+#endif
+}
+