commit 0182ef3e1897294f1d0bb89ae2725379325f9b45
parent b3922be9aa883227dfa970bac95d36e3db0c3e45
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Tue, 16 Oct 2012 21:11:22 -0600
rip out the back-forward icon from update_url
Diffstat:
4 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/src/buffer.c b/src/buffer.c
@@ -474,6 +474,26 @@ icon_changed_cb(void *data, Evas_Object *obj, void *event_info)
}
static void
+bf_list_changed_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ Eina_Bool back, fwd;
+ Eina_Strbuf *buf;
+ Buffer_Data *bd = data;
+ Window_Data *wd = bd->window;
+
+ buf = eina_strbuf_new();
+ back = ewk_view_back_possible(bd->view);
+ fwd = ewk_view_forward_possible(bd->view);
+
+ if (back || fwd)
+ eina_strbuf_append_printf(buf, "[%s%s]", back ? "+" : "", fwd ? "-" : "");
+
+ elm_object_text_set(wd->status_back_forward, eina_strbuf_string_steal(buf));
+
+ printf("back_forward_list_changed_cb()\n");
+}
+
+static void
webview_free_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
{
Buffer_Data *bd = data;
@@ -680,6 +700,7 @@ buffer_add(const unsigned char flags, Window_Data *wd, const char *url, Session_
evas_object_smart_callback_add(v, "inspector,view,create", inspector_cb, bd);
evas_object_smart_callback_add(v, "inspector,view,close", inspector_close_cb, bd);
evas_object_smart_callback_add(v, "icon,changed", icon_changed_cb, bd);
+ evas_object_smart_callback_add(v, "back,forward,list,changed", bf_list_changed_cb, bd);
/* not yet implemented in ewebkit */
// evas_object_smart_callback_add(v, "link,hover,in", hoverlink_cb, td);
diff --git a/src/utilities.c b/src/utilities.c
@@ -686,11 +686,8 @@ update_state(Window_Data *wd)
void
update_url(const char *uri, Window_Data *wd)
{
- Eina_Bool back, fwd;
Eina_Strbuf *url_buf;
- char before[] = " [";
- char after[] = "]";
Buffer_Data *bd = wd->cur_buf;
char *url_color = "#FFF";
@@ -698,8 +695,6 @@ update_url(const char *uri, Window_Data *wd)
return;
url_buf = eina_strbuf_new();
- back = ewk_view_back_possible(bd->view);
- fwd = ewk_view_forward_possible(bd->view);
/*
if (!strncmp(uri, "https://", 8)) {
@@ -716,10 +711,8 @@ update_url(const char *uri, Window_Data *wd)
uri += 7;
*/
- if (!back && !fwd)
- before[0] = after[0] = '\0';
-
eina_strbuf_append(url_buf, "<font=Monospace font_size=11 color=#FFF>");
+
/*
strcat(flags, "[");
@@ -732,8 +725,7 @@ update_url(const char *uri, Window_Data *wd)
*/
eina_strbuf_append_printf(url_buf, " %2i ", bd->buf_number);
- eina_strbuf_append_printf(url_buf, "<color=%s>%s<color=#FFF>%s%s%s%s",
- url_color, uri, before, back ? "+" : "", fwd ? "-" : "", after);
+ eina_strbuf_append_printf(url_buf, "<color=%s>%s", url_color, uri);
int state_width, window_width;
evas_object_geometry_get(wd->status_state, NULL, NULL, &state_width, NULL);
diff --git a/src/viking.h b/src/viking.h
@@ -191,6 +191,7 @@ typedef struct
Evas_Object *event_box;
Evas_Object *status_bar;
Evas_Object *status_url;
+ Evas_Object *status_back_forward;
Evas_Object *status_state;
Evas_Object *web_inspector;
Evas_Object *progress_bar;
diff --git a/src/window.c b/src/window.c
@@ -377,6 +377,7 @@ window_add(App_Data *ad, Session_Window *session_window)
Evas_Object *win, *bg, *box, *status_bar, *url, *naviframe, *status_url;
Evas_Object *status_state, *event_box, *web_inspector, *progress, *downloads;
+ Evas_Object *status_back_forward;
elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
@@ -426,11 +427,16 @@ window_add(App_Data *ad, Session_Window *session_window)
/* status bar url */
status_url = elm_label_add(win);
- evas_object_size_hint_weight_set(status_url, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(status_url, 0.0, EVAS_HINT_FILL);
elm_box_pack_end(status_bar, status_url);
evas_object_show(status_url);
+ status_back_forward = elm_label_add(win);
+ evas_object_size_hint_weight_set(status_back_forward, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(status_back_forward, 0.0, EVAS_HINT_FILL);
+ elm_box_pack_end(status_bar, status_back_forward);
+ evas_object_show(status_back_forward);
+
/* status bar state (load progress, mod keys, scroll %) */
status_state = elm_label_add(win);
evas_object_size_hint_weight_set(status_state, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
@@ -480,6 +486,7 @@ window_add(App_Data *ad, Session_Window *session_window)
wd->naviframe = naviframe;
wd->url = url;
wd->status_url = status_url;
+ wd->status_back_forward = status_back_forward;
wd->status_state = status_state;
wd->event_box = event_box;
wd->web_inspector = web_inspector;