}
_AccessibilityElement* pElement = null;
__elementList.GetAt(index, pElement);
- return pElement;
+ if (pElement->IsActivated())
+ {
+ return pElement;
+ }
+ else
+ {
+ return false;
+ }
}
_AccessibilityElement*
r = __elementList.GetAt(i, pElement);
if (r == E_SUCCESS && pElement->GetName() == name)
{
- return pElement;
+ if (pElement->IsActivated())
+ {
+ return pElement;
+ }
+ else
+ {
+ return false;
+ }
}
}
if (__childContainerList.GetCount() > 0)
_AccessibilityElement* pElement = pContainer->GetChildElement(name);
if (pElement != null)
{
+ if (pElement->IsActivated())
+ {
+ return pElement;
+ }
+ else
+ {
+ return false;
+ }
return pElement;
}
}
r = __elementList.GetAt(i, pElement);
SysTryReturn(NID_UI, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System Error.");
SysTryReturn(NID_UI, pElement, , E_SYSTEM, "[E_SYSTEM] System Error.");
- if(!list.Contains(pElement))
+ if(!list.Contains(pElement) && pElement->IsActivated())
{
list.Add(pElement);
}
IListT <_AccessibilityElement*>*
_AccessibilityContainer::GetElementsN(void) const
{
- if (__elementList.GetCount() > 0)
- {
- return __elementList.GetItemsN(0, __elementList.GetCount());
- }
- else
- {
- return null;
- }
+ LinkedListT<_AccessibilityElement*>* pList = new (std::nothrow) LinkedListT<_AccessibilityElement*>;
+ GetElements(*pList);
+ return pList;
}
_AccessibilityElement*
_AccessibilityContainerImpl::RemoveElement(const _AccessibilityElementImpl& element)
{
SysTryReturn(NID_UI, ControlCoreExists(__coreHandle), E_SYSTEM, E_SYSTEM,"[E_SYSTEM] A core of control is invalid.");
- result r = __pCore->RemoveElement(element.GetCore());
AccessibilityElement* pElement = const_cast<AccessibilityElement*>(&(element.GetPublic()));
- __elementList.Remove(pElement);
- delete pElement;
+ result r = __elementList.Remove(pElement);
+ if (r == E_SUCCESS)
+ {
+ const_cast<_AccessibilityElementImpl&>(element).GetCore().Activate(false);
+ delete pElement;
+ }
return r;
}
_AccessibilityContainerImpl::RemoveAllElement(void)
{
SysTryReturn(NID_UI, ControlCoreExists(__coreHandle), E_SYSTEM, E_SYSTEM,"[E_SYSTEM] A core of control is invalid.");
- result r = __pCore->RemoveAllElement();
+ result r = E_SUCCESS;//__pCore->RemoveAllElement();
if (r == E_SUCCESS)
{
int count = __elementList.GetCount();
{
if (__elementList.GetAt(i, pElement) == E_SUCCESS)
{
+ _AccessibilityElementImpl* pImpl = _AccessibilityElementImpl::GetInstance(*pElement);
+ pImpl->GetCore().Activate(false);
delete pElement;
pElement = null;
}
// See the License for the specific language governing permissions and
// limitations under the License.
//
-
+#include <Ecore_X.h>
#include <FAppUiApp.h>
#include <FAppIAppFrame.h>
#include <FBaseSysLog.h>
#include "FUi_AccessibilityManager.h"
#include "FUi_ControlManager.h"
+#include "FUiAnim_RootVisualElement.h"
+#include "FUiAnim_AnimationManager.h"
+#include "FUiAnim_DisplayManager.h"
+#include "FUiAnim_EflLayer.h"
+#include "FUi_Window.h"
+
using namespace Tizen::App;
using namespace Tizen::Graphics;
using namespace Tizen::Ui::Controls;
{
void ConvertTouchPosition(Tizen::Ui::_AccessibilityGestureType& type, float &x, float&y)
{
- Frame* pFrame = UiApp::GetInstance()->GetAppFrame()->GetFrame();
- Form* pForm= pFrame->GetCurrentForm();
- FloatDimension screen = Tizen::Ui::_ControlManager::GetInstance()->GetScreenSizeF();
- float _x = x;
- float _y = y;
- switch(pForm->GetOrientationStatus())
+ Tizen::Ui::_Window* pWindow = Tizen::Ui::_ControlManager::GetInstance()->GetCurrentFrame();
+ Tizen::Ui::Animations::_RootVisualElement* pRootVE = pWindow->GetRootVisualElement();
+ Tizen::Ui::Animations::_EflLayer* pLayer = static_cast<Tizen::Ui::Animations::_EflLayer*>(pRootVE->GetNativeLayer());
+
+ Ecore_Evas* pEcoreEvas = pLayer->GetEcoreEvas();
+ Ecore_X_Window win = (Ecore_X_Window)ecore_evas_window_get(pEcoreEvas);
+
+ int rootW = 0;
+ int rootH = 0;
+ ecore_x_window_size_get(ecore_x_window_root_get(win), &rootW, &rootH);
+
+ int rotation = ecore_evas_rotation_get(pEcoreEvas);
+ switch (rotation)
{
- case Tizen::Ui::ORIENTATION_STATUS_PORTRAIT:
- break;
- case Tizen::Ui::ORIENTATION_STATUS_LANDSCAPE:
- switch(type)
- {
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
- break;
- default:
- break;
- }
- x = _y;
- y = screen.width - _x;
- break;
- case Tizen::Ui::ORIENTATION_STATUS_PORTRAIT_REVERSE:
- switch(type)
- {
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
- break;
- default:
- break;
- }
- x = screen.width - _x;
- y = screen.height - _y;
- break;
- case Tizen::Ui::ORIENTATION_STATUS_LANDSCAPE_REVERSE:
- switch(type)
- {
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
- break;
- case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
- type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
- break;
- default:
- break;
- }
- x = screen.height - _y;
- y= _x;
- break;
- default:
- break;
+ case 270:
+ {
+ float _x = x;
+ x = y;
+ y = rootH - (int)_x;
+ }
+
+ break;
+ switch(type)
+ {
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
+ break;
+ default:
+ break;
+ }
+ case 180:
+ {
+ float _x = x;
+ float _y = y;
+ x = rootW - (int)_x;
+ y = rootH - (int)_y;
+ }
+
+ switch(type)
+ {
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
+ break;
+ default:
+ break;
+ }
+ break;
+ case 90:
+ {
+ float _x = x;
+ x = rootW - (int)y;
+ y = _x;
+ }
+ switch(type)
+ {
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_LEFT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_UP;
+ break;
+ case Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_RIGHT:
+ type = Tizen::Ui::_ACCESSIBILITY_GESTURE_TYPE_FLICK_DOWN;
+ break;
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
}
}
}
bool
_AccessibilityGesture::ProcessGesture(_AccessibilityGestureType type, float x, float y)
{
- ConvertTouchPosition(type, x,y);
- _AccessibilityManager::GetInstance()->ProcessGesture(type,Tizen::Graphics::FloatPoint(CoordinateSystem::ConvertToLogicalX(x),CoordinateSystem::ConvertToLogicalY(y)), null);
+ x = CoordinateSystem::ConvertToLogicalX(x);
+ y = CoordinateSystem::ConvertToLogicalY(y);
+ //ConvertTouchPosition(type, x,y);
+ _AccessibilityManager::GetInstance()->ProcessGesture(type,Tizen::Graphics::FloatPoint(x, y), null);
return true;
}
}} //Tizen::Ui
r = __pReadingVe->Construct();
SysTryCatch(NID_UI, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error");
__pReadingVe->SetName("Accessibility reading popup");
+ __pReadingVe->SetImplicitAnimationEnabled(false);
_VisualElementImpl::GetInstance(*__pReadingVe)->SetZOrderGroup(accesibilityVisualElementLevel);
pRootVe->AttachChild(*__pReadingVe);
}
r = __pReadingVe->Construct();
SysTryCatch(NID_UI, r == E_SUCCESS, , E_SYSTEM, "[E_SYSTEM] System error");
__pReadingVe->SetName("Accessibility reading popup");
+ __pReadingVe->SetImplicitAnimationEnabled(false);
_VisualElementImpl::GetInstance(*__pReadingVe)->SetZOrderGroup(accesibilityVisualElementLevel);
pRootVe->AttachChild(*__pReadingVe);
}
_AccessibilityTtsPlayer::_AccessibilityTtsPlayer(_AccessibilityManager& manager)
: __initialized(false)
- , __activated(false)
+ , __activated(false)
, __ttsHandle(0)
, __localeIdx(-1)
, __speed(TTS_SPEED_AUTO)
_AccessibilityTtsPlayer::~_AccessibilityTtsPlayer(void)
{
- tts_state_e ttsState = TTS_STATE_READY;
-
- int ttsError = tts_get_state(__ttsHandle, &ttsState);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to get the current state.", GetEngineErrorMessage(ttsError));
-
- if (ttsState == TTS_STATE_PLAYING || ttsState == TTS_STATE_PAUSED)
- {
- ttsError = tts_stop(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to stop.", GetEngineErrorMessage(ttsError));
- }
-
- if (__activated)
- {
- ttsError = tts_unprepare(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unprepare.", GetEngineErrorMessage(ttsError));
-
- ttsError = tts_unset_utterance_completed_cb(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the utterance completed callback.", GetEngineErrorMessage(ttsError));
-
- ttsError = tts_unset_utterance_started_cb(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the utterance started callback.", GetEngineErrorMessage(ttsError));
-
- ttsError = tts_unset_state_changed_cb(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the state changed callback.", GetEngineErrorMessage(ttsError));
-
- ttsError = tts_unset_error_cb(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the error callback.", GetEngineErrorMessage(ttsError));
-
- ttsError = tts_destroy(__ttsHandle);
- SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to destroy.", GetEngineErrorMessage(ttsError));
- }
-
+ Deactivate();
delete __pCurrentLocale;
if (__pSupportedLocaleList != null)
__pCurrentLocale = pLocale;
__pSupportedLocaleList = pLocaleList;
- return Activate();
+ return r;
}
result
_AccessibilityTtsPlayer::Activate(void)
{
- SysAssertf(__initialized != true,
- "Already calling Initialize() twice or more on a same instance is not allowed for this class.");
-
+ if (__activated)
+ {
+ SysLog(NID_UI, "TTS player was already activated.");
+ return E_SUCCESS;
+ }
+
int ttsError = tts_create(&__ttsHandle);
SysTryReturnResult(NID_UI, ttsError == TTS_ERROR_NONE, E_SYSTEM, "Failed to create.");
ttsError = tts_prepare(__ttsHandle);
SysTryReturnResult(NID_UI, ttsError == TTS_ERROR_NONE, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] The memory is insufficient.");
- __activated = true;
+ __activated = true;
return E_SUCCESS;
}
result
_AccessibilityTtsPlayer::Deactivate(void)
{
- StopReading();
+ __initialized = false;
+ tts_state_e ttsState = TTS_STATE_READY;
+
+ int ttsError = tts_get_state(__ttsHandle, &ttsState);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to get the current state.", GetEngineErrorMessage(ttsError));
+
+ if (ttsState == TTS_STATE_PLAYING || ttsState == TTS_STATE_PAUSED)
+ {
+ ttsError = tts_stop(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to stop.", GetEngineErrorMessage(ttsError));
+ }
+ if (__activated)
+ {
+ ttsError = tts_unprepare(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unprepare.", GetEngineErrorMessage(ttsError));
+
+ ttsError = tts_unset_utterance_completed_cb(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the utterance completed callback.", GetEngineErrorMessage(ttsError));
+
+ ttsError = tts_unset_utterance_started_cb(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the utterance started callback.", GetEngineErrorMessage(ttsError));
+
+ ttsError = tts_unset_state_changed_cb(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the state changed callback.", GetEngineErrorMessage(ttsError));
+
+ ttsError = tts_unset_error_cb(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to unset the error callback.", GetEngineErrorMessage(ttsError));
+
+ ttsError = tts_destroy(__ttsHandle);
+ SysTryLog(NID_UI, ttsError == TTS_ERROR_NONE, "[%s] Failed to destroy.", GetEngineErrorMessage(ttsError));
+
+ __ttsHandle = 0;
+ }
+ __activated = false;
return E_SUCCESS;
}
void