diff options
author | Rob <rob.manea@gmail.com> | 2009-11-10 06:19:52 +0100 |
---|---|---|
committer | Rob <rob.manea@gmail.com> | 2009-11-10 06:19:52 +0100 |
commit | 0cd073c7ad0c00e7e09ecd72ed1224711d16f6de (patch) | |
tree | f2e16358dff8ef63edc3f893ad7fc09417f6c181 /uzbl-core.c | |
parent | 30a7691ff43f9c97471ba3c36a3dcd75b5096ae3 (diff) | |
parent | a556922907b016650b7d5d3188f35f14f7967935 (diff) |
Merge branch 'experimental' of git://github.com/Dieterbe/uzbl into experimental
Diffstat (limited to 'uzbl-core.c')
-rw-r--r-- | uzbl-core.c | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/uzbl-core.c b/uzbl-core.c index c3194d9..146642c 100644 --- a/uzbl-core.c +++ b/uzbl-core.c @@ -526,13 +526,13 @@ catch_sigalrm(int s) { /* scroll a bar in a given direction */ void -scroll (GtkAdjustment* bar, GArray *argv) { +scroll (GtkAdjustment* bar, gchar *amount_str) { gchar *end; gdouble max_value; gdouble page_size = gtk_adjustment_get_page_size(bar); gdouble value = gtk_adjustment_get_value(bar); - gdouble amount = g_ascii_strtod(g_array_index(argv, gchar*, 0), &end); + gdouble amount = g_ascii_strtod(amount_str, &end); if (*end == '%') value += page_size * amount * 0.01; @@ -547,29 +547,46 @@ scroll (GtkAdjustment* bar, GArray *argv) { gtk_adjustment_set_value (bar, value); } +/* + * scroll vertical 20 + * scroll vertical 20% + * scroll vertical -40 + * scroll vertical begin + * scroll vertical end + * scroll horizontal 10 + * scroll horizontal -500 + * scroll horizontal begin + * scroll horizontal end + */ void -scroll_begin(WebKitWebView* page, GArray *argv, GString *result) { - (void) page; (void) argv; (void) result; - gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_lower(uzbl.gui.bar_v)); -} - -void -scroll_end(WebKitWebView* page, GArray *argv, GString *result) { - (void) page; (void) argv; (void) result; - gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_upper(uzbl.gui.bar_v) - - gtk_adjustment_get_page_size(uzbl.gui.bar_v)); -} - -void -scroll_vert(WebKitWebView* page, GArray *argv, GString *result) { - (void) page; (void) result; - scroll(uzbl.gui.bar_v, argv); -} - -void -scroll_horz(WebKitWebView* page, GArray *argv, GString *result) { +scroll_cmd(WebKitWebView* page, GArray *argv, GString *result) { (void) page; (void) result; - scroll(uzbl.gui.bar_h, argv); + gchar *direction = g_array_index(argv, gchar*, 0); + gchar *argv1 = g_array_index(argv, gchar*, 1); + + if (g_strcmp0(direction, "horizontal") == 0) + { + if (g_strcmp0(argv1, "begin") == 0) + gtk_adjustment_set_value(uzbl.gui.bar_h, gtk_adjustment_get_lower(uzbl.gui.bar_h)); + else if (g_strcmp0(argv1, "end") == 0) + gtk_adjustment_set_value (uzbl.gui.bar_h, gtk_adjustment_get_upper(uzbl.gui.bar_h) - + gtk_adjustment_get_page_size(uzbl.gui.bar_h)); + else + scroll(uzbl.gui.bar_h, argv1); + } + else if (g_strcmp0(direction, "vertical") == 0) + { + if (g_strcmp0(argv1, "begin") == 0) + gtk_adjustment_set_value(uzbl.gui.bar_v, gtk_adjustment_get_lower(uzbl.gui.bar_v)); + else if (g_strcmp0(argv1, "end") == 0) + gtk_adjustment_set_value (uzbl.gui.bar_v, gtk_adjustment_get_upper(uzbl.gui.bar_v) - + gtk_adjustment_get_page_size(uzbl.gui.bar_v)); + else + scroll(uzbl.gui.bar_v, argv1); + } + else + if(uzbl.state.verbose) + puts("Unrecognized scroll format"); } @@ -590,10 +607,7 @@ struct {const char *key; CommandInfo value;} cmdlist[] = { /* key function no_split */ { "back", {view_go_back, 0} }, { "forward", {view_go_forward, 0} }, - { "scroll_vert", {scroll_vert, 0} }, - { "scroll_horz", {scroll_horz, 0} }, - { "scroll_begin", {scroll_begin, 0} }, - { "scroll_end", {scroll_end, 0} }, + { "scroll", {scroll_cmd, 0} }, { "reload", {view_reload, 0}, }, { "reload_ign_cache", {view_reload_bypass_cache, 0} }, { "stop", {view_stop_loading, 0}, }, |