#include <FBaseSysLog.h>
#include <FBase_StringConverter.h>
#include <FGrpRectangle.h>
+#include "FUi_AccessibilityManager.h"
#include "FUi_Window.h"
#include "FShell_AppWidgetBuffer.h"
#include "FShell_AppWidgetLayer.h"
namespace Tizen { namespace Shell
{
+enum _AccessStatus
+{
+ _ACCESS_STATUS_DONE,
+ _ACCESS_STATUS_FIRST,
+ _ACCESS_STATUS_LAST,
+};
+
_AppWidgetLayer::_AppWidgetLayer(const Tizen::Base::String& providerId, const FloatDimension& size)
: __isReleased(false)
, __size(size)
Evas* pEvas = ecore_evas_get(__pEcoreEvas.get());
SysTryReturn(NID_SHELL, pEvas, 0, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+ _AccessibilityManager* pAccessManager = _AccessibilityManager::GetInstance();
+ SysTryReturn(NID_SHELL, pEvas, 0, E_SYSTEM, "[E_SYSTEM] A system error occurred.");
+
switch (eventType)
{
case BUFFER_EVENT_ENTER:
evas_event_feed_mouse_out(pEvas, timestamp + 0.01f, null);
break;
+ case BUFFER_EVENT_HIGHLIGHT_PREV:
+ SysLog(NID_SHELL, "[LB_ACCESS] BUFFER_EVENT_HIGHLIGHT_PREV is delivered.");
+ if (pAccessManager->IsFirstElementGainedFocus())
+ {
+ SysLog(NID_SHELL, "[LB_ACCESS] The first element is focused.");
+ SendAccessStatus(_ACCESS_STATUS_FIRST);
+ }
+ else
+ {
+ SysLog(NID_SHELL, "[LB_ACCESS] _ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT is processed.");
+ pAccessManager->ProcessGesture(_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT, FloatPoint(0.0f, 0.0f));
+ SendAccessStatus(_ACCESS_STATUS_DONE);
+ }
+ break;
+
+ case BUFFER_EVENT_HIGHLIGHT_NEXT:
+ SysLog(NID_SHELL, "[LB_ACCESS] BUFFER_EVENT_HIGHLIGHT_NEXT is delivered.");
+ if (pAccessManager->IsLastElementGainedFocus())
+ {
+ SysLog(NID_SHELL, "[LB_ACCESS] The last element is focused.");
+ SendAccessStatus(_ACCESS_STATUS_LAST);
+ }
+ else
+ {
+ SysLog(NID_SHELL, "[LB_ACCESS] _ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT is processed.");
+ pAccessManager->ProcessGesture(_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT, FloatPoint(0.0f, 0.0f));
+ SendAccessStatus(_ACCESS_STATUS_DONE);
+ }
+ break;
+
+ case BUFFER_EVENT_ACTIVATE:
+ SysLog(NID_SHELL, "[LB_ACCESS] BUFFER_EVENT_ACTIVATE is delivered.");
+ SysLog(NID_SHELL, "[LB_ACCESS] _ACCESSIBILITY_GESTURE_TYPE_ONE_FINGER_DOUBLE_TAP is processed.");
+ pAccessManager->ProcessGesture(_ACCESSIBILITY_GESTURE_TYPE_ONE_FINGER_DOUBLE_TAP, FloatPoint(0.0f, 0.0f));
+ SendAccessStatus(_ACCESS_STATUS_DONE);
+ break;
+
+ case BUFFER_EVENT_HIGHLIGHT:
+ SysLog(NID_SHELL, "[LB_ACCESS] BUFFER_EVENT_HIGHLIGHT is delivered.");
+ break;
+
+ case BUFFER_EVENT_UNHIGHLIGHT:
+ SysLog(NID_SHELL, "[LB_ACCESS] BUFFER_EVENT_UNHIGHLIGHT is delivered.");
+ //pAccessManager->EraseFocusUi();
+ break;
+
default:
break;
}
__pAppWidgetBuffer->UnlockBuffer();
}
+void
+_AppWidgetLayer::SendAccessStatus(int accessStatus)
+{
+ SysTryReturnVoidResult(NID_SHELL, !__providerId.IsEmpty(), E_INVALID_ARG, "[E_INVALID_ARG] The argument is invalid.");
+
+ SysLog(NID_SHELL, "[LB_ACCESS] Send the access status(%d)", accessStatus);
+ _AppWidgetProviderManagerImpl::GetInstance()->SendAccessStatus(__providerId, accessStatus);
+}
+
}} // Tizen::Shell
}
result
+_AppWidgetManagerProxy::SendAccessStatus(const Tizen::Base::String& instanceId, int accessStatus)
+{
+ SysTryReturnResult(NID_SHELL, __pIpcClient != null, E_SYSTEM, "__pIpcClient instance must not be null.");
+ SysLog(NID_SHELL, "");
+
+ std::auto_ptr<IPC::Message> pMsg (new (std::nothrow) AppWidgetManager_SendAccessStatus(instanceId, accessStatus));
+ result r = __pIpcClient->SendRequest(*pMsg.get());
+ SysTryReturnResult(NID_SHELL, !IsFailed(r), r, "SendRequest failed.");
+
+ return E_SUCCESS;
+}
+
+result
_AppWidgetManagerProxy::OnTouchEventReceived(const Tizen::Base::String& instanceId, int eventType, double timeStamp, double x, double y )
{
return _AppWidgetProviderManagerImpl::GetInstance()->ForwardTouchEvent(instanceId, eventType, timeStamp, x, y);