From 1b393980d2446ca0402e6ab42f4ba424f97e3470 Mon Sep 17 00:00:00 2001 From: "keonpyo.kong" Date: Wed, 26 Jun 2013 19:37:29 +0900 Subject: [PATCH] FocusTraverse with Arrow key Change-Id: I2e36500de6b400cf256df402fb5f6b797e30519a Signed-off-by: keonpyo.kong apply code review Change-Id: I2299120c2d3fc560e06fb95adc1c6dea107705c1 Signed-off-by: keonpyo.kong --- src/ui/FUi_Control.cpp | 8 +++++-- src/ui/FUi_FocusManagerImpl.cpp | 31 +++++++++++++++++++++------ src/ui/FUi_UiEventManager.cpp | 10 ++++----- src/ui/inc/FUi_ResourceFocusUiConfig.h | 1 + src/ui/resource/FUi_ResourceFocusUiConfig.cpp | 3 ++- 5 files changed, 38 insertions(+), 15 deletions(-) diff --git a/src/ui/FUi_Control.cpp b/src/ui/FUi_Control.cpp index 0830a1f..e9dbcc7 100644 --- a/src/ui/FUi_Control.cpp +++ b/src/ui/FUi_Control.cpp @@ -5166,10 +5166,14 @@ _Control::OnDrawFocus(void) pCanvas->SetBackgroundColor(0x55555555); pCanvas->Clear(); } + Color contentHighlightedColor; + GET_COLOR_CONFIG(FOCUSUI::CONTENT_BG_HIGHLIGHTED, contentHighlightedColor); Bitmap* pBitmap = null; - result r = GET_BITMAP_CONFIG_N(FOCUSUI::FOCUS, BITMAP_PIXEL_FORMAT_ARGB8888, pBitmap); + Bitmap* pTempBitmap = null; + result r = GET_BITMAP_CONFIG_N(FOCUSUI::FOCUS, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap); + pBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), contentHighlightedColor); - if (r == E_SUCCESS) + if (pBitmap) { if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pBitmap)) { diff --git a/src/ui/FUi_FocusManagerImpl.cpp b/src/ui/FUi_FocusManagerImpl.cpp index 922ff9f..0a1f670 100644 --- a/src/ui/FUi_FocusManagerImpl.cpp +++ b/src/ui/FUi_FocusManagerImpl.cpp @@ -292,13 +292,14 @@ _FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusD } } - if (focusDirection == FOCUS_DIRECTION_DOWNWARD) + if (focusDirection == FOCUS_DIRECTION_DOWNWARD) { _Control* pFocusControl = pControl->GetNextFocus(); if (pFocusControl) { pFocusControl->SetFocused(); pFocusControl->DrawFocus(); + pTop->SetFocusTraversalControl(pFocusControl); return; } } @@ -309,6 +310,7 @@ _FocusManagerImpl::StartFocusTraversal(_Control* pControl, FocusDirection focusD { pFocusControl->SetFocused(); pFocusControl->DrawFocus(); + pTop->SetFocusTraversalControl(pFocusControl); return; } } @@ -381,19 +383,34 @@ bool _FocusManagerImpl::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo) { _KeyCode keyCode = keyInfo.GetKeyCode(); - if(keyCode == _KEY_TAB) + FocusDirection focusDirection = FOCUS_DIRECTION_DOWNWARD; + _Control* pControl = const_cast<_Control*> (&source); + switch(keyCode) { - FocusDirection focusDirection = FOCUS_DIRECTION_DOWNWARD; - if (keyInfo.GetKeyModifier() & _KEY_MODIFIER_SHIFT) + case _KEY_TAB : + { + if (keyInfo.GetKeyModifier() & _KEY_MODIFIER_SHIFT) + { + focusDirection = FOCUS_DIRECTION_UPWARD; + } + break; + } + case _KEY_UP : { focusDirection = FOCUS_DIRECTION_UPWARD; + break; + } + case _KEY_DOWN : + { + focusDirection = FOCUS_DIRECTION_DOWNWARD; + break; } - - _Control* pControl = const_cast<_Control*> (&source); - StartFocusTraversal(pControl, focusDirection); } + + StartFocusTraversal(pControl, focusDirection); return false; } + bool _FocusManagerImpl::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo) { diff --git a/src/ui/FUi_UiEventManager.cpp b/src/ui/FUi_UiEventManager.cpp index 87b9ba5..fddb8b5 100644 --- a/src/ui/FUi_UiEventManager.cpp +++ b/src/ui/FUi_UiEventManager.cpp @@ -344,6 +344,11 @@ _UiEventManager::Fire(const _UiEvent& event) SysTryReturn(NID_UI, r == E_SUCCESS, r, r, "[%s] Propagating.", GetErrorMessage(r)); } + if (!isFiltered ) + { + ProcessPostListener(event, isFiltered); + } + return r; } @@ -636,11 +641,6 @@ _UiEventManager::ProcessBubblingEvent(const Tizen::Base::Collection::LinkedListT } r = const_cast<_UiEvent&>(event).ProcessEvent(*pControl, isFiltered); - - if (!isFiltered && (event.GetDestination() == uiObjectHandle)) - { - ProcessPostListener(event, isFiltered); - } } delete pEnumerator; diff --git a/src/ui/inc/FUi_ResourceFocusUiConfig.h b/src/ui/inc/FUi_ResourceFocusUiConfig.h index feac1b6..0e16f1e 100644 --- a/src/ui/inc/FUi_ResourceFocusUiConfig.h +++ b/src/ui/inc/FUi_ResourceFocusUiConfig.h @@ -24,6 +24,7 @@ #include "FUi_ResourceConfigMacro.h" DECLARE_UI_CONFIG(FOCUSUI); + DECLARE_COLOR_CONFIG(CONTENT_BG_HIGHLIGHTED,1); DECLARE_IMAGE_CONFIG(FOCUS, 1); DECLARE_END_UI_CONFIG(FOCUSUI); diff --git a/src/ui/resource/FUi_ResourceFocusUiConfig.cpp b/src/ui/resource/FUi_ResourceFocusUiConfig.cpp index a3adbdd..6042689 100644 --- a/src/ui/resource/FUi_ResourceFocusUiConfig.cpp +++ b/src/ui/resource/FUi_ResourceFocusUiConfig.cpp @@ -19,7 +19,8 @@ START_UI_CONFIG(FOCUSUI); { - ADD_IMAGE_CONFIG(FOCUS,#00_focus.#.png); + ADD_COLOR_CONFIG(CONTENT_BG_HIGHLIGHTED, $W161); + ADD_IMAGE_CONFIG(FOCUS,#00_button_01_focus.#.png); } END_UI_CONFIG(FOCUSUI); -- 2.7.4