static MiniBrowser *browserCreate(const char *url) { MiniBrowser *app = malloc(sizeof(MiniBrowser)); app->ee = ecore_evas_new(0, 0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 0); ecore_evas_title_set(app->ee, "EFL MiniBrowser"); ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); ecore_evas_borderless_set(app->ee, 0); ecore_evas_show(app->ee); app->evas = ecore_evas_get(app->ee); app->bg = evas_object_rectangle_add(app->evas); evas_object_name_set(app->bg, "bg"); evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->bg, 0, 0); evas_object_resize(app->bg, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_color_set(app->bg, 255, 150, 150, 255); evas_object_show(app->bg); /* Create webview */ app->browser = ewk_view_add(app->evas); evas_object_name_set(app->browser, "browser"); evas_object_size_hint_weight_set(app->browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_resize(app->browser, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_show(app->browser); evas_object_focus_set(app->browser, EINA_TRUE); ewk_view_uri_set(app->browser, url); return app; }
Page* ChromeClientEfl::createWindow(Frame*, const FrameLoadRequest& frameLoadRequest, const WindowFeatures& features) { Evas_Object* newView = ewk_view_window_create(m_view, EINA_TRUE, &features); if (!newView) return 0; if (!frameLoadRequest.isEmpty()) ewk_view_uri_set(newView, frameLoadRequest.resourceRequest().url().string().utf8().data()); return ewk_view_core_page_get(newView); }
static MiniBrowser *browserCreate(const char *url, const char *engine) { MiniBrowser *app = malloc(sizeof(MiniBrowser)); app->ee = ecore_evas_new(engine, 0, 0, DEFAULT_WIDTH, DEFAULT_HEIGHT, 0); if (!app->ee) return 0; ecore_evas_title_set(app->ee, APP_NAME); ecore_evas_callback_resize_set(app->ee, on_ecore_evas_resize); ecore_evas_borderless_set(app->ee, 0); ecore_evas_show(app->ee); ecore_evas_callback_delete_request_set(app->ee, closeWindow); app->evas = ecore_evas_get(app->ee); app->bg = evas_object_rectangle_add(app->evas); evas_object_name_set(app->bg, "bg"); evas_object_size_hint_weight_set(app->bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->bg, 0, 0); evas_object_resize(app->bg, DEFAULT_WIDTH, DEFAULT_HEIGHT); evas_object_color_set(app->bg, 255, 150, 150, 255); evas_object_show(app->bg); /* Create webview */ app->browser = ewk_view_add(app->evas); ewk_view_theme_set(app->browser, THEME_DIR"/default.edj"); evas_object_name_set(app->browser, "browser"); evas_object_smart_callback_add(app->browser, "load,error", on_error, app); evas_object_smart_callback_add(app->browser, "load,progress", on_progress, app); evas_object_smart_callback_add(app->browser, "title,changed", on_title_changed, app); evas_object_smart_callback_add(app->browser, "uri,changed", on_url_changed, app); evas_object_event_callback_add(app->browser, EVAS_CALLBACK_KEY_DOWN, on_key_down, app); evas_object_size_hint_weight_set(app->browser, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_move(app->browser, 0, URL_BAR_HEIGHT); evas_object_resize(app->browser, DEFAULT_WIDTH, DEFAULT_HEIGHT - URL_BAR_HEIGHT); evas_object_show(app->browser); evas_object_focus_set(app->browser, EINA_TRUE); app->url_bar = url_bar_add(app->browser, DEFAULT_WIDTH); ewk_view_uri_set(app->browser, url); return app; }
static void on_urlbar_key_down(void *data, Evas *e, Evas_Object *obj, void *event_info) { Evas_Event_Key_Down *ev = event_info; Url_Bar *urlBar = (Url_Bar *)data; if (!ev->key || strcmp(ev->key, "Return")) return; char *url = _url_bar_url_get_with_protocol(urlBar); if (url) { ewk_view_uri_set(urlBar->webView, url); free(url); } evas_object_focus_set(urlBar->webView, EINA_TRUE); }
bool EWKTestView::init() { if (!m_evas || m_url.empty()) return false; switch (m_defaultViewType) { case SingleView: m_webView = adoptRef(ewk_view_single_add(m_evas)); break; case TiledView: m_webView = adoptRef(ewk_view_tiled_add(m_evas)); break; } if (!m_webView.get()) return false; ewk_view_theme_set(m_webView.get(), Config::defaultThemePath); ewk_view_uri_set(m_webView.get(), m_url.c_str()); }
InspectorFrontendChannel* InspectorClientEfl::openInspectorFrontend(InspectorController*) { evas_object_smart_callback_call(m_inspectedView, "inspector,view,create", 0); Evas_Object* inspectorView = ewk_view_inspector_view_get(m_inspectedView); if (!inspectorView) return 0; m_inspectorView = inspectorView; String inspectorUri = inspectorFilesPath() + "/inspector.html"; ewk_view_uri_set(m_inspectorView, inspectorUri.utf8().data()); OwnPtr<InspectorFrontendClientEfl> frontendClient = adoptPtr(new InspectorFrontendClientEfl(m_inspectedView, m_inspectorView, this)); m_frontendClient = frontendClient.get(); InspectorController* controller = EWKPrivate::corePage(m_inspectorView)->inspectorController(); controller->setInspectorFrontendClient(frontendClient.release()); return this; }
InspectorFrontendChannel* InspectorClientEfl::openInspectorFrontend(InspectorController*) { evas_object_smart_callback_call(m_inspectedView, "inspector,view,create", 0); Evas_Object* inspectorView = ewk_view_inspector_view_get(m_inspectedView); if (!inspectorView) return 0; m_inspectorView = inspectorView; String inspectorUri = inspectorFilesPath() + "/Main.html"; ewk_view_uri_set(m_inspectorView, inspectorUri.utf8().data()); auto frontendClient = std::make_unique<InspectorFrontendClientEfl>(m_inspectedView, m_inspectorView, this); m_frontendClient = frontendClient.get(); InspectorController& controller = EWKPrivate::corePage(m_inspectorView)->inspectorController(); controller.setInspectorFrontendClient(std::move(frontendClient)); return this; }