From 41e8b1eeb2b9160bbd1f622dffc1b0da51c6bc2c Mon Sep 17 00:00:00 2001 From: David Keijser Date: Mon, 30 May 2011 06:49:18 +0200 Subject: move variable callback functions into variables.c --- src/callbacks.c | 314 -------------------------------------------------------- src/callbacks.h | 133 ------------------------ src/variables.c | 313 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/variables.h | 47 +++++++++ 4 files changed, 360 insertions(+), 447 deletions(-) (limited to 'src') diff --git a/src/callbacks.c b/src/callbacks.c index 0370889..5bdcb55 100644 --- a/src/callbacks.c +++ b/src/callbacks.c @@ -6,323 +6,9 @@ #include "uzbl-core.h" #include "callbacks.h" #include "events.h" -#include "util.h" -#include "io.h" #include "menu.h" #include "type.h" -void -set_proxy_url() { - const gchar *url = uzbl.net.proxy_url; - SoupSession *session = uzbl.net.soup_session; - SoupURI *soup_uri = NULL; - - if (url != NULL || *url != 0 || *url != ' ') - soup_uri = soup_uri_new(url); - - g_object_set(G_OBJECT(session), SOUP_SESSION_PROXY_URI, soup_uri, NULL); - - if(soup_uri) - soup_uri_free(soup_uri); -} - - -void -set_authentication_handler() { - /* Check if WEBKIT_TYPE_SOUP_AUTH_DIALOG feature is set */ - GSList *flist = soup_session_get_features (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); - guint feature_is_set = g_slist_length(flist); - g_slist_free(flist); - - if (uzbl.behave.authentication_handler == NULL || *uzbl.behave.authentication_handler == 0) { - if (!feature_is_set) - soup_session_add_feature_by_type - (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); - } else { - if (feature_is_set) - soup_session_remove_feature_by_type - (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); - } - return; -} - - -void -set_status_background() { - /* labels and hboxes do not draw their own background. applying this - * on the vbox/main_window is ok as the statusbar is the only affected - * widget. (if not, we could also use GtkEventBox) */ - GtkWidget* widget = uzbl.gui.main_window ? uzbl.gui.main_window : GTK_WIDGET (uzbl.gui.plug); - -#if GTK_CHECK_VERSION(2,91,0) - GdkRGBA color; - gdk_rgba_parse (&color, uzbl.behave.status_background); - gtk_widget_override_background_color (widget, GTK_STATE_NORMAL, &color); -#else - GdkColor color; - gdk_color_parse (uzbl.behave.status_background, &color); - gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &color); -#endif -} - - -void -set_icon() { - if(file_exists(uzbl.gui.icon)) { - if (uzbl.gui.main_window) - gtk_window_set_icon_from_file (GTK_WINDOW (uzbl.gui.main_window), uzbl.gui.icon, NULL); - } else { - g_printerr ("Icon \"%s\" not found. ignoring.\n", uzbl.gui.icon); - } -} - -void -cmd_set_geometry() { - int ret=0, x=0, y=0; - unsigned int w=0, h=0; - if(uzbl.gui.geometry) { - if(uzbl.gui.geometry[0] == 'm') { /* m/maximize/maximized */ - gtk_window_maximize((GtkWindow *)(uzbl.gui.main_window)); - } else { - /* we used to use gtk_window_parse_geometry() but that didn't work how it was supposed to */ - ret = XParseGeometry(uzbl.gui.geometry, &x, &y, &w, &h); - if(ret & XValue) - gtk_window_move((GtkWindow *)uzbl.gui.main_window, x, y); - if(ret & WidthValue) - gtk_window_resize((GtkWindow *)uzbl.gui.main_window, w, h); - } - } - - /* update geometry var with the actual geometry - this is necessary as some WMs don't seem to honour - the above setting and we don't want to end up with - wrong geometry information - */ - retrieve_geometry(); -} - -void -cmd_set_status() { - if (!uzbl.behave.show_status) { - gtk_widget_hide(uzbl.gui.mainbar); - } else { - gtk_widget_show(uzbl.gui.mainbar); - } - update_title(); -} - -/* is the given string made up entirely of decimal digits? */ -gboolean -string_is_integer(const char *s) { - return (strspn(s, "0123456789") == strlen(s)); -} - -void -cmd_load_uri() { - const gchar *uri = uzbl.state.uri; - - gchar *newuri; - SoupURI *soup_uri; - - /* Strip leading whitespaces */ - while (*uri && isspace(*uri)) - uri++; - - /* evaluate javascript: URIs */ - if (!strncmp (uri, "javascript:", 11)) { - eval_js(uzbl.gui.web_view, uri, NULL, "javascript:"); - return; - } - - /* attempt to parse the URI */ - soup_uri = soup_uri_new(uri); - - if (!soup_uri) { - /* it's not a valid URI, maybe it's a path on the filesystem. */ - const gchar *fullpath; - if (g_path_is_absolute (uri)) - fullpath = uri; - else { - gchar *wd = g_get_current_dir (); - fullpath = g_build_filename (wd, uri, NULL); - g_free(wd); - } - - struct stat stat_result; - if (! g_stat(fullpath, &stat_result)) - newuri = g_strconcat("file://", fullpath, NULL); - else - newuri = g_strconcat("http://", uri, NULL); - } else { - if(soup_uri->host == NULL && string_is_integer(soup_uri->path)) - /* the user probably typed in a host:port without a scheme */ - newuri = g_strconcat("http://", uri, NULL); - else - newuri = g_strdup(uri); - - soup_uri_free(soup_uri); - } - - webkit_web_view_load_uri (uzbl.gui.web_view, newuri); - g_free (newuri); -} - -void -cmd_max_conns() { - g_object_set(G_OBJECT(uzbl.net.soup_session), - SOUP_SESSION_MAX_CONNS, uzbl.net.max_conns, NULL); -} - -void -cmd_max_conns_host() { - g_object_set(G_OBJECT(uzbl.net.soup_session), - SOUP_SESSION_MAX_CONNS_PER_HOST, uzbl.net.max_conns_host, NULL); -} - -void -cmd_http_debug() { - soup_session_remove_feature - (uzbl.net.soup_session, SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); - /* do we leak if this doesn't get freed? why does it occasionally crash if freed? */ - /*g_free(uzbl.net.soup_logger);*/ - - uzbl.net.soup_logger = soup_logger_new(uzbl.behave.http_debug, -1); - soup_session_add_feature(uzbl.net.soup_session, - SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); -} - -GObject* -view_settings() { - return G_OBJECT(webkit_web_view_get_settings(uzbl.gui.web_view)); -} - -void -cmd_font_size() { - GObject *ws = view_settings(); - if (uzbl.behave.font_size > 0) { - g_object_set (ws, "default-font-size", uzbl.behave.font_size, NULL); - } - - if (uzbl.behave.monospace_size > 0) { - g_object_set (ws, "default-monospace-font-size", - uzbl.behave.monospace_size, NULL); - } else { - g_object_set (ws, "default-monospace-font-size", - uzbl.behave.font_size, NULL); - } -} - -void -cmd_zoom_level() { - webkit_web_view_set_zoom_level (uzbl.gui.web_view, uzbl.behave.zoom_level); -} - -#define EXPOSE_WEBKIT_VIEW_SETTINGS(SYM, STORAGE, PROPERTY) void cmd_##SYM() { \ - g_object_set(view_settings(), (PROPERTY), (STORAGE), NULL); \ -} - -EXPOSE_WEBKIT_VIEW_SETTINGS(default_font_family, uzbl.behave.default_font_family, "default-font-family") -EXPOSE_WEBKIT_VIEW_SETTINGS(monospace_font_family, uzbl.behave.monospace_font_family, "monospace-font-family") -EXPOSE_WEBKIT_VIEW_SETTINGS(sans_serif_font_family, uzbl.behave.sans_serif_font_family, "sans_serif-font-family") -EXPOSE_WEBKIT_VIEW_SETTINGS(serif_font_family, uzbl.behave.serif_font_family, "serif-font-family") -EXPOSE_WEBKIT_VIEW_SETTINGS(cursive_font_family, uzbl.behave.cursive_font_family, "cursive-font-family") -EXPOSE_WEBKIT_VIEW_SETTINGS(fantasy_font_family, uzbl.behave.fantasy_font_family, "fantasy-font-family") - -EXPOSE_WEBKIT_VIEW_SETTINGS(minimum_font_size, uzbl.behave.minimum_font_size, "minimum_font_size") - -EXPOSE_WEBKIT_VIEW_SETTINGS(disable_plugins, !uzbl.behave.disable_plugins, "enable-plugins") -EXPOSE_WEBKIT_VIEW_SETTINGS(disable_scripts, !uzbl.behave.disable_scripts, "enable-scripts") - -EXPOSE_WEBKIT_VIEW_SETTINGS(javascript_windows, uzbl.behave.javascript_windows, "javascript-can-open-windows-automatically") - -EXPOSE_WEBKIT_VIEW_SETTINGS(autoload_img, uzbl.behave.autoload_img, "auto-load-images") -EXPOSE_WEBKIT_VIEW_SETTINGS(autoshrink_img, uzbl.behave.autoshrink_img, "auto-shrink-images") - -EXPOSE_WEBKIT_VIEW_SETTINGS(enable_pagecache, uzbl.behave.enable_pagecache, "enable-page-cache") -EXPOSE_WEBKIT_VIEW_SETTINGS(enable_private, uzbl.behave.enable_private, "enable-private-browsing") - -EXPOSE_WEBKIT_VIEW_SETTINGS(enable_spellcheck, uzbl.behave.enable_spellcheck, "enable-spell-checking") -EXPOSE_WEBKIT_VIEW_SETTINGS(resizable_txt, uzbl.behave.resizable_txt, "resizable-text-areas") - -EXPOSE_WEBKIT_VIEW_SETTINGS(style_uri, uzbl.behave.style_uri, "user-stylesheet-uri") -EXPOSE_WEBKIT_VIEW_SETTINGS(print_bg, uzbl.behave.print_bg, "print-backgrounds") -EXPOSE_WEBKIT_VIEW_SETTINGS(enforce_96dpi, uzbl.behave.enforce_96dpi, "enforce-96-dpi") - -EXPOSE_WEBKIT_VIEW_SETTINGS(caret_browsing, uzbl.behave.caret_browsing, "enable-caret-browsing") - -EXPOSE_WEBKIT_VIEW_SETTINGS(default_encoding, uzbl.behave.default_encoding, "default-encoding") - -void -set_current_encoding() { - gchar *encoding = uzbl.behave.current_encoding; - if(strlen(encoding) == 0) - encoding = NULL; - - webkit_web_view_set_custom_encoding(uzbl.gui.web_view, encoding); -} - -void -cmd_fifo_dir() { - uzbl.behave.fifo_dir = init_fifo(uzbl.behave.fifo_dir); -} - -void -cmd_socket_dir() { - uzbl.behave.socket_dir = init_socket(uzbl.behave.socket_dir); -} - -void -cmd_inject_html() { - if(uzbl.behave.inject_html) { - webkit_web_view_load_html_string (uzbl.gui.web_view, - uzbl.behave.inject_html, NULL); - } -} - -void -cmd_useragent() { - if (*uzbl.net.useragent == ' ') { - g_free (uzbl.net.useragent); - uzbl.net.useragent = NULL; - } else { - g_object_set(G_OBJECT(uzbl.net.soup_session), SOUP_SESSION_USER_AGENT, - uzbl.net.useragent, NULL); - } -} - -void -set_accept_languages() { - if (*uzbl.net.accept_languages == ' ') { - g_free (uzbl.net.accept_languages); - uzbl.net.accept_languages = NULL; - } else { - g_object_set(G_OBJECT(uzbl.net.soup_session), - SOUP_SESSION_ACCEPT_LANGUAGE, uzbl.net.accept_languages, NULL); - } -} - -void -cmd_scrollbars_visibility() { - GtkPolicyType policy = uzbl.gui.scrollbars_visible ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER; - - gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win), policy, policy ); -} - -/* requires webkit >=1.1.14 */ -void -cmd_view_source() { - webkit_web_view_set_view_source_mode(uzbl.gui.web_view, - (gboolean) uzbl.behave.view_source); -} - -void -cmd_set_zoom_type () { - if(uzbl.behave.zoom_type) - webkit_web_view_set_full_content_zoom (uzbl.gui.web_view, TRUE); - else - webkit_web_view_set_full_content_zoom (uzbl.gui.web_view, FALSE); -} - void link_hover_cb (WebKitWebView *page, const gchar *title, const gchar *link, gpointer data) { (void) page; (void) title; (void) data; diff --git a/src/callbacks.h b/src/callbacks.h index 2b333a3..7af4332 100644 --- a/src/callbacks.h +++ b/src/callbacks.h @@ -3,139 +3,6 @@ ** (c) 2009 by Robert Manea et al. */ -void -cmd_load_uri(); - -void -cmd_set_status(); - -void -set_proxy_url(); - -void -set_authentication_handler(); - -void -set_status_background(); - -void -set_icon(); - -void -move_statusbar(); - -void -cmd_http_debug(); - -void -cmd_max_conns(); - -void -cmd_max_conns_host(); - -/* exported WebKitWebSettings properties */ -void -cmd_font_size(); - -void -cmd_default_font_family(); - -void -cmd_monospace_font_family(); - -void -cmd_sans_serif_font_family(); - -void -cmd_serif_font_family(); - -void -cmd_cursive_font_family(); - -void -cmd_fantasy_font_family(); - -void -cmd_zoom_level(); - -void -cmd_set_zoom_type(); - -void -cmd_enable_pagecache(); - -void -cmd_disable_plugins(); - -void -cmd_disable_scripts(); - -void -cmd_minimum_font_size(); - -void -cmd_fifo_dir(); - -void -cmd_socket_dir(); - -void -cmd_useragent() ; - -void -set_accept_languages(); - -void -cmd_autoload_img(); - -void -cmd_autoshrink_img(); - -void -cmd_enable_spellcheck(); - -void -cmd_enable_private(); - -void -cmd_print_bg(); - -void -cmd_style_uri(); - -void -cmd_resizable_txt(); - -void -cmd_default_encoding(); - -void -set_current_encoding(); - -void -cmd_enforce_96dpi(); - -void -cmd_inject_html(); - -void -cmd_caret_browsing(); - -void -cmd_javascript_windows(); - -void -cmd_set_geometry(); - -void -cmd_view_source(); - -void -cmd_scrollbars_visibility(); - -void -cmd_load_start(); - void link_hover_cb (WebKitWebView* page, const gchar* title, const gchar* link, gpointer data); diff --git a/src/variables.c b/src/variables.c index f62b54e..bcc3f43 100644 --- a/src/variables.c +++ b/src/variables.c @@ -2,6 +2,8 @@ #include "uzbl-core.h" #include "callbacks.h" #include "events.h" +#include "io.h" +#include "util.h" /* abbreviations to help keep the table's width humane */ #define PTR_V_STR(var, d, fun) { .ptr.s = &(var), .type = TYPE_STR, .dump = d, .writeable = 1, .func = fun } @@ -231,3 +233,314 @@ void dump_config_as_events() { g_hash_table_foreach(uzbl.comm.proto_var, dump_var_hash_as_event, NULL); } + +/* is the given string made up entirely of decimal digits? */ +gboolean +string_is_integer(const char *s) { + return (strspn(s, "0123456789") == strlen(s)); +} + + +GObject* +view_settings() { + return G_OBJECT(webkit_web_view_get_settings(uzbl.gui.web_view)); +} + +void +cmd_load_uri() { + const gchar *uri = uzbl.state.uri; + + gchar *newuri; + SoupURI *soup_uri; + + /* Strip leading whitespaces */ + while (*uri && isspace(*uri)) + uri++; + + /* evaluate javascript: URIs */ + if (!strncmp (uri, "javascript:", 11)) { + eval_js(uzbl.gui.web_view, uri, NULL, "javascript:"); + return; + } + + /* attempt to parse the URI */ + soup_uri = soup_uri_new(uri); + + if (!soup_uri) { + /* it's not a valid URI, maybe it's a path on the filesystem. */ + const gchar *fullpath; + if (g_path_is_absolute (uri)) + fullpath = uri; + else { + gchar *wd = g_get_current_dir (); + fullpath = g_build_filename (wd, uri, NULL); + g_free(wd); + } + + struct stat stat_result; + if (! g_stat(fullpath, &stat_result)) + newuri = g_strconcat("file://", fullpath, NULL); + else + newuri = g_strconcat("http://", uri, NULL); + } else { + if(soup_uri->host == NULL && string_is_integer(soup_uri->path)) + /* the user probably typed in a host:port without a scheme */ + newuri = g_strconcat("http://", uri, NULL); + else + newuri = g_strdup(uri); + + soup_uri_free(soup_uri); + } + + webkit_web_view_load_uri (uzbl.gui.web_view, newuri); + g_free (newuri); +} + +void +cmd_max_conns() { + g_object_set(G_OBJECT(uzbl.net.soup_session), + SOUP_SESSION_MAX_CONNS, uzbl.net.max_conns, NULL); +} + +void +cmd_max_conns_host() { + g_object_set(G_OBJECT(uzbl.net.soup_session), + SOUP_SESSION_MAX_CONNS_PER_HOST, uzbl.net.max_conns_host, NULL); +} + +void +cmd_http_debug() { + soup_session_remove_feature + (uzbl.net.soup_session, SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); + /* do we leak if this doesn't get freed? why does it occasionally crash if freed? */ + /*g_free(uzbl.net.soup_logger);*/ + + uzbl.net.soup_logger = soup_logger_new(uzbl.behave.http_debug, -1); + soup_session_add_feature(uzbl.net.soup_session, + SOUP_SESSION_FEATURE(uzbl.net.soup_logger)); +} + +void +cmd_font_size() { + GObject *ws = view_settings(); + if (uzbl.behave.font_size > 0) { + g_object_set (ws, "default-font-size", uzbl.behave.font_size, NULL); + } + + if (uzbl.behave.monospace_size > 0) { + g_object_set (ws, "default-monospace-font-size", + uzbl.behave.monospace_size, NULL); + } else { + g_object_set (ws, "default-monospace-font-size", + uzbl.behave.font_size, NULL); + } +} + +void +cmd_zoom_level() { + webkit_web_view_set_zoom_level (uzbl.gui.web_view, uzbl.behave.zoom_level); +} + +#define EXPOSE_WEBKIT_VIEW_SETTINGS(SYM, STORAGE, PROPERTY) void cmd_##SYM() { \ + g_object_set(view_settings(), (PROPERTY), (STORAGE), NULL); \ +} + +EXPOSE_WEBKIT_VIEW_SETTINGS(default_font_family, uzbl.behave.default_font_family, "default-font-family") +EXPOSE_WEBKIT_VIEW_SETTINGS(monospace_font_family, uzbl.behave.monospace_font_family, "monospace-font-family") +EXPOSE_WEBKIT_VIEW_SETTINGS(sans_serif_font_family, uzbl.behave.sans_serif_font_family, "sans_serif-font-family") +EXPOSE_WEBKIT_VIEW_SETTINGS(serif_font_family, uzbl.behave.serif_font_family, "serif-font-family") +EXPOSE_WEBKIT_VIEW_SETTINGS(cursive_font_family, uzbl.behave.cursive_font_family, "cursive-font-family") +EXPOSE_WEBKIT_VIEW_SETTINGS(fantasy_font_family, uzbl.behave.fantasy_font_family, "fantasy-font-family") + +EXPOSE_WEBKIT_VIEW_SETTINGS(minimum_font_size, uzbl.behave.minimum_font_size, "minimum_font_size") + +EXPOSE_WEBKIT_VIEW_SETTINGS(disable_plugins, !uzbl.behave.disable_plugins, "enable-plugins") +EXPOSE_WEBKIT_VIEW_SETTINGS(disable_scripts, !uzbl.behave.disable_scripts, "enable-scripts") + +EXPOSE_WEBKIT_VIEW_SETTINGS(javascript_windows, uzbl.behave.javascript_windows, "javascript-can-open-windows-automatically") + +EXPOSE_WEBKIT_VIEW_SETTINGS(autoload_img, uzbl.behave.autoload_img, "auto-load-images") +EXPOSE_WEBKIT_VIEW_SETTINGS(autoshrink_img, uzbl.behave.autoshrink_img, "auto-shrink-images") + +EXPOSE_WEBKIT_VIEW_SETTINGS(enable_pagecache, uzbl.behave.enable_pagecache, "enable-page-cache") +EXPOSE_WEBKIT_VIEW_SETTINGS(enable_private, uzbl.behave.enable_private, "enable-private-browsing") + +EXPOSE_WEBKIT_VIEW_SETTINGS(enable_spellcheck, uzbl.behave.enable_spellcheck, "enable-spell-checking") +EXPOSE_WEBKIT_VIEW_SETTINGS(resizable_txt, uzbl.behave.resizable_txt, "resizable-text-areas") + +EXPOSE_WEBKIT_VIEW_SETTINGS(style_uri, uzbl.behave.style_uri, "user-stylesheet-uri") +EXPOSE_WEBKIT_VIEW_SETTINGS(print_bg, uzbl.behave.print_bg, "print-backgrounds") +EXPOSE_WEBKIT_VIEW_SETTINGS(enforce_96dpi, uzbl.behave.enforce_96dpi, "enforce-96-dpi") + +EXPOSE_WEBKIT_VIEW_SETTINGS(caret_browsing, uzbl.behave.caret_browsing, "enable-caret-browsing") + +EXPOSE_WEBKIT_VIEW_SETTINGS(default_encoding, uzbl.behave.default_encoding, "default-encoding") + +void +set_proxy_url() { + const gchar *url = uzbl.net.proxy_url; + SoupSession *session = uzbl.net.soup_session; + SoupURI *soup_uri = NULL; + + if (url != NULL || *url != 0 || *url != ' ') + soup_uri = soup_uri_new(url); + + g_object_set(G_OBJECT(session), SOUP_SESSION_PROXY_URI, soup_uri, NULL); + + if(soup_uri) + soup_uri_free(soup_uri); +} + + +void +set_authentication_handler() { + /* Check if WEBKIT_TYPE_SOUP_AUTH_DIALOG feature is set */ + GSList *flist = soup_session_get_features (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); + guint feature_is_set = g_slist_length(flist); + g_slist_free(flist); + + if (uzbl.behave.authentication_handler == NULL || *uzbl.behave.authentication_handler == 0) { + if (!feature_is_set) + soup_session_add_feature_by_type + (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); + } else { + if (feature_is_set) + soup_session_remove_feature_by_type + (uzbl.net.soup_session, (GType) WEBKIT_TYPE_SOUP_AUTH_DIALOG); + } + return; +} + +void +set_status_background() { + /* labels and hboxes do not draw their own background. applying this + * on the vbox/main_window is ok as the statusbar is the only affected + * widget. (if not, we could also use GtkEventBox) */ + GtkWidget* widget = uzbl.gui.main_window ? uzbl.gui.main_window : GTK_WIDGET (uzbl.gui.plug); + +#if GTK_CHECK_VERSION(2,91,0) + GdkRGBA color; + gdk_rgba_parse (&color, uzbl.behave.status_background); + gtk_widget_override_background_color (widget, GTK_STATE_NORMAL, &color); +#else + GdkColor color; + gdk_color_parse (uzbl.behave.status_background, &color); + gtk_widget_modify_bg (widget, GTK_STATE_NORMAL, &color); +#endif +} + +void +set_icon() { + if(file_exists(uzbl.gui.icon)) { + if (uzbl.gui.main_window) + gtk_window_set_icon_from_file (GTK_WINDOW (uzbl.gui.main_window), uzbl.gui.icon, NULL); + } else { + g_printerr ("Icon \"%s\" not found. ignoring.\n", uzbl.gui.icon); + } +} + +void +cmd_set_geometry() { + int ret=0, x=0, y=0; + unsigned int w=0, h=0; + if(uzbl.gui.geometry) { + if(uzbl.gui.geometry[0] == 'm') { /* m/maximize/maximized */ + gtk_window_maximize((GtkWindow *)(uzbl.gui.main_window)); + } else { + /* we used to use gtk_window_parse_geometry() but that didn't work how it was supposed to */ + ret = XParseGeometry(uzbl.gui.geometry, &x, &y, &w, &h); + if(ret & XValue) + gtk_window_move((GtkWindow *)uzbl.gui.main_window, x, y); + if(ret & WidthValue) + gtk_window_resize((GtkWindow *)uzbl.gui.main_window, w, h); + } + } + + /* update geometry var with the actual geometry + this is necessary as some WMs don't seem to honour + the above setting and we don't want to end up with + wrong geometry information + */ + retrieve_geometry(); +} + +void +cmd_set_status() { + if (!uzbl.behave.show_status) { + gtk_widget_hide(uzbl.gui.mainbar); + } else { + gtk_widget_show(uzbl.gui.mainbar); + } + update_title(); +} + +void +set_current_encoding() { + gchar *encoding = uzbl.behave.current_encoding; + if(strlen(encoding) == 0) + encoding = NULL; + + webkit_web_view_set_custom_encoding(uzbl.gui.web_view, encoding); +} + +void +cmd_fifo_dir() { + uzbl.behave.fifo_dir = init_fifo(uzbl.behave.fifo_dir); +} + +void +cmd_socket_dir() { + uzbl.behave.socket_dir = init_socket(uzbl.behave.socket_dir); +} + +void +cmd_inject_html() { + if(uzbl.behave.inject_html) { + webkit_web_view_load_html_string (uzbl.gui.web_view, + uzbl.behave.inject_html, NULL); + } +} + +void +cmd_useragent() { + if (*uzbl.net.useragent == ' ') { + g_free (uzbl.net.useragent); + uzbl.net.useragent = NULL; + } else { + g_object_set(G_OBJECT(uzbl.net.soup_session), SOUP_SESSION_USER_AGENT, + uzbl.net.useragent, NULL); + } +} + +void +set_accept_languages() { + if (*uzbl.net.accept_languages == ' ') { + g_free (uzbl.net.accept_languages); + uzbl.net.accept_languages = NULL; + } else { + g_object_set(G_OBJECT(uzbl.net.soup_session), + SOUP_SESSION_ACCEPT_LANGUAGE, uzbl.net.accept_languages, NULL); + } +} + +void +cmd_scrollbars_visibility() { + GtkPolicyType policy = uzbl.gui.scrollbars_visible ? GTK_POLICY_AUTOMATIC : GTK_POLICY_NEVER; + + gtk_scrolled_window_set_policy ( GTK_SCROLLED_WINDOW (uzbl.gui.scrolled_win), policy, policy ); +} + +/* requires webkit >=1.1.14 */ +void +cmd_view_source() { + webkit_web_view_set_view_source_mode(uzbl.gui.web_view, + (gboolean) uzbl.behave.view_source); +} + +void +cmd_set_zoom_type () { + if(uzbl.behave.zoom_type) + webkit_web_view_set_full_content_zoom (uzbl.gui.web_view, TRUE); + else + webkit_web_view_set_full_content_zoom (uzbl.gui.web_view, FALSE); +} diff --git a/src/variables.h b/src/variables.h index 653a718..1b7663a 100644 --- a/src/variables.h +++ b/src/variables.h @@ -27,4 +27,51 @@ void variables_hash(); void dump_config(); void dump_config_as_events(); + +void cmd_load_uri(); +void cmd_set_status(); +void set_proxy_url(); +void set_authentication_handler(); +void set_status_background(); +void set_icon(); +void move_statusbar(); +void cmd_http_debug(); +void cmd_max_conns(); +void cmd_max_conns_host(); + +/* exported WebKitWebSettings properties */ +void cmd_font_size(); +void cmd_default_font_family(); +void cmd_monospace_font_family(); +void cmd_sans_serif_font_family(); +void cmd_serif_font_family(); +void cmd_cursive_font_family(); +void cmd_fantasy_font_family(); +void cmd_zoom_level(); +void cmd_set_zoom_type(); +void cmd_enable_pagecache(); +void cmd_disable_plugins(); +void cmd_disable_scripts(); +void cmd_minimum_font_size(); +void cmd_fifo_dir(); +void cmd_socket_dir(); +void cmd_useragent() ; +void set_accept_languages(); +void cmd_autoload_img(); +void cmd_autoshrink_img(); +void cmd_enable_spellcheck(); +void cmd_enable_private(); +void cmd_print_bg(); +void cmd_style_uri(); +void cmd_resizable_txt(); +void cmd_default_encoding(); +void set_current_encoding(); +void cmd_enforce_96dpi(); +void cmd_inject_html(); +void cmd_caret_browsing(); +void cmd_javascript_windows(); +void cmd_set_geometry(); +void cmd_view_source(); +void cmd_scrollbars_visibility(); + #endif -- cgit v1.2.3