commit efb8aeb094ac6c5ef1efbc4dc7a7cf62f1977f2b
parent f042133c64c0b25f7c58ba292403ad4e7e3fcce3
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Wed, 17 Oct 2012 02:37:06 -0600
use common fns for making buf number, favicon and url
Diffstat:
5 files changed, 39 insertions(+), 54 deletions(-)
diff --git a/src/buffer.c b/src/buffer.c
@@ -478,24 +478,13 @@ console_cb(void *data, Evas_Object *obj, const char *message, unsigned int line,
void
icon_changed_cb(void *data, Evas_Object *obj, void *event_info)
{
- Ewk_Favicon_Database *database;
Buffer_Data *bd = data;
Window_Data *wd = bd->window;
- Evas *e = evas_object_evas_get(wd->win);
if (bd != wd->cur_buf)
return;
- elm_box_clear(wd->status_favicon);
- database = ewk_context_favicon_database_get(ewk_context_default_get());
- ewk_favicon_database_async_icon_get(
- database,
- ewk_view_url_get(bd->view),
- e,
- received_favicon_cb,
- wd->status_favicon);
-
- printf("icon_changed()\n");
+ make_favicon(wd->status_favicon, bd);
}
static void
diff --git a/src/commands.c b/src/commands.c
@@ -982,15 +982,22 @@ list(const Arg *arg, void *data)
EINA_LIST_FOREACH(ad->buffer_list, l, td) {
row = elm_box_add(ad->win);
- elm_box_homogeneous_set(row, EINA_FALSE);
elm_box_horizontal_set(row, EINA_TRUE);
evas_object_size_hint_align_set(row, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_box_pack_end(ad->event_box, row);
evas_object_show(row);
- label = make_url_with_icon(ewk_view_url_get(td->view), td);
+ label = elm_label_add(ad->win);
+ make_buffer_number(label, td);
+ elm_box_pack_end(row, label);
+
+ label = elm_box_add(ad->win);
+ make_favicon(label, td);
+ elm_box_pack_end(row, label);
+
+ label = elm_label_add(ad->win);
+ make_url(label, td);
elm_box_pack_end(row, label);
- evas_object_show(label);
label = elm_label_add(ad->win);
evas_object_size_hint_weight_set(label, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
diff --git a/src/utilities.c b/src/utilities.c
@@ -741,6 +741,17 @@ set_widget_font_and_color(Evas_Object *widget, const char *font_str, const char
*/
void
+make_buffer_number(Evas_Object *label, Buffer_Data *bd)
+{
+ Eina_Strbuf *buf = eina_strbuf_new();
+
+ evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_FILL);
+ eina_strbuf_append_printf(buf, " %2i ", bd->buf_number);
+ elm_object_text_set(label, eina_strbuf_string_steal(buf));
+ evas_object_show(label);
+}
+
+void
received_favicon_cb(const char *url, Evas_Object *icon, void *data)
{
Evas_Object *row = data;
@@ -754,39 +765,29 @@ received_favicon_cb(const char *url, Evas_Object *icon, void *data)
evas_object_show(icon);
}
-Evas_Object*
-make_url_with_icon(const char *url, Buffer_Data *bd)
+void
+make_favicon(Evas_Object *icon, Buffer_Data *bd)
{
Ewk_Favicon_Database *database;
- Evas_Object *icon, *label, *return_box;
- Eina_Strbuf *buf = eina_strbuf_new();
Window_Data *wd = bd->window;
Evas *e = evas_object_evas_get(wd->win);
+ const char *url = ewk_view_url_get(bd->view);
- if (url == NULL)
- return NULL;
-
- return_box = elm_box_add(wd->win);
- elm_box_horizontal_set(return_box, EINA_TRUE);
- evas_object_show(return_box);
-
- label = elm_label_add(wd->win);
- evas_object_size_hint_align_set(label, 0.0, EVAS_HINT_FILL);
- elm_box_pack_end(return_box, label);
- eina_strbuf_append_printf(buf, " %2i ", bd->buf_number);
- elm_object_text_set(label, eina_strbuf_string_steal(buf));
- evas_object_show(label);
-
+ elm_box_clear(wd->status_favicon);
database = ewk_context_favicon_database_get(ewk_context_default_get());
- icon = elm_box_add(wd->win);
ewk_favicon_database_async_icon_get(
database,
url,
e,
received_favicon_cb,
icon);
- elm_box_pack_end(return_box, icon);
evas_object_show(icon);
+}
+
+void
+make_url(Evas_Object *label, Buffer_Data *bd)
+{
+ const char *url = ewk_view_url_get(bd->view);
if (strncmp(url, "http://", 7) == 0)
url += 7;
@@ -807,13 +808,7 @@ make_url_with_icon(const char *url, Buffer_Data *bd)
uri += 7;
*/
- label = elm_label_add(wd->win);
- elm_box_pack_end(return_box, label);
elm_object_text_set(label, url);
evas_object_show(label);
-
- printf("make_url_with_icon()\n");
-
- return return_box;
}
diff --git a/src/utilities.h b/src/utilities.h
@@ -36,3 +36,7 @@ void received_favicon_cb(const char *url, Evas_Object *icon, void *data);
char *find_uri_for_searchengine(const char *handle);
void make_searchengines_list(Searchengine *searchengines, int length);
+void make_buffer_number(Evas_Object *label, Buffer_Data *bd);
+void make_favicon(Evas_Object *icon, Buffer_Data *bd);
+void make_url(Evas_Object *label, Buffer_Data *bd);
+
diff --git a/src/window.c b/src/window.c
@@ -324,11 +324,9 @@ _win_del_request_cb(void *data, Evas_Object *obj, void *event_info)
void
window_main_buffer_set(Buffer_Data *new_buf)
{
- const char *url;
Window_Data *wd = new_buf->window;
Buffer_Data *old_buf = wd->cur_buf;
App_Data *ad = wd->app;
- Eina_Strbuf *buf = eina_strbuf_new();
if (new_buf == old_buf || ad->exiting)
return;
@@ -350,21 +348,13 @@ window_main_buffer_set(Buffer_Data *new_buf)
elm_naviframe_item_simple_promote(wd->naviframe, new_buf->view);
/* set buffer number */
- eina_strbuf_append_printf(buf, " %2i ", new_buf->buf_number);
- elm_object_text_set(wd->status_buffer_num, eina_strbuf_string_steal(buf));
- evas_object_show(wd->status_buffer_num);
+ make_buffer_number(wd->status_buffer_num, new_buf);
/* trigger icon update */
- icon_changed_cb(new_buf, NULL, NULL);
+ make_favicon(wd->status_favicon, new_buf);
/* set url */
- url = ewk_view_url_get(new_buf->view);
- if (strncmp(url, "http://", 7) == 0)
- url += 7;
- else if (strncmp(url, "https://", 8) == 0)
- url += 8;
- elm_object_text_set(wd->status_url, url);
- evas_object_show(wd->status_url);
+ make_url(wd->status_url, new_buf);
}
}