#include <Elementary.h>
#include <Evas.h>
-
#include "SimpleURI.h"
#include "ServiceManager.h"
#include "BrowserLogger.h"
EXPORT_SERVICE(SimpleURI, "org.tizen.browser.simpleuri")
-
const std::string keynameSelect = "Select";
const std::string keynameClear = "Clear";
const std::string keynameKP_Enter = "KP_Enter";
elm_theme_extension_add(NULL, edjFilePath.c_str());
}
-SimpleURI::~SimpleURI() {
+SimpleURI::~SimpleURI()
+{}
-}
-
-Evas_Object * SimpleURI::getContent(Evas_Object *main_layout) {
+Evas_Object * SimpleURI::getContent(Evas_Object *main_layout)
+{
if(!m_entry_layout) {
m_entry_layout = elm_layout_add(main_layout);
std::string edjFilePath = EDJE_DIR;
m_entryBtn = elm_button_add(m_entry_layout);
evas_object_event_callback_add(m_entryBtn, EVAS_CALLBACK_MOUSE_IN, __cb_mouse_in, this);
- //evas_object_event_callback_add(m_entryBtn, EVAS_CALLBACK_MOUSE_OUT, __cb_mouse_out, this);
evas_object_smart_callback_add(m_entryBtn, "focused", SimpleURI::focusedBtn, this);
evas_object_smart_callback_add(m_entryBtn, "unfocused", SimpleURI::unfocusedBtn, this);
setDocIcon();
}
}
+
void SimpleURI::setCurrentFavIcon()
{
m_currentIconType = IconTypeFav;
m_currentIconType = IconTypeSearch;
elm_object_signal_emit(m_entry_layout, "set_search_icon", "model");
}
+
void SimpleURI::setDocIcon()
{
m_currentIconType = IconTypeDoc;
SimpleURI *self = reinterpret_cast<SimpleURI*>(data);
self->editingCanceled();
}
+
void SimpleURI::preeditChange(void * /* data */, Evas_Object * /* obj */, void */*event_info*/)
{
BROWSER_LOGD("%s", __func__);
}
+
void SimpleURI::changedUser(void *data, Evas_Object * /* obj */, void */*event_info*/)
{
BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
{
BROWSER_LOGD("%s", __func__);
Evas_Event_Key_Down *ev = static_cast<Evas_Event_Key_Down *>(event_info);
- //BROWSER_LOGD("[%s:%d]: keyname: \"%s\"", __PRETTY_FUNCTION__, __LINE__, ev->keyname);
-
if (!data || !ev || !ev->keyname)
return;
SimpleURI * self = static_cast<SimpleURI*>(data);
elm_entry_entry_set(self->m_entry, "");
return;
}
-
if ( keynameSelect == ev->keyname
|| keynameReturn == ev->keyname
|| keynameKP_Enter == ev->keyname) {
self->editingCompleted();
return;
}
-
if( keynameEsc == ev->keyname){
self->editingCanceled();
elm_object_focus_set(self->m_entryBtn, EINA_TRUE);
BROWSER_LOGD("%s: %s", __PRETTY_FUNCTION__, url.c_str());
boost::regex urlRegex(R"(^(https?|ftp)://[^\s/$.?#].[^\s]*$)");
- if(!url.empty()) {
- if(url != "about:blank" && url != "about:home") {
- if(boost::regex_match(url, urlRegex)) {
- return url;
- } else if(boost::regex_match( std::string("http://") + url, urlRegex) && url.find(".") != std::string::npos) {
- return std::string("http://") + url;
- } else {
- std::string searchString("http://www.google.com/#q=");
- searchString += url;
- std::replace( searchString.begin(), searchString.end(), ' ', '+');
- BROWSER_LOGD("[%s:%d] Search string: %s", __PRETTY_FUNCTION__, __LINE__, searchString.c_str());
- return searchString;
- }
+ if(!url.empty() && url != "about:blank" && url != "about:home")
+ if(boost::regex_match(url, urlRegex))
+ return url;
+ else if(boost::regex_match( std::string("http://") + url, urlRegex) && url.find(".") != std::string::npos)
+ return std::string("http://") + url;
+ else
+ {
+ std::string searchString("http://www.google.com/search?q=");
+ searchString += url;
+ std::replace( searchString.begin(), searchString.end(), ' ', '+');
+ BROWSER_LOGD("[%s:%d] Search string: %s", __PRETTY_FUNCTION__, __LINE__, searchString.c_str());
+ return searchString;
}
- }
- BROWSER_LOGD("%s", __PRETTY_FUNCTION__);
+
return url;
}
setCurrentFavIcon();
}
-
-
-
void SimpleURI::AddAction(sharedAction action)
{
m_actions.push_back(action);
}
}
-}
+}
\ No newline at end of file
///\note Odroid modification - not exists in WebKit API
// ewk_cookie_manager_widget_cookie_directory_set(ewk_context_cookie_manager_get(context), webkit_path.c_str());
-
- ewk_favicon_database_icon_change_callback_add(ewk_context_favicon_database_get(context), __faviconChanged, this);
#endif
setupEwkSettings();
registerCallbacks();
evas_object_smart_callback_add(m_ewkView, "request,certificate,confirm", __requestCertificationConfirm, this);
evas_object_event_callback_add(m_ewkView, EVAS_CALLBACK_MOUSE_DOWN, __setFocusToEwkView, this);
- evas_object_smart_callback_add(m_ewkView, "favicon,changed", onFaviconChaged, this);
+ evas_object_smart_callback_add(m_ewkView, "icon,received", __faviconChanged, this);
evas_object_smart_callback_add(m_ewkView, "editorclient,ime,closed", __IMEClosed, this);
evas_object_smart_callback_add(m_ewkView, "editorclient,ime,opened", __IMEOpened, this);
evas_object_smart_callback_del_full(m_ewkView, "request,certificate,confirm", __requestCertificationConfirm, this);
evas_object_event_callback_del(m_ewkView, EVAS_CALLBACK_MOUSE_DOWN, __setFocusToEwkView);
- evas_object_smart_callback_del_full(m_ewkView, "favicon,changed", onFaviconChaged, this);
+ evas_object_smart_callback_del_full(m_ewkView, "icon,received", __faviconChanged, this);
evas_object_smart_callback_del_full(m_ewkView, "editorclient,ime,closed", __IMEClosed, this);
evas_object_smart_callback_del_full(m_ewkView, "editorclient,ime,opened", __IMEOpened, this);
*static_cast<Evas_Object**>(out) = tab_ewk_view;
}
-
-#if PLATFORM(TIZEN)
-void WebView::__faviconChanged(const char * uri, void * data)
-#else
-void WebView::__faviconChanged(Ewk_Favicon_Database * database, const char * uri, void * data)
-#endif
-{
- WebView * self = reinterpret_cast<WebView *>(data);
- BROWSER_LOGD("[%s:%d] \n\turi:%s", __PRETTY_FUNCTION__, __LINE__, uri);
-
-#if PLATFORM(TIZEN)
- Ewk_Favicon_Database * database = ewk_context_favicon_database_get(ewk_view_context_get(self->m_ewkView));
-#endif
-
- Evas_Object *favicon = ewk_favicon_database_icon_get(database, uri, evas_object_evas_get(self->m_parent));
- BROWSER_LOGD("Favicon: %p",favicon);
- if (favicon) {
- BROWSER_LOGD("[%s:%d] ", __PRETTY_FUNCTION__, __LINE__);
- self->faviconImage = tizen_browser::tools::EflTools::getBrowserImage(favicon);
- evas_object_unref(favicon);
- BROWSER_LOGD("[%s:%d] Favicon loaded, emiting favIconChanged(...)", __PRETTY_FUNCTION__, __LINE__);
- self->favIconChanged(self->faviconImage);
- }
-}
-
-void WebView::onFaviconChaged(void* data, Evas_Object*, void*)
+void WebView::__faviconChanged(void* data, Evas_Object*, void*)
{
- WebView* self = reinterpret_cast<WebView*>(data);
-//#if PLATFORM(TIZEN)
-// Evas_Object * favicon = ewk_view_favicon_get(self->m_ewkView);
-//#else
- Ewk_Favicon_Database * database = ewk_context_favicon_database_get(ewk_view_context_get(self->m_ewkView));
- Evas_Object * favicon = ewk_favicon_database_icon_get(database, ewk_view_url_get(self->m_ewkView), evas_object_evas_get(self->m_parent));
-//#endif
- BROWSER_LOGD("[%s:%d] &favicon: %x ", __PRETTY_FUNCTION__, __LINE__, favicon);
- if (favicon) {
- self->favIconChanged(tizen_browser::tools::EflTools::getBrowserImage(favicon));
- evas_object_unref(favicon);
+ if(data)
+ {
+ WebView * self = static_cast<WebView *>(data);
+ Evas_Object * favicon = ewk_context_icon_database_icon_object_add(ewk_view_context_get(self->m_ewkView), ewk_view_url_get(self->m_ewkView),evas_object_evas_get(self->m_ewkView));
+ if (favicon) {
+ BROWSER_LOGD("[%s:%d] Favicon received", __PRETTY_FUNCTION__, __LINE__);
+ self->faviconImage = tizen_browser::tools::EflTools::getBrowserImage(favicon);
+ evas_object_unref(favicon);
+ self->favIconChanged(self->faviconImage);
+ }
}
}
static void __OnNewWindowRequest(void *data, Evas_Object*, void* out);
// Favicon - from database
-#if defined(USE_EWEBKIT)
-#if PLATFORM(TIZEN)
- static void __faviconChanged(/* Ewk_Favicon_Database * database, */ const char * uri, void * data);
-#else
- static void __faviconChanged(Ewk_Favicon_Database * database, const char * uri, void * data);
-#endif
-#endif
-
- //from webkit ewk_view
- static void onFaviconChaged(void * data, Evas_Object *obj, void *event_info);
+ static void __faviconChanged(void* data, Evas_Object*, void*);
static void __IMEClosed(void * data, Evas_Object *obj, void *event_info);
static void __IMEOpened(void * data, Evas_Object *obj, void *event_info);