Text Shadow added to Text Object for SliderBarNumber
authorDebajit Das <debajit.das@samsung.com>
Tue, 10 Sep 2013 09:22:51 +0000 (14:52 +0530)
committerDebajit Das <debajit.das@samsung.com>
Tue, 10 Sep 2013 12:01:28 +0000 (17:31 +0530)
Signed-off-by: Debajit Das <debajit.das@samsung.com>
Change-Id: Ib108315c828bc52f652bcd7fabaa51b21c856636

src/ui/controls/FUiCtrl_SliderPresenter.cpp
src/ui/inc/FUiCtrl_SliderPresenter.h

index db5ee65..2c00a61 100644 (file)
@@ -166,6 +166,9 @@ _SliderPresenter::~_SliderPresenter(void)
        delete __pTitleTextObject;
        __pTitleTextObject = null;
 
+       delete __pHandleTextObject;
+       __pHandleTextObject = null;
+
 }
 
 _SliderPresenter*
@@ -229,27 +232,27 @@ _SliderPresenter::Resize(void)
        if (!__isResourceLoaded)
        {
                r = LoadBitmap();
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
                __isResourceLoaded = true;
 
                r = GET_SHAPE_CONFIG(SLIDER::HANDLE_ONE_DIGIT_TEXT_SIZE, orientation, __fontSize);
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
                __pFont = __pSlider->GetFallbackFont();
                r = GetLastResult();
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
                r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_NORMAL, __handleTextColor);
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
                r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_DISABLED, __handleTextDisabledColor);
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
                r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_PRESSED, __handleTextPressedColor);
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
                r = GET_COLOR_CONFIG(SLIDER::HANDLE_NUMBER_TEXT_HIGHLIGHTED, __handleTextHighlightedColor);
-        SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+               SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
 
        }
 
@@ -515,6 +518,15 @@ _SliderPresenter::LoadBitmap(void)
                SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
        }
 
+
+
+       __pHandleTextObject = new (std::nothrow) TextObject();
+       SysTryCatch(NID_UI_CTRL, __pHandleTextObject != null, r = E_OUT_OF_MEMORY, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory is insufficient.");
+
+       __pHandleTextObject->Construct();
+       __pHandleTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD);
+       __pHandleTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV);
+
        return r;
 
 CATCH:
@@ -582,6 +594,9 @@ CATCH:
        delete __pHandleHighlightedEffectBitmap;
        __pHandleHighlightedEffectBitmap = null;
 
+       delete __pHandleTextObject;
+       __pHandleTextObject = null;
+
        return r;
 }
 
@@ -1123,9 +1138,14 @@ _SliderPresenter::DrawSliderBarNumber(int value)
        int handleNumberSize = 0;
        Color textColor;
        String text;
+       TextSimple* pSimpleText = null;
        int valueLength = 0;
        _ControlOrientation orientation = _ControlManager::GetInstance()->GetOrientation();
 
+       Canvas* pHandleCanvas = __pSlider->GetHandleCanvasN();
+       r = GetLastResult();
+       SysTryReturnResult(NID_UI_CTRL, pHandleCanvas != null, r, "Propagating.");
+
        if (!__pSlider->IsEnabled())  // disabled
        {
                textColor = __handleTextDisabledColor;
@@ -1143,10 +1163,17 @@ _SliderPresenter::DrawSliderBarNumber(int value)
                textColor = __handleTextColor;
        }
 
-       FloatDimension textDim(0.0f, 0.0f);
        text.Append(value);
        valueLength = text.GetLength();
 
+       pSimpleText = new (std::nothrow) TextSimple(const_cast<wchar_t*>(text.GetPointer()), valueLength);
+
+       if(__pSlider->IsEnabled())
+       {
+               pSimpleText->SetTextShadowEnabled(true);
+               pSimpleText->SetTextShadowOffset(FloatPoint(0.0f, -1.0f));
+       }
+
        if (valueLength == SLIDER_HANDLE_THREE_DIGIT)
        {
                r = GET_SHAPE_CONFIG(SLIDER::HANDLE_THREE_DIGIT_TEXT_SIZE, orientation, handleNumberSize);
@@ -1165,19 +1192,13 @@ _SliderPresenter::DrawSliderBarNumber(int value)
 
        (_FontImpl::GetInstance(*__pFont))->SetSize(handleNumberSize);
 
-       Canvas* pHandleCanvas = __pSlider->GetHandleCanvasN();
-       r = GetLastResult();
-       SysTryReturnResult(NID_UI_CTRL, pHandleCanvas != null, r, "Propagating.");
-
-       pHandleCanvas->SetFont(*__pFont);
-       __pFont->GetTextExtent(text, valueLength, textDim);
-
-       FloatPoint textPoint;
-       textPoint.x = (__handleRect.width - textDim.width) / 2.0f;
-       textPoint.y = (__handleRect.height - textDim.height) / 2.0f;
-
-       pHandleCanvas->SetForegroundColor(textColor);
-       pHandleCanvas->DrawText(textPoint, text);
+       __pHandleTextObject->RemoveAll();
+       __pHandleTextObject->AppendElement(*pSimpleText);
+       __pHandleTextObject->SetForegroundColor(textColor, 0, valueLength);
+       __pHandleTextObject->SetBounds(pHandleCanvas->GetBounds());
+       __pHandleTextObject->SetAlignment(TEXT_OBJECT_ALIGNMENT_CENTER | TEXT_OBJECT_ALIGNMENT_MIDDLE);
+       __pHandleTextObject->SetFont(__pFont, 0, valueLength);
+       __pHandleTextObject->Draw(*_CanvasImpl::GetInstance(*pHandleCanvas));
 
        delete pHandleCanvas;
        pHandleCanvas = null;
index 10347de..c429d53 100644 (file)
@@ -150,6 +150,7 @@ private:
 
        Tizen::Graphics::Font* __pFont;
        Tizen::Graphics::_Text::TextObject* __pTitleTextObject;
+       Tizen::Graphics::_Text::TextObject* __pHandleTextObject;
 
        int __handleX;
        int __prevSliderValue;