Merging master changes to tizen_2.1 branch
authorVinay Dutt Vyas <vinay.vyas@samsung.com>
Tue, 21 May 2013 10:48:51 +0000 (16:18 +0530)
committerAyush <ayush.sriv@samsung.com>
Tue, 21 May 2013 14:06:52 +0000 (19:36 +0530)
Change-Id: Iad0723ca18dfd17663b49182ff17c7d68bde6a22
Signed-off-by: Ayush <ayush.sriv@samsung.com>
19 files changed:
src/ui/controls/FUiCtrl_ColorPicker.cpp
src/ui/controls/FUiCtrl_ColorPickerPresenter.cpp
src/ui/controls/FUiCtrl_ExpandableListImpl.cpp
src/ui/controls/FUiCtrl_ListBaseImpl.cpp
src/ui/controls/FUiCtrl_OptionMenu.cpp
src/ui/controls/FUiCtrl_OptionMenuPresenter.cpp
src/ui/controls/FUiCtrl_Tab.cpp
src/ui/controls/FUiCtrl_TabPresenter.cpp
src/ui/inc/FUiCtrl_ColorPicker.h
src/ui/inc/FUiCtrl_ColorPickerPresenter.h
src/ui/inc/FUiCtrl_OptionMenu.h
src/ui/inc/FUiCtrl_OptionMenuPresenter.h
src/ui/inc/FUiCtrl_Tab.h
src/ui/inc/FUiCtrl_TabPresenter.h
src/ui/inc/FUi_ResourceListConfig.h
src/ui/inc/FUi_ResourceTableViewConfig.h
src/ui/resource/FUi_ResourceConfigParser.cpp
src/ui/resource/FUi_ResourceListConfig.cpp
src/ui/resource/FUi_ResourceTableViewConfig.cpp

index e1f4c21..8fec081 100644 (file)
@@ -54,6 +54,9 @@ _ColorPicker::_ColorPicker(void)
        , __pHueBarElement(null)
        , __pSaturationBarElement(null)
        , __pLuminanceBarElement(null)
+       , __currentFocusedHandler(HUE_HANDLER)
+       , __previousFocusedHandler(HSL_NOT)
+       , __isInFocusMode(false)
 {
 }
 
@@ -290,6 +293,8 @@ _ColorPicker::SetPropertyLuminance(const Variant& luminance)
 bool
 _ColorPicker::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
 {
+       __pColorPickerPresenter->ClearFocus(__currentFocusedHandler);
+
        return __pColorPickerPresenter->OnTouchPressed(source, touchinfo);
 }
 
@@ -585,4 +590,100 @@ _ColorPicker::OnAccessibilityValueDecreased(const _AccessibilityContainer& contr
        return true;
 }
 
+bool
+_ColorPicker::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+       _KeyCode keyCode = keyInfo.GetKeyCode();
+
+       if (!__isInFocusMode)
+       {
+               return false;
+       }
+
+       switch (keyCode)
+       {
+               case _KEY_RIGHT:
+                       __pColorPickerPresenter->StepHandler(__currentFocusedHandler, true);
+                       break;
+
+               case _KEY_LEFT:
+                       __pColorPickerPresenter->StepHandler(__currentFocusedHandler, false);
+                       break;
+
+               case _KEY_DOWN:
+                       if (__currentFocusedHandler < LUM_HANDLER)
+                       {
+                               __previousFocusedHandler = __currentFocusedHandler;
+                               __currentFocusedHandler = static_cast<_ColorPickerComponentType>(static_cast<int>(__currentFocusedHandler) + 1);
+                               __pColorPickerPresenter->DrawFocus(__currentFocusedHandler, __previousFocusedHandler);
+                       }
+                       break;
+
+               case _KEY_UP:
+                       if (__currentFocusedHandler > HUE_HANDLER)
+                       {
+                               __previousFocusedHandler = __currentFocusedHandler;
+                               __currentFocusedHandler = static_cast<_ColorPickerComponentType>(static_cast<int>(__currentFocusedHandler) - 1);
+                               __pColorPickerPresenter->DrawFocus(__currentFocusedHandler, __previousFocusedHandler);
+                       }
+                       break;
+
+               default:
+                       return false;
+       }
+
+       return true;
+}
+
+bool
+_ColorPicker::OnFocusLost(const _Control& source)
+{
+       result r = E_SUCCESS;
+       r = __pColorPickerPresenter->ClearFocus(__currentFocusedHandler);
+       __previousFocusedHandler = HSL_NOT;
+       __currentFocusedHandler = HUE_HANDLER;
+
+       if (r != E_SUCCESS)
+       {
+               SysLogException(NID_UI_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+       r =  __pColorPickerPresenter->Draw();
+
+       if (r != E_SUCCESS)
+       {
+               SysLogException(NID_UI_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+       _Control::OnFocusLost(source);
+
+       return true;
+}
+
+void
+_ColorPicker::OnDrawFocus(void)
+{
+       __pColorPickerPresenter->DrawFocus(__currentFocusedHandler, __previousFocusedHandler);
+       __isInFocusMode = true;
+
+       return;
+}
+
+void
+_ColorPicker::OnFocusModeStateChanged(void)
+{
+       result r = E_SUCCESS;
+
+       r = __pColorPickerPresenter->ClearFocus(__currentFocusedHandler);
+       __previousFocusedHandler = HSL_NOT;
+       __currentFocusedHandler = HUE_HANDLER;
+       __isInFocusMode = false;
+
+       if (r != E_SUCCESS)
+       {
+               SysLogException(NID_UI_CTRL, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+       Invalidate();
+
+       return;
+}
+
 }}} // Tizen::Ui::Controls
index 8004480..87a48b9 100644 (file)
@@ -27,6 +27,7 @@
 #include "FUiAnim_VisualElement.h"
 #include "FUiCtrl_ColorPickerPresenter.h"
 #include "FUiCtrl_ColorPickerModel.h"
+#include "FUiCtrl_ColorPicker.h"
 #include "FUi_AccessibilityElement.h"
 #include "FUi_UiTouchEvent.h"
 #include "FUi_ResourceManager.h"
@@ -94,6 +95,7 @@ _ColorPickerPresenter::_ColorPickerPresenter(_ColorPicker& colorPicker)
        , __pLandscapeCustomBitmap(null)
        , __pLandscapeLuminanceSliderBgBitmap(null)
        , __pLandscapeSaturationSliderBgBitmap(null)
+       , __pFocusBitmap(null)
 {
 }
 
@@ -173,6 +175,9 @@ _ColorPickerPresenter::~_ColorPickerPresenter(void)
 
        delete __pLandscapeSaturationSliderBgBitmap;
        __pLandscapeSaturationSliderBgBitmap = null;
+
+       delete __pFocusBitmap;
+       __pFocusBitmap = null;
 }
 
 _ColorPickerPresenter*
@@ -671,6 +676,9 @@ _ColorPickerPresenter::LoadResource(void)
        r = GET_BITMAP_CONFIG_N(COLORPICKER::RIGHT_ARROW_BUTTON_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pRightArrowDisabledBitmap);
        SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
 
+       r = GET_BITMAP_CONFIG_N(COLORPICKER::HANDLER_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, __pFocusBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
        __pColorNormalReplacementBgBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pBgNormalBitmap, Color::GetColor(COLOR_ID_MAGENTA), buttonBgNormalColor);
        r = GetLastResult();
        SysTryCatch(NID_UI_CTRL, (__pColorNormalReplacementBgBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
@@ -815,6 +823,118 @@ CATCH:
        delete __pRightArrowDisabledBitmap;
        __pRightArrowDisabledBitmap = null;
 
+       delete __pFocusBitmap;
+       __pFocusBitmap = null;
+
+       return r;
+}
+
+void
+_ColorPickerPresenter::StepHandler(_ColorPickerComponentType index, bool increase)
+{
+       if (increase)
+       {
+               SetHandlerPosition(index, __componentBounds[index].x + ARROW_MOVE_STEP);
+       }
+       else
+       {
+               SetHandlerPosition(index, __componentBounds[index].x - ARROW_MOVE_STEP);
+       }
+
+       MoveHandler(index);
+       ChangeColorFromCurrentHandlerPosition(index);
+}
+
+result
+_ColorPickerPresenter::DrawFocus(_ColorPickerComponentType currentFocusedIndex, _ColorPickerComponentType prevFocusIndex)
+{
+       result r = E_SUCCESS;
+
+       if (prevFocusIndex != HSL_NOT)
+       {
+               ClearFocus(prevFocusIndex);
+       }
+
+       switch (currentFocusedIndex)
+       {
+               case HUE_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetHueHandler()->GetCanvasN();
+                       r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[HUE_HANDLER].width, __componentBounds[HUE_HANDLER].height), __pFocusBitmap);
+                       delete pCanvas;
+               }
+               break;
+               case SAT_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetSaturationHandler()->GetCanvasN();
+                       r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[SAT_HANDLER].width, __componentBounds[SAT_HANDLER].height), __pFocusBitmap);
+                       delete pCanvas;
+               }
+               break;
+               case LUM_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetLuminanceHandler()->GetCanvasN();
+                       r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[LUM_HANDLER].width, __componentBounds[LUM_HANDLER].height), __pFocusBitmap);
+                       delete pCanvas;
+               }
+               break;
+               default:
+                       break;
+       }
+
+       return r;
+}
+
+result
+_ColorPickerPresenter::ClearFocus(_ColorPickerComponentType index)
+{
+       result r = E_SUCCESS;
+
+       switch (index)
+       {
+               case HUE_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetHueHandler()->GetCanvasN();
+                        r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       pCanvas->SetBackgroundColor(Color());
+                       pCanvas->Clear();
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[HUE_HANDLER].width, __componentBounds[HUE_HANDLER].height), __pHandlerBitmap);
+                       delete pCanvas;
+               }
+               break;
+               case SAT_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetSaturationHandler()->GetCanvasN();
+                        r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       pCanvas->SetBackgroundColor(Color());
+                       pCanvas->Clear();
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[SAT_HANDLER].width, __componentBounds[SAT_HANDLER].height), __pHandlerBitmap);
+                       delete pCanvas;
+               }
+               break;
+               case LUM_HANDLER:
+               {
+                       Canvas *pCanvas = __pColorPicker->GetLuminanceHandler()->GetCanvasN();
+                        r = GetLastResult();
+                       SysTryReturnResult(NID_UI_CTRL, pCanvas != null, r, "[%s] Propagating.", GetErrorMessage(r));
+                       pCanvas->SetBackgroundColor(Color());
+                       pCanvas->Clear();
+                       r = DrawResourceBitmap(*pCanvas, FloatRectangle(0, 0, __componentBounds[LUM_HANDLER].width, __componentBounds[LUM_HANDLER].height), __pHandlerBitmap);
+                       delete pCanvas;
+               }
+               break;
+               default:
+                       break;
+       }
+
        return r;
 }
 
index 5ec55c4..8eb35d6 100644 (file)
@@ -601,9 +601,9 @@ _ExpandableListImpl::LoadArrowBitmap(void)
        Color disabledColor;
        Color pressedColor;
 
-       GET_COLOR_CONFIG(TABLEVIEW::EXPANDABLE_ARROW_NORMAL, normalColor);
-       GET_COLOR_CONFIG(TABLEVIEW::EXPANDABLE_ARROW_DISABLED, disabledColor);
-       GET_COLOR_CONFIG(TABLEVIEW::EXPANDABLE_ARROW_PRESSED, pressedColor);
+       GET_COLOR_CONFIG(LIST::EXPANDABLE_ARROW_NORMAL, normalColor);
+       GET_COLOR_CONFIG(LIST::EXPANDABLE_ARROW_DISABLED, disabledColor);
+       GET_COLOR_CONFIG(LIST::EXPANDABLE_ARROW_PRESSED, pressedColor);
 
        r = GET_BITMAP_CONFIG_N(LIST::BUTTON_COLLAPSE_GROUP, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
        SysTryReturnResult(NID_UI_CTRL, (r == E_SUCCESS), r, "Failed to fetch Arrow Bitmap");
@@ -623,10 +623,10 @@ _ExpandableListImpl::LoadArrowBitmap(void)
        delete pTempBitmap;
        pTempBitmap = null;
 
-       r = GET_BITMAP_CONFIG_N(TABLEVIEW::BUTTON_EXPAND_CLOSED_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pEffectOpenedImage);
+       r = GET_BITMAP_CONFIG_N(LIST::BUTTON_EXPAND_CLOSED_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pEffectOpenedImage);
        SysTryReturnResult(NID_UI_CTRL, (r == E_SUCCESS), r, "Failed to fetch Arrow effect Bitmap");
 
-       r = GET_BITMAP_CONFIG_N(TABLEVIEW::BUTTON_EXPAND_OPENED_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pEffectClosedImage);
+       r = GET_BITMAP_CONFIG_N(LIST::BUTTON_EXPAND_OPENED_EFFECT, BITMAP_PIXEL_FORMAT_ARGB8888, __pEffectClosedImage);
        SysTryReturnResult(NID_UI_CTRL, (r == E_SUCCESS), r, "Failed to fetch Arrow effect Bitmap");
 
        return r;
index 7ba002b..88b32f9 100644 (file)
@@ -77,8 +77,6 @@ _ListBaseImpl::CreateMergedBitmapN(Bitmap& pNormalBitmap, Bitmap* pSelectedBitma
        Canvas* pCanvas = null;
 
        Rectangle bitmapBounds;
-       Color canvasBackgroundColor;
-
        result r = E_SUCCESS;
 
        bitmapBounds =  Rectangle(0, 0, pNormalBitmap.GetWidth(), pNormalBitmap.GetHeight());
@@ -86,10 +84,8 @@ _ListBaseImpl::CreateMergedBitmapN(Bitmap& pNormalBitmap, Bitmap* pSelectedBitma
        pCanvas = new (std::nothrow) Canvas();
        SysTryReturn(NID_UI_CTRL, pCanvas != null, null, E_OUT_OF_MEMORY, "Memory allocation failed.");
 
-       GET_COLOR_CONFIG(TABLEVIEW::ITEM_ANNEX_CANVAS_BG_NORMAL, canvasBackgroundColor);
-
        pCanvas->Construct(bitmapBounds);
-       pCanvas->SetBackgroundColor(Color(canvasBackgroundColor.GetRed(), canvasBackgroundColor.GetGreen(), canvasBackgroundColor.GetBlue(), 0));
+       pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
        pCanvas->Clear();
 
        if (_BitmapImpl::CheckNinePatchedBitmapStrictly(pNormalBitmap))
@@ -138,11 +134,8 @@ _ListBaseImpl::CreateOnOffMergedBitmapN(Bitmap& pNormalBitmap, Bitmap& pSelected
        Canvas* pCanvas = null;
 
        Rectangle bitmapBounds;
-
-       result r = E_SUCCESS;
-
        Rectangle handlerBounds;
-       Color canvasBackgroundColor;
+       result r = E_SUCCESS;
 
        bitmapBounds =  Rectangle(0, 0, pNormalBitmap.GetWidth(), pNormalBitmap.GetHeight());
 
@@ -161,10 +154,8 @@ _ListBaseImpl::CreateOnOffMergedBitmapN(Bitmap& pNormalBitmap, Bitmap& pSelected
        pCanvas = new (std::nothrow) Canvas();
        SysTryReturn(NID_UI_CTRL, pCanvas != null, null, E_OUT_OF_MEMORY, "Memory allocation failed.");
 
-       GET_COLOR_CONFIG(TABLEVIEW::ITEM_ANNEX_CANVAS_BG_NORMAL, canvasBackgroundColor);
-
        pCanvas->Construct(bitmapBounds);
-       pCanvas->SetBackgroundColor(Color(canvasBackgroundColor.GetRed(), canvasBackgroundColor.GetGreen(), canvasBackgroundColor.GetBlue(), 0));
+       pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
        pCanvas->Clear();
 
        if (_BitmapImpl::CheckNinePatchedBitmapStrictly(pNormalBitmap))
index 7da3b7f..d8ca2ee 100644 (file)
@@ -49,6 +49,8 @@ _OptionMenu::_OptionMenu(void)
        , __pActionEvent(null)
        , __pSubMenu(null)
        , __subMenuIndex(-1)
+       , __currentFocusedIndex(-1)
+       , __isFocused(false)
 {
 }
 
@@ -365,7 +367,7 @@ _OptionMenu::ShowSubMenu(int mainIndex, _OptionMenuItem& item)
                return GetLastResult();
        }
 
-        __pSubMenu->SetFocusable(true);
+       __pSubMenu->SetFocusable(true);
 
        if (__pSubMenu->GetOwner() == null)
        {
@@ -511,7 +513,6 @@ _OptionMenu::OnActivated(void)
        }
 
        SetTouchCapture(true, false);
-
        _Window::OnActivated();
 }
 
@@ -566,6 +567,88 @@ _OptionMenu::OnActionPerformed(const _Control& source, int actionId)
        __pOptionMenuPresenter->OnActionPerformed(source, actionId);
 }
 
+bool
+_OptionMenu::OnFocusGained(const _Control &source)
+{
+       __currentFocusedIndex = -1;
+       __isFocused = false;
+       return true;
+}
+
+bool
+_OptionMenu::OnFocusLost(const _Control &source)
+{
+       __pOptionMenuPresenter->ClearFocus(__currentFocusedIndex);
+       __isFocused = false;
+       return true;
+}
+
+void
+_OptionMenu::OnDrawFocus(void)
+{
+       if (!__isFocused)
+       {
+               __isFocused = true;
+               __currentFocusedIndex = -1;
+               __pOptionMenuPresenter->DrawFocus(__currentFocusedIndex);
+       }
+       return;
+}
+
+bool
+_OptionMenu::OnKeyPressed(const _Control &source, const _KeyInfo &keyInfo)
+{
+       if (&source != this)
+       {
+               return false;
+       }
+
+       _KeyCode keyCode = keyInfo.GetKeyCode();
+
+       int count = GetItemCount();
+
+       if(!__isFocused)
+       {
+               return false;
+       }
+
+       switch(keyCode)
+       {
+       case _KEY_RIGHT:
+               if (__currentFocusedIndex >= (count - 1))
+               {
+                       __currentFocusedIndex = count - 1;
+               }
+               else
+               {
+                       __currentFocusedIndex++;
+               }
+               break;
+
+       case _KEY_LEFT:
+               if (__currentFocusedIndex <= -1)
+               {
+                       __currentFocusedIndex = -1;
+               }
+               else
+               {
+                       __currentFocusedIndex--;
+               }
+               break;
+
+       case _KEY_ENTER:
+               __pOptionMenuPresenter->OnEnterKeyPressed(__currentFocusedIndex);
+
+               return true;
+
+       default :
+               return false;
+       }
+       __pOptionMenuPresenter->DrawFocus(__currentFocusedIndex);
+
+       return true;
+}
+
 void
 _OptionMenu::SetBoundsAllAccessibilityElement(void)
 {
index 10ece50..a9c94c6 100644 (file)
@@ -144,6 +144,7 @@ _OptionMenuPresenter::_OptionMenuPresenter(_OptionMenu* optionMenu)
        , __isHandlerPressed(false)
        , __isClosing(false)
        , __isAnimationStarted(false)
+       , __focusedIndex(-1)
        , __pOptionMenuVE(null)
        , __pThirtyThreeTimingFunction(null)
        , __pSixtyTimingFunction(null)
@@ -487,6 +488,7 @@ _OptionMenuPresenter::DrawHandler(Canvas& canvas)
        arrowBounds.height = pHandleArrowBitmap->GetHeightF();
 
        r = DrawResourceBitmap(canvas, arrowBounds, pHandleArrowBitmap);
+       __arrowBounds = arrowBounds;
        SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
 
        if (!isCustomHandleBitmap && (pHandleEffectBitmap!= null))
@@ -736,6 +738,124 @@ _OptionMenuPresenter::DrawItemLine(Canvas& canvas)
 }
 
 result
+_OptionMenuPresenter::DrawFocus(int index)
+{
+       ClearFocus(__focusedIndex);
+
+       result r = E_SUCCESS;
+
+       Canvas* pCanvas;
+       pCanvas = __pOptionMenu->GetCanvasN();
+
+       SysTryReturn(NID_UI_CTRL, (pCanvas != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       FloatRectangle bounds;
+
+       if (index == -1)
+       {
+               bounds = __arrowBounds;
+       }
+       else
+       {
+               bounds = GetItemBounds(index);
+       }
+
+       Bitmap* pBitmap = null;
+       r = GET_BITMAP_CONFIG_N(FOCUSUI::FOCUS, BITMAP_PIXEL_FORMAT_ARGB8888, pBitmap);
+       SysTryCatch(NID_UI_CTRL, (pBitmap != null), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pBitmap))
+       {
+               r = pCanvas->DrawNinePatchedBitmap(bounds, *pBitmap);
+       }
+       else
+       {
+               r = pCanvas->DrawBitmap(bounds, *pBitmap);
+       }
+
+       __focusedIndex = index;
+
+       delete pCanvas;
+       delete pBitmap;
+
+       return r;
+
+CATCH:
+       delete pCanvas;
+
+       return r;
+}
+
+result
+_OptionMenuPresenter::ClearFocus(int index)
+{
+       result r = E_SUCCESS;
+       Canvas* pCanvas;
+
+       pCanvas = __pOptionMenu->GetCanvasN();
+       SysTryReturn(NID_UI_CTRL, (pCanvas != null), r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       Color background;
+       GET_COLOR_CONFIG(OPTIONMENU::ITEM_BG_NORMAL, background);
+
+       FloatRectangle bounds;
+
+       if (index == -1)
+       {
+               bounds = __arrowBounds;
+       }
+       else
+       {
+               bounds = GetItemBounds(index);
+       }
+
+       pCanvas->SetBackgroundColor(background);
+       pCanvas->Clear(bounds);
+
+       if (index == -1)
+       {
+               DrawHandler(*pCanvas);
+       }
+       else
+       {
+               DrawItem(*pCanvas, index);
+       }
+
+       DrawItemLine(*pCanvas);
+
+       delete pCanvas;
+       return r;
+}
+
+void
+_OptionMenuPresenter::OnEnterKeyPressed(int selectedIndex)
+{
+       if (selectedIndex == -1)
+       {
+               __isHandlerPressed = false;
+               Hide();
+       }
+       else
+       {
+               _OptionMenuItem* pItem = __pOptionMenuModel->GetItem(selectedIndex);
+               if (pItem != null)
+               {
+                       if (pItem->HasSubItem() == true)
+                       {
+                               __pOptionMenu->ShowSubMenu(selectedIndex, *pItem);
+                       }
+                       else
+                       {
+                               // Fire Action Event
+                               Hide();
+                               __pOptionMenu->FireActionEvent(pItem->GetActionId());
+                       }
+               }
+       }
+       return;
+}
+
+result
 _OptionMenuPresenter::RefreshItem(int index)
 {
        if (index < 0 || index >= __pOptionMenuModel->GetItemCount())
@@ -1377,7 +1497,7 @@ _OptionMenuPresenter::OnTouchPressed(const _Control& source, const _TouchInfo& t
                return false;
        }
 
-       SysTryReturn(NID_UI_CTRL, (!__isAnimationStarted), false, E_SUCCESS, "[E_SUCCESS] Animation     is in Progress.");
+       SysTryReturn(NID_UI_CTRL, (!__isAnimationStarted), false, E_SUCCESS, "[E_SUCCESS] Animation is in Progress.");
 
        if (__pOptionMenu->IsSubMenuShown() == true)
        {
index 64fce2d..282a6a2 100644 (file)
@@ -40,6 +40,7 @@ namespace Tizen { namespace Ui { namespace Controls {
 _Tab::_Tab(void)
        : __pTabPresenter(null)
        , __style(_TAB_STYLE_TEXT)
+       , __currentHighlightedItemIndex(-1)
        , __tabStatus(_TAB_STATUS_NORMAL)
        , __pActionEvent(null)
        , __pGestureLongPress(null)
@@ -262,6 +263,12 @@ _Tab::AddItem(const Bitmap& icon, const String& text, int actionId)
 
        __pTabPresenter->SetRecalculateItemBounds(true);
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
+
        return __tabItems.Add(*pItem);
 }
 
@@ -304,6 +311,12 @@ _Tab::AddItem(const Bitmap& icon, int actionId)
 
        __pTabPresenter->SetRecalculateItemBounds(true);
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
+
        return __tabItems.Add(*pItem);
 }
 
@@ -346,6 +359,11 @@ _Tab::AddItem(const String& text, int actionId)
 
        __pTabPresenter->SetRecalculateItemBounds(true);
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
 
        return __tabItems.Add(*pItem);
 }
@@ -410,6 +428,12 @@ _Tab::InsertItemAt(int index, const Bitmap& icon, const String& text, int action
                SetSelectedItemIndex(selectedIndex);
        }
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
+
        return r;
 }
 
@@ -469,6 +493,12 @@ _Tab::InsertItemAt(int index, const Bitmap& icon, int actionId)
                SetSelectedItemIndex(selectedIndex);
        }
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
+
        return r;
 }
 
@@ -528,6 +558,12 @@ _Tab::InsertItemAt(int index, const String& text, int actionId)
                SetSelectedItemIndex(selectedIndex);
        }
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = 0;
+
        return r;
 }
 
@@ -672,12 +708,31 @@ _Tab::RemoveItemAt(int index)
 
        SetSelectedItemIndex(0);
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       if(GetItemCount() > 0)
+       {
+               __currentHighlightedItemIndex = 0;
+       }
+       else
+       {
+               __currentHighlightedItemIndex = -1;
+       }
+
        return r;
 }
 
 result
 _Tab::RemoveAllItems(void)
 {
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = -1;
+
        __pTabPresenter->SetRecalculateItemBounds(true);
        SetSelectedItemIndex(0);
        SetFirstDrawnItemIndex(-1);
@@ -1180,6 +1235,12 @@ _Tab::GetStyle(void) const
        return _TabStyle(__style);
 }
 
+int
+_Tab::GetCurrentHighlightedItemIndex(void) const
+{
+       return __currentHighlightedItemIndex;
+}
+
 void
 _Tab::AddActionEventListener(const _IActionEventListener& listener)
 {
@@ -1217,6 +1278,12 @@ _Tab::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
                return true;
        }
 
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = -1;
+
        return __pTabPresenter->OnTouchPressed(source, touchinfo);
 }
 
@@ -1331,6 +1398,128 @@ _Tab::OnFontInfoRequested(unsigned long& style, float& size)
     return;
 }
 
+bool
+_Tab::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+       if (this != &source)
+       {
+               return false;
+       }
+       _KeyCode keyCode = keyInfo.GetKeyCode();
+       int itemCount = __pTabPresenter->GetItemCount();
+       if(itemCount == 0)
+       {
+               return false;
+       }
+
+       if (keyCode == _KEY_RIGHT)
+       {
+               if (__currentHighlightedItemIndex < (itemCount - 1))
+               {
+                       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
+                       {
+                               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+                       }
+
+                       __currentHighlightedItemIndex++;
+
+                       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
+                       {
+                               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
+                       }
+                       __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_RIGHT);
+               }
+               return true;
+       }
+
+       if (keyCode == _KEY_LEFT)
+       {
+               if (__currentHighlightedItemIndex >= -1)
+               {
+                       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
+                       {
+                               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+                       }
+                       if (__currentHighlightedItemIndex == -1)
+                       {
+                               __currentHighlightedItemIndex = 0;
+                       }
+                       if (__currentHighlightedItemIndex > 0)
+                       {
+                               __currentHighlightedItemIndex--;
+                       }
+                       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
+                       {
+                               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
+                       }
+                       __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
+               }
+               return true;
+       }
+
+       if (keyCode == _KEY_ENTER && __currentHighlightedItemIndex != -1)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_SELECTED);
+               __pTabPresenter->SetSelectedItemIndex(__currentHighlightedItemIndex);
+               Invalidate();
+               return true;
+       }
+       return false;
+}
+
+bool
+_Tab::OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo)
+{
+       return false;
+}
+
+bool
+_Tab::OnFocusGained(const _Control & source)
+{
+       if (this != &source)
+       {
+               return false;
+       }
+
+       if(__pTabPresenter->GetItemCount() > 0)
+       {
+               __currentHighlightedItemIndex = 0;
+       }
+       else
+       {
+               __currentHighlightedItemIndex = -1;
+       }
+       return true;
+}
+
+bool
+_Tab::OnFocusLost(const _Control & source)
+{
+       if (this != &source)
+       {
+               return false;
+       }
+
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) == _TABITEM_STATUS_HIGHLIGHTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_NORMAL);
+       }
+       __currentHighlightedItemIndex = -1;
+       Invalidate();
+       return true;
+}
+
+void
+_Tab::OnDrawFocus()
+{
+       if (__pTabPresenter->GetItemStatus(__currentHighlightedItemIndex) != _TABITEM_STATUS_SELECTED)
+       {
+               __pTabPresenter->SetItemStatus(__currentHighlightedItemIndex, _TABITEM_STATUS_HIGHLIGHTED);
+       }
+       __pTabPresenter->ShiftToFocusedItem(__currentHighlightedItemIndex, _FOCUS_DIRECTION_MOVE_LEFT);
+       return;
+}
+
 void
 _Tab::AddAccessibilityElement(const FloatRectangle& itemBounds, const String& itemText, _TabItemStatus status)
 {
index 785c45d..cbc03f1 100644 (file)
@@ -76,6 +76,7 @@ _TabPresenter::_TabPresenter(void)
        , __pFrontScrollingEffectBitmap(null)
        , __pRearScrollingEffectBitmap(null)
        , __pScrollingEffectBitmap(null)
+       , __pFocusBitmap(null)
        , __pScrollingEffectVe(null)
        , __pFlickAnimationTimer(null)
        , __pScrollAnimationTimer(null)
@@ -204,6 +205,12 @@ _TabPresenter::~_TabPresenter(void)
                __pScrollingEffectBitmap = null;
        }
 
+       if(__pFocusBitmap)
+       {
+               delete __pFocusBitmap;
+               __pFocusBitmap = null;
+       }
+
        if (__pScrollingEffectVe)
        {
                __pScrollingEffectVe->RemoveAllAnimations();
@@ -304,6 +311,9 @@ _TabPresenter::LoadBitmap(void)
        r = GET_BITMAP_CONFIG_N(TAB::TAB_BOUNCE_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, __pRearScrollingEffectBitmap);
        SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate overscrolling right bitmap.");
 
+       r = GET_BITMAP_CONFIG_N(FOCUSUI::FOCUS, BITMAP_PIXEL_FORMAT_ARGB8888, __pFocusBitmap);
+       SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate focus bitmap.");
+
        delete pBitmap;
        return r;
 }
@@ -489,7 +499,7 @@ _TabPresenter::Draw(void)
        if (__isRecalculateNeeded)
        {
                __isRecalculateNeeded = false;
-               CalcItemBounds();
+               CalculateItemBounds();
        }
        else if (__isFlickEnabled )
        {
@@ -515,6 +525,11 @@ _TabPresenter::Draw(void)
                DrawItem(pCanvas);
        }
 
+       if (__pTab->GetCurrentHighlightedItemIndex() > -1 && __pTab->IsFocused() && GetItemCount() > 0)
+       {
+               DrawResourceBitmap(*pCanvas, GetItemAt(__pTab->GetCurrentHighlightedItemIndex())->GetItemBounds(), __pFocusBitmap);
+       }
+
        RefreshAccessibilityElement();
 
        delete pCanvas;
@@ -1644,7 +1659,7 @@ _TabPresenter::DrawHorizontal()
 
        if ((bounds.x + __moveDistance) > 0.0f)
        {
-               CalcItemBounds();
+               CalculateItemBounds();
                ResetFlickAnimationTimer();
                return;
        }
@@ -1662,6 +1677,26 @@ _TabPresenter::DrawHorizontal()
        return;
 }
 
+result
+_TabPresenter::ShiftToFocusedItem(int itemIndex, _FocusDirectionMove direction)
+{
+       if (direction == _FOCUS_DIRECTION_MOVE_LEFT && itemIndex == __firstLoadedItemIndex - 1)         //left key pressed
+       {
+               SetItemFit(__firstLoadedItemIndex - 1);
+       }
+       if (direction == _FOCUS_DIRECTION_MOVE_RIGHT && itemIndex == __lastLoadedItemIndex + 1)         //right key pressed
+       {
+               SetItemFit(__firstLoadedItemIndex + 1);
+       }
+       if(itemIndex == 0)              //when touched
+       {
+               SetItemFit(0);
+       }
+       __pTab->Invalidate();
+
+       return E_SUCCESS;
+}
+
 void
 _TabPresenter::DrawBadgeIcon(_TabItem* pDrawItem, Canvas* pCanvas)
 {
@@ -1688,7 +1723,7 @@ _TabPresenter::DrawBadgeIcon(_TabItem* pDrawItem, Canvas* pCanvas)
 }
 
 void
-_TabPresenter::CalcItemBounds(void)
+_TabPresenter::CalculateItemBounds(void)
 {
        ClearLastResult();
 
@@ -1702,7 +1737,7 @@ _TabPresenter::CalcItemBounds(void)
                return;
        }
 
-       CalcTabBounds(true);
+       CalculateTabBounds(true);
 
        FloatRectangle bounds = __pTab->GetBoundsF();
 
@@ -1738,7 +1773,7 @@ _TabPresenter::CalcItemBounds(void)
 }
 
 void
-_TabPresenter::CalcTabBounds(bool isReset)
+_TabPresenter::CalculateTabBounds(bool isReset)
 {
        FloatRectangle bounds = __pTab->GetBoundsF();
 
@@ -1848,7 +1883,7 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin
                {
                        SetItemStatus(pressedIndex, _TABITEM_STATUS_NORMAL);
                }
-               CalcItemBounds();
+               CalculateItemBounds();
 
                __moveDistance = -(GetItemAt(__firstLoadedItemIndex)->GetItemBounds().x);
                DrawHorizontal();
@@ -1861,7 +1896,7 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin
        if (__isEditMode && __editItemIndex == __rearIndex)
        {
                FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
-               if(__editItemIndex > 0)
+               if (__editItemIndex > 0)
                {
                        pItem = GetItemAt((__editItemIndex - 1));
                        SysTryReturn(NID_UI_CTRL, pItem, false, GetLastResult(), "[%s] Propagating.", GetErrorMessage(GetLastResult()));
@@ -1872,7 +1907,7 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin
                }
                else
                {
-                       CalcItemBounds();
+                       CalculateItemBounds();
                }
        }
 
@@ -1904,7 +1939,7 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin
                SetLastLoadedItemIndex();
 
 
-               CalcItemBounds();
+               CalculateItemBounds();
                __moveDistance = -(__firstLoadedItemIndex * __itemWidth);
                DrawHorizontal();
        }
index 6e1b1d5..457d442 100644 (file)
@@ -27,6 +27,7 @@
 #include "FUi_Control.h"
 #include "FUiCtrl_ColorChangeEvent.h"
 #include "FUi_IAccessibilityListener.h"
+#include "FUiCtrl_ColorPickerPresenter.h"
 
 namespace Tizen { namespace Ui {
 class _AccessibilityElement;
@@ -140,6 +141,12 @@ public:
        virtual bool OnAccessibilityValueIncreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
        virtual bool OnAccessibilityValueDecreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
 
+       virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
+
+       bool OnFocusLost(const _Control& source);
+       virtual void OnDrawFocus(void);
+       virtual void OnFocusModeStateChanged(void);
+
 private:
        _ColorPicker(void);
 
@@ -164,6 +171,12 @@ private:
        Tizen::Ui::_AccessibilityElement* __pSaturationBarElement;
 
        Tizen::Ui::_AccessibilityElement* __pLuminanceBarElement;
+
+       _ColorPickerComponentType __currentFocusedHandler;
+
+       _ColorPickerComponentType __previousFocusedHandler;
+
+       bool __isInFocusMode;
 };     // _ColorPicker
 
 }}}    // Tizen::Ui::Controls
index ae2b31e..78200ac 100644 (file)
@@ -26,7 +26,7 @@
 #define _FUI_CTRL_INTERNAL_COLORPICKER_PRESENTER_H_
 
 #include <FBaseObject.h>
-#include "FUiCtrl_ColorPicker.h"
+#include "FUi_Control.h"
 
 namespace Tizen { namespace Graphics
 {
@@ -68,6 +68,7 @@ enum _ColorPickerComponentType
 };
 
 class _ColorPickerModel;
+class _ColorPicker;
 
 class _ColorPickerPresenter
        : public Tizen::Base::Object
@@ -95,6 +96,12 @@ public:
 
        void LoadDrawingProperties(const Tizen::Graphics::FloatRectangle& controlBounds);
 
+       void StepHandler(_ColorPickerComponentType index, bool increase);
+
+       result DrawFocus(_ColorPickerComponentType currentIndex, _ColorPickerComponentType prevIndex);
+
+       result ClearFocus(_ColorPickerComponentType index);
+
        void OnChangeLayout(Tizen::Ui::_ControlOrientation orientation);
 
        bool OnTouchPressed(const Tizen::Ui::_Control& source, const Tizen::Ui::_TouchInfo& touchinfo);
@@ -204,6 +211,7 @@ private:
        Tizen::Graphics::Bitmap* __pLandscapeCustomBitmap;
        Tizen::Graphics::Bitmap* __pLandscapeLuminanceSliderBgBitmap;
        Tizen::Graphics::Bitmap* __pLandscapeSaturationSliderBgBitmap;
+       Tizen::Graphics::Bitmap* __pFocusBitmap;
 };     // _ColorPickerPresenter
 
 }}}    // Tizen::Ui::Controls
index 8fbd175..6bab331 100644 (file)
@@ -123,6 +123,14 @@ public:
 // _IActionEventListener
        virtual void OnActionPerformed(const Tizen::Ui::_Control& source, int actionId);
 
+       bool OnFocusGained(const _Control& source);
+
+       bool OnFocusLost(const _Control& source);
+
+       void OnDrawFocus(void);
+
+       bool OnKeyPressed(const _Control &source, const _KeyInfo &keyInfo);
+
        virtual ~_OptionMenu(void);
 
        static _OptionMenu* CreateOptionMenuN(void);
@@ -151,6 +159,10 @@ private:
        int __subMenuIndex;
 
        Tizen::Base::Collection::LinkedListT<_AccessibilityElement*> __accessibilityElements;
+
+       int __currentFocusedIndex;
+
+       bool __isFocused;
 }; // _OptionMenu
 
 }}} // Tizen::Ui::Controls
index f645d16..1fe13bb 100644 (file)
@@ -147,6 +147,10 @@ public:
        void OnFontInfoRequested(unsigned long& style, float& size);
        Tizen::Graphics::Font* GetFont(void) const;
 
+       result DrawFocus(int index);
+       result ClearFocus(int index);
+       void OnEnterKeyPressed(int index);
+
 private:
        _OptionMenuPresenter(_OptionMenu* optionMenu);
 
@@ -247,6 +251,10 @@ private:
 
        bool __isAnimationStarted;
 
+       int __focusedIndex;
+
+       Tizen::Graphics::FloatRectangle __arrowBounds;
+
        Tizen::Graphics::FloatMatrix4 _matrixOrigin;
        Tizen::Graphics::FloatMatrix4 _matrixScale;
        Tizen::Ui::Animations::_VisualElement* __pOptionMenuVE;
index c65ec4f..8a528a9 100644 (file)
@@ -180,6 +180,8 @@ public:
        void SetStyle(int style);
        _TabStyle GetStyle(void) const;
 
+       int GetCurrentHighlightedItemIndex(void) const;
+
        void AddActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
        void RemoveActionEventListener(const Tizen::Ui::Controls::_IActionEventListener& listener);
 
@@ -215,6 +217,12 @@ public:
        virtual bool OnAccessibilityValueIncreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
        virtual bool OnAccessibilityValueDecreased(const Tizen::Ui::_AccessibilityContainer&, const Tizen::Ui::_AccessibilityElement&);
 
+       virtual bool OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo);
+       virtual bool OnKeyReleased(const _Control& source, const _KeyInfo& keyInfo);
+       bool OnFocusGained(const _Control& source);
+       bool OnFocusLost(const _Control& source);
+       virtual void OnDrawFocus(void);
+
 private:
        int GetItemIndex(int actionId);
        bool CheckDuplicatedActionId(int actionId);
@@ -224,6 +232,7 @@ private:
        _TabPresenter* __pTabPresenter;
 
        int __style;
+       int __currentHighlightedItemIndex;
        _TabStatus __tabStatus;
        Tizen::Base::Collection::ArrayList __tabItems;
 
index 7a7a0f0..67c24b5 100644 (file)
@@ -54,8 +54,13 @@ namespace Tizen { namespace Ui { namespace Controls {
        class _TabItem;
        class _FlickAnimation;
 
-const int _TIMER_COUNT = 3;
-const int _TAB_ITEM_MAXCOUNT = 14;
+// enum
+enum _FocusDirectionMove
+{
+       _FOCUS_DIRECTION_MOVE_LEFT = 0,         /** Move Focus to Left */
+       _FOCUS_DIRECTION_MOVE_RIGHT                     /** Move Focus to Right*/
+};
+
 /**
  * @class _TabPresenter
  * @brief
@@ -130,6 +135,8 @@ public:
 
        virtual bool OnAccessibilityFocusMovedNext(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
        virtual bool OnAccessibilityFocusMovedPrevious(const Tizen::Ui::_AccessibilityContainer& control, const Tizen::Ui::_AccessibilityElement& element);
+       result ShiftToFocusedItem(int itemIndex, _FocusDirectionMove direction);
+
 protected:
        result SetModel(const _TabModel& tabModel);
 
@@ -159,8 +166,8 @@ private:
        void DrawBadgeIcon(_TabItem* pDrawItem, Tizen::Graphics::Canvas* pCanvas);
 
 
-       void CalcItemBounds(void);
-       void CalcTabBounds(bool isReset);
+       void CalculateItemBounds(void);
+       void CalculateTabBounds(bool isReset);
 
        void StartFlickAnimation(void);
        result StartFlickAnimationTimer(void);
@@ -202,6 +209,9 @@ private:
        Tizen::Graphics::FloatRectangle __dividerLine;
        Tizen::Graphics::FloatRectangle __selectedLine;
 
+       static const int _TIMER_COUNT = 3;
+       static const int _TAB_ITEM_MAXCOUNT = 14;
+
        struct ReorderAnimationInfo *__pAnimInfo[_TAB_ITEM_MAXCOUNT];
        struct TimerInfo *__pTimerInfo[_TIMER_COUNT];
        bool __isRecalculateNeeded;
@@ -215,6 +225,7 @@ private:
        Tizen::Graphics::Bitmap* __pFrontScrollingEffectBitmap;
        Tizen::Graphics::Bitmap* __pRearScrollingEffectBitmap;
        Tizen::Graphics::Bitmap* __pScrollingEffectBitmap;
+       Tizen::Graphics::Bitmap* __pFocusBitmap;
        Tizen::Ui::Animations::_VisualElement* __pScrollingEffectVe;
 
        Tizen::Base::Runtime::Timer* __pFlickAnimationTimer;
index 209d8c3..c4bb556 100644 (file)
@@ -32,15 +32,13 @@ DECLARE_UI_CONFIG(LIST);
        DECLARE_COLOR_CONFIG(ELEMENT_TEXT_PRESSED, 5);
        DECLARE_COLOR_CONFIG(ELEMENT_TEXT_HIGHLIGHTED, 6);
        DECLARE_COLOR_CONFIG(ELEMENT_TEXT_DISABLED, 7);
-       DECLARE_IMAGE_CONFIG(CHECK_BG_BITMAP, 1);
-       DECLARE_IMAGE_CONFIG(CHECK_MARK_BG_BITMAP, 2);
-       DECLARE_IMAGE_CONFIG(CHECK_DIM_BITMAP, 3);
-       DECLARE_IMAGE_CONFIG(BUTTON_RADIO_BITMAP, 4);
-       DECLARE_IMAGE_CONFIG(BUTTON_RADIO_SELECTED_BITMAP, 5);
-       DECLARE_IMAGE_CONFIG(BUTTON_OFF_BITMAP, 6);
-       DECLARE_IMAGE_CONFIG(BUTTON_ON_BITMAP, 7);
-       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_GROUP, 8);
-       DECLARE_IMAGE_CONFIG(BUTTON_COLLAPSE_GROUP, 9);
+       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_NORMAL, 8);
+       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_DISABLED, 9);
+       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_PRESSED, 10);
+       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_GROUP, 1);
+       DECLARE_IMAGE_CONFIG(BUTTON_COLLAPSE_GROUP, 2);
+       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_CLOSED_EFFECT, 3);
+       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_OPENED_EFFECT, 4);
        DECLARE_SHAPE_CONFIG(EMPTY_LIST_TEXT_HEIGHT, 1);
        DECLARE_SHAPE_CONFIG(LIST_ITEM_TEXT_SIZE, 2);
        DECLARE_SHAPE_CONFIG(LIST_STYLE_NUMBER_X, 3);
index 7354cc9..791d558 100644 (file)
@@ -26,9 +26,9 @@
 
 DECLARE_UI_CONFIG(TABLEVIEW);
        DECLARE_COLOR_CONFIG(BG_NORMAL, 1);
-       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_NORMAL, 2);
-       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_DISABLED, 3);
-       DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_PRESSED, 4);
+//     DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_NORMAL, 2);
+//     DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_DISABLED, 3);
+//     DECLARE_COLOR_CONFIG(EXPANDABLE_ARROW_PRESSED, 4);
        DECLARE_COLOR_CONFIG(ITEM_DIVIDER_TOP_BG_NORMAL, 5);
        DECLARE_COLOR_CONFIG(ITEM_DIVIDER_BOTTOM_BG_NORMAL, 6);
        DECLARE_COLOR_CONFIG(ITEM_BG_NORMAL, 7);
@@ -97,8 +97,8 @@ DECLARE_UI_CONFIG(TABLEVIEW);
        DECLARE_IMAGE_CONFIG(CIRCLE_BUTTON_BG_EFFECT, 32);
 //     DECLARE_IMAGE_CONFIG(CIRCLE_BUTTON_REVEAL, 33);
        DECLARE_IMAGE_CONFIG(SEARCH_ICON_NORMAL, 34);
-       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_CLOSED_EFFECT, 35);
-       DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_OPENED_EFFECT, 36);
+//     DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_CLOSED_EFFECT, 35);
+//     DECLARE_IMAGE_CONFIG(BUTTON_EXPAND_OPENED_EFFECT, 36);
        DECLARE_IMAGE_CONFIG(CHECKBOX_BG_DISABLED, 37);
        DECLARE_IMAGE_CONFIG(CHECKBOX_CHECK_MARK_DISABLED, 38);
        DECLARE_IMAGE_CONFIG(RADIOBUTTON_NORMAL_DISABLED, 39);
@@ -156,4 +156,4 @@ DECLARE_UI_CONFIG(TABLEVIEW);
        DECLARE_FIXED_VALUE_CONFIG(ITEM_ANNEX_DIVIDER_MARGIN, 4);
 DECLARE_END_UI_CONFIG(TABLEVIEW);
 
-#endif //_FUI_RESOURCE_TABLE_VIEW_CONFIG_H_
\ No newline at end of file
+#endif //_FUI_RESOURCE_TABLE_VIEW_CONFIG_H_
index c73b75e..05089ca 100644 (file)
@@ -3908,18 +3908,6 @@ ConfigParser::GetColorKeyTable(void)
                        __pColorKeyTable->Add(ResourceKey(key), _TABLEVIEW::BG_NORMAL_COLOR);
                }
                {
-                       const char* key ="TABLEVIEW::EXPANDABLE_ARROW_NORMAL";
-                       __pColorKeyTable->Add(ResourceKey(key), _TABLEVIEW::EXPANDABLE_ARROW_NORMAL_COLOR);
-               }
-               {
-                       const char* key ="TABLEVIEW::EXPANDABLE_ARROW_DISABLED";
-                       __pColorKeyTable->Add(ResourceKey(key), _TABLEVIEW::EXPANDABLE_ARROW_DISABLED_COLOR);
-               }
-               {
-                       const char* key ="TABLEVIEW::EXPANDABLE_ARROW_PRESSED";
-                       __pColorKeyTable->Add(ResourceKey(key), _TABLEVIEW::EXPANDABLE_ARROW_PRESSED_COLOR);
-               }
-               {
                        const char* key ="TABLEVIEW::ITEM_DIVIDER_TOP_BG_NORMAL";
                        __pColorKeyTable->Add(ResourceKey(key), _TABLEVIEW::ITEM_DIVIDER_TOP_BG_NORMAL_COLOR);
                }
index c693e36..fe2b6aa 100644 (file)
@@ -28,12 +28,17 @@ START_UI_CONFIG(LIST);
        ADD_COLOR_CONFIG(LISTITEM_DIVIDER_LEFT_HALF_COLOR, $B0223);
        ADD_COLOR_CONFIG(LISTITEM_DIVIDER_RIGHT_HALF_COLOR, $B0222);
        ADD_COLOR_CONFIG(EXPANDABLELIST_SUB_ITEM_BG_COLOR, $B0217);
+       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_NORMAL, $F032L1);
+       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_DISABLED, $F032L1D);
+       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_PRESSED, $F032L1P);
        ADD_COLOR_CONFIG(ELEMENT_TEXT_NORMAL, $F011L1);
        ADD_COLOR_CONFIG(ELEMENT_TEXT_PRESSED, $F011L1P);
        ADD_COLOR_CONFIG(ELEMENT_TEXT_HIGHLIGHTED, $F011L1P);
        ADD_COLOR_CONFIG(ELEMENT_TEXT_DISABLED, $F011L1D);
        ADD_IMAGE_CONFIG(BUTTON_EXPAND_GROUP, #00_button_expand_opened.png);
        ADD_IMAGE_CONFIG(BUTTON_COLLAPSE_GROUP, #00_button_expand_closed.png);
+       ADD_IMAGE_CONFIG(BUTTON_EXPAND_CLOSED_EFFECT, #00_button_expand_closed_ef.png);
+       ADD_IMAGE_CONFIG(BUTTON_EXPAND_OPENED_EFFECT, #00_button_expand_opened_ef.png);
 
        START_UI_CONFIG_MODE(720x1280);
                ADD_SHAPE_CONFIG(EMPTY_LIST_TEXT_HEIGHT, 38);
index 2016352..ba45c58 100644 (file)
@@ -25,9 +25,6 @@
 START_UI_CONFIG(TABLEVIEW);
 {
        ADD_COLOR_CONFIG(BG_NORMAL, 0x00000000);
-       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_NORMAL, $F032L1);
-       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_DISABLED, $F032L1D);
-       ADD_COLOR_CONFIG(EXPANDABLE_ARROW_PRESSED, $F032L1P);
        ADD_COLOR_CONFIG(ITEM_DIVIDER_TOP_BG_NORMAL, $B0222);
        ADD_COLOR_CONFIG(ITEM_DIVIDER_BOTTOM_BG_NORMAL, $B0223);
        ADD_COLOR_CONFIG(ITEM_BG_NORMAL, 0x00000000);
@@ -105,8 +102,6 @@ START_UI_CONFIG(TABLEVIEW);
        ADD_IMAGE_CONFIG(CIRCLE_BUTTON_BG_EFFECT_DISABLED, #00_circle_bg_ef_dim.png);
        ADD_IMAGE_CONFIG(CIRCLE_BUTTON_REVEAL_NORMAL, #00_button_right.png);
        ADD_IMAGE_CONFIG(SEARCH_ICON_NORMAL, #00_search_icon.png);
-       ADD_IMAGE_CONFIG(BUTTON_EXPAND_CLOSED_EFFECT, #00_button_expand_closed_ef.png);
-       ADD_IMAGE_CONFIG(BUTTON_EXPAND_OPENED_EFFECT, #00_button_expand_opened_ef.png);
        ADD_IMAGE_CONFIG(CHECKBOX_CHECK_MARK_PRESSED, #00_check_press.png);
        ADD_IMAGE_CONFIG(CIRCLE_BUTTON_REVEAL_PRESSED, #00_button_right.png);
        ADD_IMAGE_CONFIG(CIRCLE_BUTTON_REVEAL_HIGHLIGHTED, #00_button_right.png);
@@ -125,7 +120,6 @@ START_UI_CONFIG(TABLEVIEW);
        ADD_IMAGE_CONFIG(QUICK_MENU_BG_EFFECT, #00_quick_menu_bg_ef.#.png);
 
 
-
        START_UI_CONFIG_MODE(720x1280);
                ADD_DIMENSION_CONFIG(MIN_SIZE, 0, 0);
                ADD_SHAPE_CONFIG(ITEM_DEFAULT_FONT_SIZE, 44);