From 26510d17719f5fffd32737688eac6217b2b154f6 Mon Sep 17 00:00:00 2001 From: Rafael Antognolli Date: Wed, 28 Aug 2013 18:04:54 -0300 Subject: [PATCH] Add option to disable toolbar on MiniBrowser. --- Tools/MiniBrowser/efl/main.c | 126 +++++++++++++++++++++++-------------------- 1 file changed, 68 insertions(+), 58 deletions(-) diff --git a/Tools/MiniBrowser/efl/main.c b/Tools/MiniBrowser/efl/main.c index 474b7ba..849c11f 100755 --- a/Tools/MiniBrowser/efl/main.c +++ b/Tools/MiniBrowser/efl/main.c @@ -43,6 +43,7 @@ static Eina_List *windows = NULL; static char *evas_engine_name = NULL; static Eina_Bool frame_flattening_enabled = EINA_FALSE; static Eina_Bool fullscreen_enabled = EINA_FALSE; +static Eina_Bool toolbar_enabled = EINA_TRUE; typedef struct _Browser_Window { Evas_Object *window; @@ -69,6 +70,8 @@ static const Ecore_Getopt options = { ('f', "flattening", "frame flattening.", EINA_FALSE), ECORE_GETOPT_STORE_DEF_BOOL ('F', "full-screen", "start in full-screen.", EINA_FALSE), + ECORE_GETOPT_STORE_DEF_BOOL + ('T', "toolbar", "enable toolbar.", EINA_TRUE), ECORE_GETOPT_VERSION ('V', "version"), ECORE_GETOPT_COPYRIGHT @@ -168,7 +171,8 @@ on_mouse_down(void *user_data, Evas *e, Evas_Object *webview, void *event_info) Evas_Event_Mouse_Down *ev = (Evas_Event_Mouse_Down *)event_info; /* Clear selection from the URL bar */ - elm_entry_select_none(window->url_bar); + if (window->url_bar) + elm_entry_select_none(window->url_bar); if (ev->button == 1) view_focus_set(window, EINA_TRUE); @@ -209,7 +213,8 @@ static void on_url_changed(void *user_data, Evas_Object *webview, void *event_info) { Browser_Window *window = (Browser_Window *)user_data; - elm_entry_entry_set(window->url_bar, ewk_view_url_get(window->webview)); + if (window->url_bar) + elm_entry_entry_set(window->url_bar, ewk_view_url_get(window->webview)); } static void @@ -218,8 +223,10 @@ on_back_forward_list_changed(void *user_data, Evas_Object *webview, void *event_ Browser_Window *window = (Browser_Window *)user_data; /* Update navigation buttons state */ - elm_object_disabled_set(window->back_button, !ewk_view_back_possible(webview)); - elm_object_disabled_set(window->forward_button, !ewk_view_forward_possible(webview)); + if (window->back_button) + elm_object_disabled_set(window->back_button, !ewk_view_back_possible(webview)); + if (window->forward_button) + elm_object_disabled_set(window->forward_button, !ewk_view_forward_possible(webview)); } static void @@ -432,60 +439,62 @@ static Browser_Window *window_create(const char *url) elm_win_resize_object_add(app_data->window, vertical_layout); evas_object_show(vertical_layout); - /* Create horizontal layout for top bar */ - Evas_Object *horizontal_layout = elm_box_add(app_data->window); - elm_box_horizontal_set(horizontal_layout, EINA_TRUE); - evas_object_size_hint_weight_set(horizontal_layout, EVAS_HINT_EXPAND, 0.0); - evas_object_size_hint_align_set(horizontal_layout, EVAS_HINT_FILL, 0.0); - elm_box_pack_end(vertical_layout, horizontal_layout); - evas_object_show(horizontal_layout); - - /* Create Back button */ - app_data->back_button = create_toolbar_button(app_data->window, "arrow_left"); - evas_object_smart_callback_add(app_data->back_button, "clicked", on_back_button_clicked, app_data); - elm_object_disabled_set(app_data->back_button, EINA_TRUE); - evas_object_size_hint_weight_set(app_data->back_button, 0.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(app_data->back_button, 0.0, 0.5); - elm_box_pack_end(horizontal_layout, app_data->back_button); - evas_object_show(app_data->back_button); - - /* Create Forward button */ - app_data->forward_button = create_toolbar_button(app_data->window, "arrow_right"); - evas_object_smart_callback_add(app_data->forward_button, "clicked", on_forward_button_clicked, app_data); - elm_object_disabled_set(app_data->forward_button, EINA_TRUE); - evas_object_size_hint_weight_set(app_data->forward_button, 0.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(app_data->forward_button, 0.0, 0.5); - elm_box_pack_end(horizontal_layout, app_data->forward_button); - evas_object_show(app_data->forward_button); - - /* Create URL bar */ - app_data->url_bar = elm_entry_add(app_data->window); - elm_entry_scrollable_set(app_data->url_bar, EINA_TRUE); - elm_entry_single_line_set(app_data->url_bar, EINA_TRUE); - elm_entry_cnp_mode_set(app_data->url_bar, ELM_CNP_MODE_PLAINTEXT); - elm_entry_text_style_user_push(app_data->url_bar, "DEFAULT='font_size=18'"); - evas_object_smart_callback_add(app_data->url_bar, "activated", on_url_bar_activated, app_data); - evas_object_smart_callback_add(app_data->url_bar, "clicked", on_url_bar_clicked, app_data); - evas_object_size_hint_weight_set(app_data->url_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(app_data->url_bar, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_box_pack_end(horizontal_layout, app_data->url_bar); - evas_object_show(app_data->url_bar); - - /* Create Refresh button */ - Evas_Object *refresh_button = create_toolbar_button(app_data->window, "refresh"); - evas_object_smart_callback_add(refresh_button, "clicked", on_refresh_button_clicked, app_data); - evas_object_size_hint_weight_set(refresh_button, 0.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(refresh_button, 1.0, 0.5); - elm_box_pack_end(horizontal_layout, refresh_button); - evas_object_show(refresh_button); - - /* Create Home button */ - Evas_Object *home_button = create_toolbar_button(app_data->window, "home"); - evas_object_smart_callback_add(home_button, "clicked", on_home_button_clicked, app_data); - evas_object_size_hint_weight_set(home_button, 0.0, EVAS_HINT_EXPAND); - evas_object_size_hint_align_set(home_button, 1.0, 0.5); - elm_box_pack_end(horizontal_layout, home_button); - evas_object_show(home_button); + if (toolbar_enabled) { + /* Create horizontal layout for top bar */ + Evas_Object *horizontal_layout = elm_box_add(app_data->window); + elm_box_horizontal_set(horizontal_layout, EINA_TRUE); + evas_object_size_hint_weight_set(horizontal_layout, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(horizontal_layout, EVAS_HINT_FILL, 0.0); + elm_box_pack_end(vertical_layout, horizontal_layout); + evas_object_show(horizontal_layout); + + /* Create Back button */ + app_data->back_button = create_toolbar_button(app_data->window, "arrow_left"); + evas_object_smart_callback_add(app_data->back_button, "clicked", on_back_button_clicked, app_data); + elm_object_disabled_set(app_data->back_button, EINA_TRUE); + evas_object_size_hint_weight_set(app_data->back_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->back_button, 0.0, 0.5); + elm_box_pack_end(horizontal_layout, app_data->back_button); + evas_object_show(app_data->back_button); + + /* Create Forward button */ + app_data->forward_button = create_toolbar_button(app_data->window, "arrow_right"); + evas_object_smart_callback_add(app_data->forward_button, "clicked", on_forward_button_clicked, app_data); + elm_object_disabled_set(app_data->forward_button, EINA_TRUE); + evas_object_size_hint_weight_set(app_data->forward_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->forward_button, 0.0, 0.5); + elm_box_pack_end(horizontal_layout, app_data->forward_button); + evas_object_show(app_data->forward_button); + + /* Create URL bar */ + app_data->url_bar = elm_entry_add(app_data->window); + elm_entry_scrollable_set(app_data->url_bar, EINA_TRUE); + elm_entry_single_line_set(app_data->url_bar, EINA_TRUE); + elm_entry_cnp_mode_set(app_data->url_bar, ELM_CNP_MODE_PLAINTEXT); + elm_entry_text_style_user_push(app_data->url_bar, "DEFAULT='font_size=18'"); + evas_object_smart_callback_add(app_data->url_bar, "activated", on_url_bar_activated, app_data); + evas_object_smart_callback_add(app_data->url_bar, "clicked", on_url_bar_clicked, app_data); + evas_object_size_hint_weight_set(app_data->url_bar, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(app_data->url_bar, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(horizontal_layout, app_data->url_bar); + evas_object_show(app_data->url_bar); + + /* Create Refresh button */ + Evas_Object *refresh_button = create_toolbar_button(app_data->window, "refresh"); + evas_object_smart_callback_add(refresh_button, "clicked", on_refresh_button_clicked, app_data); + evas_object_size_hint_weight_set(refresh_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(refresh_button, 1.0, 0.5); + elm_box_pack_end(horizontal_layout, refresh_button); + evas_object_show(refresh_button); + + /* Create Home button */ + Evas_Object *home_button = create_toolbar_button(app_data->window, "home"); + evas_object_smart_callback_add(home_button, "clicked", on_home_button_clicked, app_data); + evas_object_size_hint_weight_set(home_button, 0.0, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(home_button, 1.0, 0.5); + elm_box_pack_end(horizontal_layout, home_button); + evas_object_show(home_button); + } /* Create webview */ Evas *evas = evas_object_evas_get(app_data->window); @@ -543,6 +552,7 @@ elm_main(int argc, char *argv[]) ECORE_GETOPT_VALUE_BOOL(quitOption), ECORE_GETOPT_VALUE_BOOL(frame_flattening_enabled), ECORE_GETOPT_VALUE_BOOL(fullscreen_enabled), + ECORE_GETOPT_VALUE_BOOL(toolbar_enabled), ECORE_GETOPT_VALUE_BOOL(quitOption), ECORE_GETOPT_VALUE_BOOL(quitOption), ECORE_GETOPT_VALUE_BOOL(quitOption), -- 2.7.4