Evas_Object*
_Web::GetWebNativeNode(void)
{
- SysTryReturn(NID_WEB_CTRL, __pEflWebkit, null, E_INVALID_STATE, "[%s] Native node is in an invalid state.", GetErrorMessage(E_INVALID_STATE));
+ SysTryReturn(NID_WEB_CTRL, __pEflWebkit.get(), null, E_INVALID_STATE, "[%s] Native node is in an invalid state.", GetErrorMessage(E_INVALID_STATE));
return __pEflWebkit->GetWebEvasObject();
}
result
_Web::OnAttaching(const _Control* pParent)
{
- if (__pEflWebkit)
+ if (__pEflWebkit.get())
{
evas_object_show(__pEflWebkit->GetWebEvasObject());
evas_object_focus_set(__pEflWebkit->GetWebEvasObject(), EINA_TRUE);
_ICoordinateSystemTransformer* pXformer = _CoordinateSystem::GetInstance()->GetTransformer();
SysTryReturnResult(NID_WEB_CTRL, pXformer, E_SYSTEM, "[%s] A system error has been occurred. Failed to get coordinate transformer.", GetErrorMessage(E_SYSTEM));
- if (__pEflWebkit)
+ if (__pEflWebkit.get())
{
evas_object_move(__pEflWebkit->GetWebEvasObject(), pXformer->TransformHorizontal(absoluteBounds.x - webBounds.x + bounds.x), pXformer->TransformVertical(absoluteBounds.y - webBounds.y + bounds.y));
evas_object_resize(__pEflWebkit->GetWebEvasObject(), pXformer->TransformHorizontal(bounds.width), pXformer->TransformVertical(bounds.height));
bool
_Web::OnTouchPressed(const _Control& source, const _TouchInfo& touchInfo)
{
- SendTouchEventForJavaScript(touchInfo);
+ if (__pEflWebkit.get())
+ {
+ SendTouchEventForJavaScript(touchInfo);
- __pGestureHandler->OnTouchPressed(source, touchInfo);
+ __pGestureHandler->OnTouchPressed(source, touchInfo);
+ }
return true;
}
bool
_Web::OnTouchMoved(const _Control& source, const _TouchInfo& touchInfo)
{
- SendTouchEventForJavaScript(touchInfo);
+ if (__pEflWebkit.get())
+ {
+ SendTouchEventForJavaScript(touchInfo);
- __pGestureHandler->OnTouchMoved(source, touchInfo);
+ __pGestureHandler->OnTouchMoved(source, touchInfo);
+ }
return true;
}
bool
_Web::OnTouchReleased(const _Control& source, const _TouchInfo& touchInfo)
{
- SendTouchEventForJavaScript(touchInfo);
+ if (__pEflWebkit.get())
+ {
+ SendTouchEventForJavaScript(touchInfo);
- __pGestureHandler->OnTouchReleased(source, touchInfo);
+ __pGestureHandler->OnTouchReleased(source, touchInfo);
- _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(GetWebNativeNode(), WEB_CTRL));
- SysAssertf(pWebImpl, "Failed to get Impl");
+ _WebImpl* pWebImpl = reinterpret_cast<_WebImpl*>(evas_object_data_get(GetWebNativeNode(), WEB_CTRL));
- if (pWebImpl->GetLoadingListener() && pWebImpl->GetTextFromBlock().GetLength() > 0)
- {
- pWebImpl->FireWebPageBlockSelectedEvent();
+ if (pWebImpl && pWebImpl->GetLoadingListener() && pWebImpl->GetTextFromBlock().GetLength() > 0)
+ {
+ pWebImpl->FireWebPageBlockSelectedEvent();
+ }
}
SetFocused();
bool
_Web::OnTouchCanceled(const _Control& source, const _TouchInfo& touchInfo)
{
- SendTouchEventForJavaScript(touchInfo);
+ if (__pEflWebkit.get())
+ {
+ SendTouchEventForJavaScript(touchInfo);
- __pGestureHandler->OnTouchCanceled(source, touchInfo);
+ __pGestureHandler->OnTouchCanceled(source, touchInfo);
+ }
return true;
}
bool
_Web::OnFlickGestureDetected(_TouchFlickGestureDetector& gesture)
{
- if (__pWebSettingImpl->IsScrollEnabled())
+ if (__pEflWebkit.get() && __pWebSettingImpl->IsScrollEnabled())
{
ChangeGesture(WEB_GESTURE_TYPE_FLICK);
static_cast< _FlickGestureState* >(__pGestureHandler)->OnFlickGestureDetected(gesture);
bool
_Web::OnLongPressGestureDetected(_TouchLongPressGestureDetector& gesture)
{
- _TapGestureState* pTapGestureHandler = dynamic_cast< _TapGestureState* >(__pGestureHandler);
- if (pTapGestureHandler)
+ if (__pEflWebkit.get())
{
- pTapGestureHandler->OnLongPressGestureDetected(gesture);
+ _TapGestureState* pTapGestureHandler = dynamic_cast< _TapGestureState* >(__pGestureHandler);
+ if (pTapGestureHandler)
+ {
+ pTapGestureHandler->OnLongPressGestureDetected(gesture);
+ }
}
return true;
bool
_Web::OnTapGestureDetected(_TouchTapGestureDetector& gesture)
{
- ChangeGesture(WEB_GESTURE_TYPE_DOUBLE_TAP);
+ if (__pEflWebkit.get())
+ {
+ ChangeGesture(WEB_GESTURE_TYPE_DOUBLE_TAP);
+ }
return true;
}