Add option to disable toolbar on MiniBrowser.
[platform/framework/web/webkit-efl.git] / Tools / MiniBrowser / efl / main.c
index 783045e..849c11f 100755 (executable)
@@ -42,6 +42,8 @@ static int verbose = 1;
 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;
@@ -66,6 +68,10 @@ static const Ecore_Getopt options = {
              ecore_getopt_callback_ecore_evas_list_engines, NULL),
         ECORE_GETOPT_STORE_DEF_BOOL
             ('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
@@ -165,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);
@@ -206,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
@@ -215,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
@@ -275,8 +285,8 @@ on_download_request(void *user_data, Evas_Object *webview, void *event_info)
     else {
         // Generate a unique file name since no name was suggested.
         char unique_path[] = "/tmp/downloaded-file.XXXXXX";
-        mktemp(unique_path);
-        eina_strbuf_append(destination_path, unique_path);
+        // change from org distribution
+        eina_strbuf_append(destination_path, mktemp(unique_path));
     }
 
     ewk_download_job_destination_set(download, eina_strbuf_string_get(destination_path));
@@ -429,69 +439,75 @@ 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);
     app_data->webview = ewk_view_add(evas);
     ewk_view_theme_set(app_data->webview, THEME_DIR "/default.edj");
 
+    /* set a file containing certificates for recognized SSL Certificate Authorities */
+    ewk_context_certificate_file_set(ewk_context_default_get(), "/var/lib/ca-certificates/ca-bundle.pem");
+
 //    Ewk_Settings *settings = ewk_view_settings_get(app_data->webview);
 //    ewk_settings_file_access_from_file_urls_allowed_set(settings, EINA_TRUE);
 //    ewk_settings_enable_frame_flattening_set(settings, frame_flattening_enabled);
+    elm_win_fullscreen_set(app_data->window, fullscreen_enabled);
 
     evas_object_smart_callback_add(app_data->webview, "close,window", on_close_window, app_data);
     evas_object_smart_callback_add(app_data->webview, "create,window", on_new_window, app_data);
@@ -535,6 +551,8 @@ elm_main(int argc, char *argv[])
         ECORE_GETOPT_VALUE_STR(evas_engine_name),
         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),