void ContextMenuControllerEfl::HideSelectionHandle() {
SelectionControllerEfl* controller = webview_->GetSelectionController();
if (controller)
- controller->HideHandle();
+ controller->HideHandles();
}
void ContextMenuControllerEfl::ShowSelectionHandleAndContextMenu() {
InitializeContent();
selection_controller_.reset(new content::SelectionControllerEfl(this, *web_contents_.get()));
- evas_event_handler_ = new tizen_webview::WebViewEvasEventHandler(public_webview_);
+ evas_event_handler_ = new tizen_webview::WebViewEvasEventHandler(this);
scroll_detector_.reset(new ScrollDetector(this));
popupMenuItems_ = 0;
}
+void EWebView::ResetContextMenuController() {
+ return context_menu_.reset();
+}
+
void EWebView::SetFocus(Eina_Bool focus)
{
if (HasFocus() != focus)
LOG(INFO) << "DispatchPostponedGestureEvent :: EWK_HIT_TEST_RESULT_CONTEXT_EDITABLE";
selection_controller_->SetSelectionStatus(true);
if (selection_controller_->GetSelectionEditable()) {
- selection_controller_->HideHandle();
+ selection_controller_->HideHandles();
selection_controller_->SetCaretSelectionStatus(true);
} else
selection_controller_->SetSelectionEditable(true);
gfx::Point GetContextMenuPosition() const;
+ content::ContextMenuControllerEfl* GetContextMenuController() {
+ return context_menu_.get();
+ }
+ void ResetContextMenuController();
+
/// ---- Event handling
bool HandleShow();
bool HandleHide();
EWebView(tizen_webview::WebView* owner, tizen_webview::WebContext*, Evas_Object* smart_object);
~EWebView();
friend class tizen_webview::WebView;
- friend class tizen_webview::WebViewEvasEventHandler;
};
namespace tizen_webview {
return static_cast<Ewk_View_Smart_Data*>(evas_object_smart_data_get(evas_object));
}
-Ewk_View_Smart_Data* GetEwkViewSmartDataFromWebView(tizen_webview::WebView* wv) {
- assert(wv);
- return GetEwkViewSmartDataFromEvasObject(wv->AsEvasObject());
-}
-
WebView* GetWebViewFromSmartData(const Ewk_View_Smart_Data* smartData)
{
if (smartData && smartData->priv) {
// type conversion utility
bool IsWebViewObject(const Evas_Object* evas_object);
Ewk_View_Smart_Data* GetEwkViewSmartDataFromEvasObject(const Evas_Object* evas_object);
-Ewk_View_Smart_Data* GetEwkViewSmartDataFromWebView(tizen_webview::WebView* wv);
tizen_webview::WebView* GetWebViewFromSmartData(const Ewk_View_Smart_Data* smartData);
tizen_webview::WebView* GetWebViewFromEvasObject(const Evas_Object* eo);
// found in the LICENSE file.
#include "webview_delegate_ewk.h"
+
#include <cassert>
+#include "eweb_view.h"
#include "public/ewk_view.h"
#include "private/ewk_view_private.h"
return result;
}
-bool WebViewDelegateEwk::RequestHandleEvent_FocusIn(WebView* wv) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+bool WebViewDelegateEwk::RequestHandleEvent_FocusIn(EWebView* wv) {
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->focus_in) {
// XXX: is it what we want, or do we want to return false if api->focus_in
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_FocusOut(WebView* wv) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+bool WebViewDelegateEwk::RequestHandleEvent_FocusOut(EWebView* wv) {
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->focus_out) {
// XXX: is it what we want, or do we want to return false if api->focus_out
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_MouseUp(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_MouseUp(EWebView* wv,
const Evas_Event_Mouse_Up* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->mouse_up) {
// XXX: is it what we want, or do we want to return false if api->mouse_up
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_MouseDown(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_MouseDown(EWebView* wv,
const Evas_Event_Mouse_Down* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->mouse_down) {
// XXX: is it what we want, or do we want to return false if api->mouse_down
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_MouseMove(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_MouseMove(EWebView* wv,
const Evas_Event_Mouse_Move* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->mouse_move) {
// XXX: is it what we want, or do we want to return false if api->mouse_move
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_MouseWheel(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_MouseWheel(EWebView* wv,
const Evas_Event_Mouse_Wheel* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->mouse_wheel) {
// XXX: is it what we want, or do we want to return false if api->mouse_wheel
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_KeyUp(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_KeyUp(EWebView* wv,
const Evas_Event_Key_Up* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->key_up) {
// XXX: is it what we want, or do we want to return false if api->key_up
// returns false?
return false;
}
-bool WebViewDelegateEwk::RequestHandleEvent_KeyDown(WebView* wv,
+bool WebViewDelegateEwk::RequestHandleEvent_KeyDown(EWebView* wv,
const Evas_Event_Key_Down* event_info) {
- Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromWebView(wv);
+ Ewk_View_Smart_Data* sd = GetEwkViewSmartDataFromEvasObject(wv->evas_object());
if (sd && sd->api && sd->api->key_down) {
// XXX: is it what we want, or do we want to return false if api->key_down
// returns false?
Eina_Rectangle GetLastUsedViewPortArea(Evas_Object* evas_object);
// Event handlers
- bool RequestHandleEvent_FocusIn(WebView* wv);
- bool RequestHandleEvent_FocusOut(WebView* wv);
- bool RequestHandleEvent_MouseUp(WebView* wv, const Evas_Event_Mouse_Up* event_info);
- bool RequestHandleEvent_MouseDown(WebView* wv, const Evas_Event_Mouse_Down* event_info);
- bool RequestHandleEvent_MouseMove(WebView* wv, const Evas_Event_Mouse_Move* event_info);
- bool RequestHandleEvent_MouseWheel(WebView* wv, const Evas_Event_Mouse_Wheel* event_info);
- bool RequestHandleEvent_KeyUp(WebView* wv, const Evas_Event_Key_Up* event_info);
- bool RequestHandleEvent_KeyDown(WebView* wv, const Evas_Event_Key_Down* event_info);
+ bool RequestHandleEvent_FocusIn(EWebView* wv);
+ bool RequestHandleEvent_FocusOut(EWebView* wv);
+ bool RequestHandleEvent_MouseUp(EWebView* wv, const Evas_Event_Mouse_Up* event_info);
+ bool RequestHandleEvent_MouseDown(EWebView* wv, const Evas_Event_Mouse_Down* event_info);
+ bool RequestHandleEvent_MouseMove(EWebView* wv, const Evas_Event_Mouse_Move* event_info);
+ bool RequestHandleEvent_MouseWheel(EWebView* wv, const Evas_Event_Mouse_Wheel* event_info);
+ bool RequestHandleEvent_KeyUp(EWebView* wv, const Evas_Event_Key_Up* event_info);
+ bool RequestHandleEvent_KeyDown(EWebView* wv, const Evas_Event_Key_Down* event_info);
private:
WebViewDelegateEwk() {}
DISALLOW_COPY_AND_ASSIGN(WebViewDelegateEwk);
ctx);
}
-void SelectionControllerEfl::HideHandle() {
+void SelectionControllerEfl::HideHandles() {
SetCaretSelectionStatus(false);
Clear();
}
void SelectionControllerEfl::HideHandleAndContextMenu() {
parent_view_->CancelContextMenu(0);
- HideHandle();
+ HideHandles();
}
bool SelectionControllerEfl::IsAnyHandleVisible() const {
void ClearSelection();
bool ClearSelectionViaEWebView();
EWebView* GetParentView() { return parent_view_; }
- void HideHandle();
+ void HideHandles();
void HideHandleAndContextMenu();
bool IsAnyHandleVisible() const;
#include "private/ewk_history_private.h"
#include <tizen_webview/public/tw_webview_delegate.h>
-namespace {
-
-}
+using content::SelectionControllerEfl;
namespace tizen_webview {
}
content::SelectionControllerEfl* WebView::GetSelectionController() {
- return impl_->selection_controller_.get();
+ return impl_->GetSelectionController();
}
content::ContextMenuControllerEfl* WebView::GetContextMenuController() {
- return impl_->context_menu_.get();
+ return impl_->GetContextMenuController();
}
void WebView::ResetContextMenuController() {
- return impl_->context_menu_.reset();
+ return impl_->ResetContextMenuController();
}
void WebView::HideSelectionHandlers() {
-#if defined(OS_TIZEN)
- if (impl_->selection_controller_.get())
- impl_->selection_controller_->HideHandle();
-#endif
+ if (SelectionControllerEfl* selection_controller = GetSelectionController())
+ selection_controller->HideHandles();
}
_Ewk_Frame* WebView::GetMainFrame() {
#include <Evas.h>
#include <eina_rectangle.h>
+class EWebView;
+
namespace tizen_webview {
class WebView;
// ---- Custom Event handlers
// Give opportunity for client to process event.
// [Note] return true if handled, false otherwise.
- virtual bool RequestHandleEvent_FocusIn(WebView* wv) { return false; }
- virtual bool RequestHandleEvent_FocusOut(WebView* wv) { return false; }
+ virtual bool RequestHandleEvent_FocusIn(EWebView* wv) { return false; }
+ virtual bool RequestHandleEvent_FocusOut(EWebView* wv) { return false; }
virtual bool RequestHandleEvent_MouseUp(
- WebView* wv, const Evas_Event_Mouse_Up* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Mouse_Up* event_info) { return false; }
virtual bool RequestHandleEvent_MouseDown(
- WebView* wv, const Evas_Event_Mouse_Down* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Mouse_Down* event_info) { return false; }
virtual bool RequestHandleEvent_MouseMove(
- WebView* wv, const Evas_Event_Mouse_Move* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Mouse_Move* event_info) { return false; }
virtual bool RequestHandleEvent_MouseWheel(
- WebView* wv, const Evas_Event_Mouse_Wheel* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Mouse_Wheel* event_info) { return false; }
virtual bool RequestHandleEvent_KeyUp(
- WebView* wv, const Evas_Event_Key_Up* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Key_Up* event_info) { return false; }
virtual bool RequestHandleEvent_KeyDown(
- WebView* wv, const Evas_Event_Key_Down* event_info) { return false; }
+ EWebView* wv, const Evas_Event_Key_Down* event_info) { return false; }
};
} // namespace tizen_webview
#include "eweb_view.h"
+using content::SelectionControllerEfl;
+
namespace {
inline bool isHardwareBackKey(const Evas_Event_Key_Down *event) {
#ifdef OS_TIZEN
}
namespace tizen_webview {
-WebViewEvasEventHandler::WebViewEvasEventHandler(WebView* wv)
+WebViewEvasEventHandler::WebViewEvasEventHandler(EWebView* wv)
: webview_ (wv) {
}
if (webview_->GetContextMenuController()) {
DVLOG(1) << "Hiding context menu due to back key press";
webview_->ResetContextMenuController();
- webview_->HideSelectionHandlers();
+ if (SelectionControllerEfl* selection_controller = webview_->GetSelectionController())
+ selection_controller->HideHandles();
handled = true;
}
if (webview_->GetSelectionController()->IsAnyHandleVisible()) {
DVLOG(1) << "Clearing text selection due to back key press";
- webview_->ClearSelection();
+ webview_->GetSelectionController()->ClearSelection();
handled = true;
}
}
#include "content/browser/renderer_host/evas_event_handler.h"
+class EWebView;
+
namespace tizen_webview {
-class WebView;
class WebViewEvasEventHandler: public content::EvasEventHandler {
public:
- explicit WebViewEvasEventHandler(WebView*);
+ explicit WebViewEvasEventHandler(EWebView*);
// ---- event handlers
bool HandleEvent_FocusIn() override;
bool HandleEvent_MouseWheel(const Evas_Event_Mouse_Wheel*) override;
private:
- WebView* webview_;
+ EWebView* webview_;
};
} // namespace tizen_webview