[Eve] Add favicon/button to clear the URL entry.

Patch by Alex Grilo.

SVN revision: 53580
This commit is contained in:
Leandro Pereira 2010-10-18 19:24:10 +00:00
parent c4208236c8
commit 8ef13eb5e4
5 changed files with 51 additions and 3 deletions

BIN
data/themes/bt_clear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 978 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -295,6 +295,20 @@ collections {
}
}
}
group { name: "clear-button";
images.image: "bt_clear.png" COMP;
parts {
part { name: "icon";
type: IMAGE;
description { state: "default" 0.0;
align: 1.0 0.5;
image.normal: "bt_clear.png";
min: 38 22;
max: 38 22;
}
}
}
}
group { name: "chrome";
images {
image: "bt_back_normal.png" COMP;
@ -971,7 +985,7 @@ collections {
rel2 {
to: "url-entry-bg";
relative: 1.0 1.0;
offset: -6 -2;
offset: -1 -2;
}
}
}

View File

@ -419,7 +419,7 @@
rel1 {
to: "bg";
relative: 1.0 0.0;
offset: -20 0;
offset: -38 0;
}
rel2 {
to: "bg";
@ -434,7 +434,7 @@
rel1 {
to: "bg";
relative: 1.0 0.0;
offset: -20 0;
offset: -38 0;
}
rel2 {
to: "bg";

View File

@ -857,10 +857,13 @@ _chrome_title_apply(Evas_Object *chrome)
static void
_chrome_state_apply(Evas_Object *chrome, Evas_Object *view)
{
Evas *canvas = evas_object_evas_get(chrome);
const char *url = ewk_view_uri_get(view);
const char *title = ewk_view_title_get(view);
Evas_Object *ed = elm_layout_edje_get(chrome);
Evas_Object *text_url;
Evas_Object *favicon;
Evas_Object *old_icon;
_chrome_title_apply(chrome);
@ -869,6 +872,18 @@ _chrome_state_apply(Evas_Object *chrome, Evas_Object *view)
_is_favorite_check(chrome, url);
_history_update(url, title ? title : url);
old_icon = elm_scrolled_entry_icon_unset(text_url);
if (old_icon)
evas_object_del(old_icon);
if (url)
{
favicon = ewk_settings_icon_database_icon_object_add(url, canvas);
if (favicon)
elm_scrolled_entry_icon_set(text_url, favicon);
}
edje_object_signal_emit(ed, ewk_view_back_possible(view) ? "button,back,enable" : "button,back,disable", "");
edje_object_signal_emit(ed, ewk_view_forward_possible(view) ? "button,forward,enable" : "button,forward,disable", "");
}
@ -1155,6 +1170,16 @@ on_tab_gengrid_item_realized(void *data, Evas_Object *o, void *event_info)
win->creating_tab = EINA_FALSE;
}
static void
on_action_clear(void *data, Evas_Object *o __UNUSED__,
void *event_info __UNUSED__)
{
Evas_Object *chrome = data;
Evas_Object *ed = elm_layout_edje_get(chrome);
Evas_Object *text_url = edje_object_part_swallow_get(ed, "url-entry");
elm_scrolled_entry_entry_set(text_url, "");
}
static void
on_action_back(void *data, Evas_Object *o __UNUSED__,
const char *emission __UNUSED__, const char *source __UNUSED__)
@ -2369,13 +2394,22 @@ chrome_add(Browser_Window *win, const char *url, Session_Item *session_item)
evas_object_smart_callback_add(view, "inputmethods,changed",
on_inputmethods_changed, win->win);
if (url)
ewk_view_uri_set(view, url);
Evas_Object *text_url = elm_scrolled_entry_add(ed);
elm_object_style_set(text_url, "ewebkit/url");
elm_scrolled_entry_single_line_set(text_url, EINA_TRUE);
elm_layout_content_set(chrome, "url-entry", text_url);
evas_object_smart_callback_add
(text_url, "activated", on_action_load_page, view);
Evas_Object *ic = elm_icon_add(ed);
elm_icon_file_set(ic, PACKAGE_DATA_DIR "/default.edj", "clear-button");
elm_scrolled_entry_end_set(text_url, ic);
evas_object_smart_callback_add(ic, "clicked", on_action_clear, chrome);
Evas_Object *more_list = elm_genlist_add(ed);
evas_object_data_set(more_list, "chrome", chrome);
evas_object_data_set(chrome, "more-list", more_list);