apply v4.6 gui
authorMyung Jin Kim <critical.kim@samsung.com>
Mon, 24 Jun 2013 02:55:22 +0000 (11:55 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Mon, 24 Jun 2013 02:55:22 +0000 (11:55 +0900)
Change-Id: I5fa39665e3b7b751642f409c82b9d3c48e69ee5e

32 files changed:
inc/FUiCtrlFooter.h
res/common/usr/share/osp/bitmaps/480x800/black/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/black/00_check_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_bottom_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_center_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_top_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/default/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/default/00_check_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_bottom_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_center_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_top_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/white/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/white/00_check_press_bg.png
res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_bottom_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_center_ef.#.png
res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_top_ef.#.png
res/common/usr/share/osp/bitmaps/720x1280/black/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/720x1280/black/00_check_press_bg.png
res/common/usr/share/osp/bitmaps/720x1280/default/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/720x1280/default/00_check_press_bg.png
res/common/usr/share/osp/bitmaps/720x1280/white/00_button_radio_press_bg.png
res/common/usr/share/osp/bitmaps/720x1280/white/00_check_press_bg.png
src/ui/controls/FUiCtrlFooter.cpp
src/ui/controls/FUiCtrl_Button.cpp
src/ui/controls/FUiCtrl_ButtonPresenter.cpp
src/ui/controls/FUiCtrl_FooterImpl.cpp
src/ui/controls/FUiCtrl_HeaderImpl.cpp
src/ui/controls/FUiCtrl_Toolbar.cpp
src/ui/inc/FUiCtrl_Button.h
src/ui/inc/FUiCtrl_ButtonPresenter.h

index 9f6931e..a6c9527 100644 (file)
@@ -805,12 +805,6 @@ public:
         */
        Tizen::Graphics::FloatRectangle GetButtonBoundsF(ButtonPosition position) const;
 
-       bool IsMenuButtonSet(void) const;
-       ButtonItemStatus GetMenuButtonStatus(void) const;
-       result RemoveMenuButton(void);
-       result SetMenuButtonEnabled(bool enable);
-       result SetMenuButton(void);
-
 protected:
        //
        //This method is for internal use only. Using this method can cause behavioral, security-related,
index cf51e7f..dc7cd53 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_button_radio_press_bg.png differ
index 0681f98..0aeb583 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_check_press_bg.png differ
index c2d4df9..55c633b 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_bottom_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_bottom_ef.#.png differ
index 3bf6436..1db7fba 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_center_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_center_ef.#.png differ
index 3661d2c..18046b3 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_ef.#.png differ
index c46f3fc..98dbb9f 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_top_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/black/00_list_group_bg_top_ef.#.png differ
index cf51e7f..dc7cd53 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_button_radio_press_bg.png differ
index 0681f98..0aeb583 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_check_press_bg.png differ
index c2d4df9..55c633b 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_bottom_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_bottom_ef.#.png differ
index 3bf6436..1db7fba 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_center_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_center_ef.#.png differ
index 3661d2c..18046b3 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_ef.#.png differ
index c46f3fc..98dbb9f 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_top_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/default/00_list_group_bg_top_ef.#.png differ
index 572f200..9670099 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_button_radio_press_bg.png differ
index b7e2694..bdada2e 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_check_press_bg.png differ
index 9851e6d..b6c2535 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_bottom_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_bottom_ef.#.png differ
index 21f8d83..0224e47 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_center_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_center_ef.#.png differ
index 6e0b01f..4c4bd37 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_top_ef.#.png and b/res/common/usr/share/osp/bitmaps/480x800/white/00_list_group_bg_top_ef.#.png differ
index 89d4345..eeecb77 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/black/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/black/00_button_radio_press_bg.png differ
index c1e6ab5..08be949 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/black/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/black/00_check_press_bg.png differ
index 89d4345..eeecb77 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/default/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/default/00_button_radio_press_bg.png differ
index c1e6ab5..08be949 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/default/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/default/00_check_press_bg.png differ
index 7df90bb..97f83a0 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/white/00_button_radio_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/white/00_button_radio_press_bg.png differ
index a6e1e21..2eb42b1 100644 (file)
Binary files a/res/common/usr/share/osp/bitmaps/720x1280/white/00_check_press_bg.png and b/res/common/usr/share/osp/bitmaps/720x1280/white/00_check_press_bg.png differ
index 1aef4b0..2eff980 100644 (file)
@@ -571,30 +571,4 @@ Footer::SetButtonNumberedBadgeIcon(ButtonPosition position, int number)
        return pFooterImpl->SetButtonNumberedBadgeIcon(position, number);
 }
 
-bool
-Footer::IsMenuButtonSet(void) const
-{
-       return true;
-}
-ButtonItemStatus
-Footer::GetMenuButtonStatus(void) const
-{
-       return BUTTON_ITEM_STATUS_NORMAL;
-}
-result
-Footer::RemoveMenuButton(void)
-{
-       return E_SUCCESS;
-}
-result
-Footer::SetMenuButtonEnabled(bool enable)
-{
-       return E_SUCCESS;
-}
-result
-Footer::SetMenuButton(void)
-{
-       return E_SUCCESS;
-}
-
 }}} // Tizen::Ui::Controls
index e98904d..f902427 100644 (file)
@@ -57,6 +57,7 @@ _Button::_Button()
        , __isSettingMultilineFontSize(false)
        , __previousTouchArea(false)
        , __userDefinedText(false)
+       , __tabTextSlide(false)
        , __leftMargin(0.0f)
        , __topMargin(0.0f)
        , __rightMargin(0.0f)
@@ -1316,6 +1317,20 @@ _Button::UserDefinedText(void) const
 }
 
 result
+_Button::SetTabTextSlide(bool tabTextSlide)
+{
+       __tabTextSlide = tabTextSlide;
+
+       return E_SUCCESS;
+}
+
+bool
+_Button::IsTabTextSlide(void) const
+{
+       return __tabTextSlide;
+}
+
+result
 _Button::SetMargin(int leftMargin, int topMargin, int rightMargin, int bottomMargin)
 {
        float floatLeftMargin = _CoordinateSystemUtils::ConvertToFloat(leftMargin);
index 04c975a..5ea4178 100644 (file)
@@ -32,6 +32,7 @@
 #include "FUiCtrl_ButtonModel.h"
 
 using namespace Tizen::Base;
+using namespace Tizen::Base::Runtime;
 using namespace Tizen::Graphics;
 using namespace Tizen::Graphics::_Text;
 using namespace Tizen::App;
@@ -50,7 +51,9 @@ _ButtonPresenter::_ButtonPresenter(void)
        , __pBase(null)
        , __fontStyle(0)
        , __fontSize(0.0f)
-       , __focusPrevStatus(_BUTTON_STATUS_NORMAL)
+       , __pTextSlideTimer(null)
+       , __textRect(FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f))
+       , __pTabLargeSelectedBitmap(null)
 {
 
 }
@@ -68,6 +71,18 @@ _ButtonPresenter::~_ButtonPresenter(void)
                delete __pTextObject;
                __pTextObject = null;
        }
+
+       if (__pTextSlideTimer)
+       {
+               delete __pTextSlideTimer;
+               __pTextSlideTimer = null;
+       }
+
+       if (__pTabLargeSelectedBitmap)
+       {
+               delete __pTabLargeSelectedBitmap;
+               __pTabLargeSelectedBitmap = null;
+       }
 }
 
 result
@@ -627,6 +642,17 @@ _ButtonPresenter::DrawBackground(void)
 void
 _ButtonPresenter::DrawToolbarItemBackground(void)
 {
+       Canvas* pCanvas = __pButton->GetCanvasN();
+
+       if (pCanvas == null)
+       {
+               SysLog(NID_UI_CTRL, "Cannot get a canvas.");
+               return;
+       }
+
+       pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+       pCanvas->Clear();
+
        float leftTouchMargin = __pButton->GetLeftTouchMarginF();
        float topTouchMargin = __pButton->GetTopTouchMarginF();
        float rightTouchMargin = __pButton->GetRightTouchMarginF();
@@ -637,17 +663,6 @@ _ButtonPresenter::DrawToolbarItemBackground(void)
 
        if (pToolbarItemBackgroundBitmap)
        {
-               Canvas* pCanvas = __pButton->GetCanvasN();
-
-               if (pCanvas == null)
-               {
-                       SysLog(NID_UI_CTRL, "Cannot get a canvas.");
-                       return;
-               }
-
-               pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
-               pCanvas->Clear();
-
                FloatRectangle bounds(leftTouchMargin, topTouchMargin, __pButton->GetBoundsF().width - (leftTouchMargin + rightTouchMargin),
                                __pButton->GetBoundsF().height - (topTouchMargin + bottomTouchMargin));
 
@@ -660,10 +675,27 @@ _ButtonPresenter::DrawToolbarItemBackground(void)
                        pCanvas->DrawBitmap(bounds, *pToolbarItemBackgroundBitmap,
                                        FloatRectangle(0.0f, 0.0f, pToolbarItemBackgroundBitmap->GetWidthF(), pToolbarItemBackgroundBitmap->GetHeightF()));
                }
+       }
 
-               delete pCanvas;
+       if (__pTabLargeSelectedBitmap)
+       {
+               delete __pTabLargeSelectedBitmap;
+               __pTabLargeSelectedBitmap = null;
        }
 
+       __pTabLargeSelectedBitmap = new (std::nothrow) Bitmap();
+
+       if (__pButton->UserDefinedText())
+       {
+               __pTabLargeSelectedBitmap->Construct(*pCanvas, __pButton->GetUserDefinedTextAreaF());
+       }
+       else
+       {
+               __pTabLargeSelectedBitmap->Construct(*pCanvas, __textRect);
+       }
+
+       delete pCanvas;
+
        return;
 }
 
@@ -758,6 +790,7 @@ _ButtonPresenter::DrawBitmap(void)
 void
 _ButtonPresenter::DrawText(void)
 {
+       TimerForTitleSlideInit();
        //TextSimple* pSimpleText = null;
        TextObjectAlignment horizontalAlign = TEXT_OBJECT_ALIGNMENT_CENTER;
        TextObjectAlignment verticalAlign = TEXT_OBJECT_ALIGNMENT_MIDDLE;
@@ -807,18 +840,30 @@ _ButtonPresenter::DrawText(void)
        //pSimpleText = new (std::nothrow) TextSimple(const_cast<wchar_t*>(__pButton->GetText().GetPointer()), __pButton->GetText().GetLength());
        //__pTextObject->AppendElement(*pSimpleText);
 
+       __textRect = FloatRectangle(leftMargin + leftTouchMargin, topMargin + topTouchMargin,
+                       __pButton->GetBoundsF().width - (leftMargin + rightMargin) - (leftTouchMargin + rightTouchMargin),
+                       __pButton->GetBoundsF().height - (topMargin + bottomMargin) - (topTouchMargin + bottomTouchMargin));
+
        if (__pButton->UserDefinedText())
        {
                __pTextObject->SetBounds(__pButton->GetUserDefinedTextAreaF());
        }
        else
        {
-               __pTextObject->SetBounds(FloatRectangle(leftMargin + leftTouchMargin, topMargin + topTouchMargin,
-                               __pButton->GetBoundsF().width - (leftMargin + rightMargin) - (leftTouchMargin + rightTouchMargin),
-                               __pButton->GetBoundsF().height - (topMargin + bottomMargin) - (topTouchMargin + bottomTouchMargin)));
+               __pTextObject->SetBounds(__textRect);
        }
+
        __pTextObject->SetAlignment(horizontalAlign | verticalAlign);
 
+       if (__pButton->GetButtonStatus() == _BUTTON_STATUS_SELECTED && __pButton->IsTabTextSlide())
+       {
+               __pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_SLIDE_LEFT);
+       }
+       else
+       {
+               __pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV);
+       }
+
        __pTextObject->SetFont(__pFont, 0, __pTextObject->GetTextLength());
        __pTextObject->Compose();
 
@@ -834,7 +879,18 @@ _ButtonPresenter::DrawText(void)
        }
 
        __pTextObject->SetForegroundColor(__pButton->GetTextColor(__pButton->GetButtonStatus()), 0, __pTextObject->GetTextLength());
-       __pTextObject->Draw(*_CanvasImpl::GetInstance(*pCanvas));
+
+       if (__pTextObject->IsActionOn() == true)
+       {
+               __pTextObject->DrawWithOffset(*_CanvasImpl::GetInstance(*pCanvas));
+
+               TimerForTitleSlideStart();
+       }
+       else
+       {
+               __pTextObject->Draw(*_CanvasImpl::GetInstance(*pCanvas));
+       }
+
 
        delete pCanvas;
 
@@ -1087,7 +1143,6 @@ _ButtonPresenter::OnDrawFocus(void)
 {
        if (__pButton->IsFocusModeStateEnabled() == false)
        {
-               __focusPrevStatus = __pButton->GetButtonStatus();
                __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
                __pButton->Invalidate();
        }
@@ -1116,7 +1171,7 @@ _ButtonPresenter::OnFocusableStateChanged(bool focusalbeState)
 void
 _ButtonPresenter::OnFocusModeStateChanged(void)
 {
-       __pButton->SetButtonStatus(__focusPrevStatus);
+       __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
        __pButton->Invalidate();
 
        return;
@@ -1127,7 +1182,6 @@ _ButtonPresenter::OnFocusGained(const _Control& source)
 {
        if (__pButton->IsFocusModeStateEnabled() == true)
        {
-               __focusPrevStatus = __pButton->GetButtonStatus();
                __pButton->SetButtonStatus(_BUTTON_STATUS_HIGHLIGHTED, false);
                __pButton->Invalidate();
        }
@@ -1138,7 +1192,7 @@ _ButtonPresenter::OnFocusGained(const _Control& source)
 bool
 _ButtonPresenter::OnFocusLost(const _Control& source)
 {
-       __pButton->SetButtonStatus(__focusPrevStatus);
+       __pButton->SetButtonStatus(_BUTTON_STATUS_NORMAL);
        __pButton->Invalidate();
 
        return true;
@@ -1202,4 +1256,116 @@ _ButtonPresenter::ShowUnderlineBitmap(bool show)
        return E_SUCCESS;
 }
 
+void
+_ButtonPresenter::OnTimerExpired(Timer& timer)
+{
+       Timer* onTimer = &timer;
+
+       if (onTimer == __pTextSlideTimer)
+       {
+               TimerForTitleSlideTimeout();
+       }
+
+       return;
+}
+
+result
+_ButtonPresenter::TimerForTitleSlideInit(void)
+{
+       result r = E_SUCCESS;
+
+       if (__pTextSlideTimer != null)
+       {
+               delete __pTextSlideTimer;
+               __pTextSlideTimer = null;
+       }
+
+       return r;
+}
+
+result
+_ButtonPresenter::TimerForTitleSlideStart(void)
+{
+       result r = E_SUCCESS;
+
+       if (__pTextSlideTimer == null)
+       {
+               __pTextSlideTimer = new (std::nothrow) Timer();
+               if (__pTextSlideTimer == null)
+               {
+                       r = E_OUT_OF_MEMORY;
+                       goto CATCH;
+               }
+
+               r = __pTextSlideTimer->Construct(*this);
+
+               if (IsFailed(r))
+               {
+                       delete __pTextSlideTimer;
+                       goto CATCH;
+               }
+       }
+
+       r = __pTextSlideTimer->Start(100);
+
+       if (IsFailed(r))
+       {
+               goto CATCH;
+       }
+
+CATCH:
+       return r;
+}
+
+result
+_ButtonPresenter::TimerForTitleSlideTimeout(void)
+{
+       Canvas* pCanvas = __pButton->GetCanvasN();
+       SysTryReturnResult(NID_UI_CTRL, pCanvas, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] pCanvas is invalid!");
+
+       pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+
+       if (__pButton->UserDefinedText())
+       {
+               pCanvas->Clear(__pButton->GetUserDefinedTextAreaF());
+
+               if (__pTabLargeSelectedBitmap)
+               {
+                       pCanvas->DrawBitmap(CoordinateSystem::AlignToDevice(__pButton->GetUserDefinedTextAreaF()), *__pTabLargeSelectedBitmap);
+               }
+       }
+       else
+       {
+               pCanvas->Clear(__textRect);
+
+               if (__pTabLargeSelectedBitmap)
+               {
+                       pCanvas->DrawBitmap(CoordinateSystem::AlignToDevice(__textRect), *__pTabLargeSelectedBitmap);
+               }
+       }
+
+       if (__pTextObject->IsChanged())
+       {
+               if (!__pButton->GetText().IsEmpty())
+               {
+                       DrawText();
+               }
+       }
+
+       if (__pTextObject->IsActionOn() == true)
+       {
+               __pTextObject->DrawWithOffset(*_CanvasImpl::GetInstance(*pCanvas));
+
+               TimerForTitleSlideStart();
+       }
+       else
+       {
+               __pTextObject->Draw(*_CanvasImpl::GetInstance(*pCanvas));
+       }
+
+       delete pCanvas;
+
+       return E_SUCCESS;
+}
+
 }}} // Tizen::Ui::Controls
index f40dbc6..b25b3fe 100644 (file)
@@ -160,6 +160,11 @@ _FooterImpl::AddItem(const FooterItem& item)
                        || __style == FOOTER_STYLE_TAB || __style == FOOTER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == FOOTER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().AddItem(pButton);
@@ -293,6 +298,11 @@ _FooterImpl::InsertItemAt(int itemIndex, const FooterItem& item)
                        || __style == FOOTER_STYLE_TAB || __style == FOOTER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == FOOTER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().InsertItemAt(itemIndex, pButton);
@@ -456,6 +466,11 @@ _FooterImpl::SetItemAt(int itemIndex, const FooterItem& item)
                        || __style == FOOTER_STYLE_TAB || __style == FOOTER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == FOOTER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().SetItemAt(itemIndex, pButton);
index 031a398..0ea81fd 100644 (file)
@@ -167,6 +167,11 @@ _HeaderImpl::AddItem(const HeaderItem& item)
                        || __style == HEADER_STYLE_TAB || __style == HEADER_STYLE_TAB_WITH_TITLE || __style == HEADER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == HEADER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().AddItem(pButton);
@@ -321,6 +326,11 @@ _HeaderImpl::InsertItemAt(int itemIndex, const HeaderItem& item)
                        || __style == HEADER_STYLE_TAB || __style == HEADER_STYLE_TAB_WITH_TITLE || __style == HEADER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == HEADER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().InsertItemAt(itemIndex, pButton);
@@ -646,6 +656,11 @@ _HeaderImpl::SetItemAt(int itemIndex, const HeaderItem& item)
                        || __style == HEADER_STYLE_TAB || __style == HEADER_STYLE_TAB_WITH_TITLE || __style == HEADER_STYLE_TAB_LARGE)
        {
                pButton->SetButtonStyle(_BUTTON_STYLE_SEGMENT);
+
+               if (__style == HEADER_STYLE_TAB_LARGE)
+               {
+                       pButton->SetTabTextSlide(true);
+               }
        }
 
        return GetCore().SetItemAt(itemIndex, pButton);
index 714bd2c..e6283b6 100644 (file)
@@ -2324,6 +2324,12 @@ _Toolbar::SetItemSelected(int itemIndex, bool fire, bool adjust)
                        PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP, __pItems.at(itemIndex));
                }
                __pItems.at(itemIndex)->SetButtonStatus(_BUTTON_STATUS_SELECTED, fire);
+
+               for (int i = 0; i < __itemCount; i++)
+               {
+                       __pItems.at(i)->ShowUnderlineBitmap(false);
+               }
+
                __pItems.at(itemIndex)->ShowUnderlineBitmap(true);
                __pItems.at(itemIndex)->Draw();
 
index bbbe9c8..39992cd 100644 (file)
@@ -258,6 +258,9 @@ public:
 
        bool IsMultilineFontSizeSet(void) const;
 
+       result SetTabTextSlide(bool tabTextSlide);
+       bool IsTabTextSlide(void) const;
+
 protected:
        result SetPresenter(const _ButtonPresenter& buttonPresenter);
 
@@ -316,6 +319,8 @@ private:
 
        bool __userDefinedText;
 
+       bool __tabTextSlide;
+
        float __leftMargin;
        float __topMargin;
        float __rightMargin;
index 652475b..703e236 100644 (file)
@@ -49,6 +49,7 @@ class _ButtonModel;
  */
 class _ButtonPresenter
        : public Tizen::Base::Object
+       , public Tizen::Base::Runtime::ITimerEventListener
 {
 public:
        _ButtonPresenter(void);
@@ -74,6 +75,7 @@ public:
        virtual bool OnFocusGained(const _Control& source);
        virtual bool OnFocusLost(const _Control& source);
        virtual Tizen::Graphics::Canvas* OnCanvasRequestedN(const Tizen::Graphics::FloatRectangle& bounds);
+       virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer);
 
        void Draw(void);
 
@@ -107,6 +109,10 @@ private:
 
        bool IsEnabledStateChanged(void);
 
+       result TimerForTitleSlideInit(void);
+       result TimerForTitleSlideStart(void);
+       result TimerForTitleSlideTimeout(void);
+
 private:
        _Button* __pButton;
        _ButtonModel* __pButtonModel;
@@ -122,7 +128,10 @@ private:
        Tizen::Ui::Animations::_VisualElement* __pBase;
        unsigned long __fontStyle;
        float __fontSize;
-       _ButtonStatus __focusPrevStatus;
+
+       Tizen::Base::Runtime::Timer* __pTextSlideTimer;
+       Tizen::Graphics::FloatRectangle __textRect;
+       Tizen::Graphics::Bitmap* __pTabLargeSelectedBitmap;
 }; // _ButtonPresenter
 
 }}} // Tizen::Ui::Controls