GUI 3.6 applied in EditDate & EditTime
[platform/framework/native/uifw.git] / src / ui / controls / FUiCtrl_EditTimePresenter.cpp
old mode 100755 (executable)
new mode 100644 (file)
index 2fa2386..26b4994
@@ -2,14 +2,14 @@
 // Open Service Platform
 // Copyright (c) 2012-2013 Samsung Electronics Co., Ltd.
 //
-// Licensed under the Flora License, Version 1.0 (the License);
+// Licensed under the Apache License, Version 2.0 (the License);
 // you may not use this file except in compliance with the License.
 // You may obtain a copy of the License at
 //
-//     http://floralicense.org/license/
+//     http://www.apache.org/licenses/LICENSE-2.0/
 //
 // Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an AS IS BASIS,
+// distributed under the License is distributed on an ”AS IS” BASIS,
 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 // See the License for the specific language governing permissions and
 // limitations under the License.
@@ -48,8 +48,6 @@ _EditTimePresenter::_EditTimePresenter(const String& title)
        , __pEditTime(null)
        , __bounds(FloatRectangle())
        , __titleBounds(FloatRectangle())
-       , __hourTouchBounds(FloatRectangle())
-       , __minuteTouchBounds(FloatRectangle())
        , __ampmString(String())
        , __hourString(String())
        , __minuteString(String())
@@ -64,11 +62,19 @@ _EditTimePresenter::_EditTimePresenter(const String& title)
        , __pAmPmBgNormalColorReplacementBitmap(null)
        , __pAmPmBgDisabledColorReplacementBitmap(null)
        , __pAmPmBgPressedColorReplacementBitmap(null)
+       , __pAmPmBgHighlightedColorReplacementBitmap(null)
        , __pAmPmBgEffectNomralBitmap(null)
        , __pAmPmBgEffectPressedBitmap(null)
        , __pAmPmBgEffectDisabledBitmap(null)
        , __pColonColorReplacementBitmap(null)
        , __pColonDisabledColorReplacementBitmap(null)
+       , __pContentBgNormalColorReplacementBitmap(null)
+       , __pContentBgDisabledColorReplacementBitmap(null)
+       , __pContentBgPressedColorReplacementBitmap(null)
+       , __pContentBgHighlightedColorReplacementBitmap(null)
+       , __pContentBgEffectNormalBitmap(null)
+       , __pContentBgEffectPressedBitmap(null)
+       , __pContentBgEffectDisabledBitmap(null)
        , __pContentProvider(null)
        , __textObject()
        , __pFont(null)
@@ -98,6 +104,9 @@ _EditTimePresenter::~_EditTimePresenter(void)
        delete __pAmPmBgPressedColorReplacementBitmap;
        __pAmPmBgPressedColorReplacementBitmap = null;
 
+       delete __pAmPmBgHighlightedColorReplacementBitmap;
+       __pAmPmBgHighlightedColorReplacementBitmap = null;
+
        delete __pAmPmBgEffectNomralBitmap;
        __pAmPmBgEffectNomralBitmap = null;
 
@@ -112,6 +121,27 @@ _EditTimePresenter::~_EditTimePresenter(void)
 
        delete __pColonDisabledColorReplacementBitmap;
        __pColonDisabledColorReplacementBitmap = null;
+
+       delete __pContentBgNormalColorReplacementBitmap;
+       __pContentBgNormalColorReplacementBitmap = null;
+
+       delete __pContentBgDisabledColorReplacementBitmap;
+       __pContentBgDisabledColorReplacementBitmap = null;
+
+       delete __pContentBgPressedColorReplacementBitmap;
+       __pContentBgPressedColorReplacementBitmap = null;
+
+       delete __pContentBgHighlightedColorReplacementBitmap;
+       __pContentBgHighlightedColorReplacementBitmap = null;
+
+       delete __pContentBgEffectNormalBitmap;
+       __pContentBgEffectNormalBitmap = null;
+
+       delete __pContentBgEffectPressedBitmap;
+       __pContentBgEffectPressedBitmap = null;
+
+       delete __pContentBgEffectDisabledBitmap;
+       __pContentBgEffectDisabledBitmap = null;
 }
 
 _EditTimePresenter*
@@ -287,9 +317,9 @@ _EditTimePresenter::GetDisplayAreaBoundsFromHoursStyle(_DateTimeId displayBoxId)
 
        FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
 
-       float width = 0.0f;
+       float editTimeHeight = 0.0f;
        float colonWidth = 0.0f;
-       float margin = 0.0f;
+       float timeAmPmMargin = 0.0f;
        float colonMargin = 0.0f;
        float timeElementWidth = 0.0f;
        float amPmHeight = 0.0f;
@@ -297,23 +327,23 @@ _EditTimePresenter::GetDisplayAreaBoundsFromHoursStyle(_DateTimeId displayBoxId)
        float titleTimeMargin = 0.0f;
        float leftMargin = 0.0f;
 
-       GET_SHAPE_CONFIG(EDITTIME::TIME_WIDTH, __pEditTime->GetOrientation(), width);
-       GET_SHAPE_CONFIG(EDITTIME::HEIGHT, __pEditTime->GetOrientation(), bounds.height);
+       GET_SHAPE_CONFIG(EDITTIME::HEIGHT, __pEditTime->GetOrientation(), editTimeHeight);
        GET_SHAPE_CONFIG(EDITTIME::COLON_WIDTH, __pEditTime->GetOrientation(), colonWidth);
-       GET_SHAPE_CONFIG(EDITTIME::TIME_AMPM_MARGIN, __pEditTime->GetOrientation(), margin);
+       GET_SHAPE_CONFIG(EDITTIME::TIME_AMPM_MARGIN, __pEditTime->GetOrientation(), timeAmPmMargin);
        GET_SHAPE_CONFIG(EDITTIME::COLON_MARGIN, __pEditTime->GetOrientation(), colonMargin);
-       GET_SHAPE_CONFIG(EDITTIME::HOUR_MINUTE_WIDTH, __pEditTime->GetOrientation(), timeElementWidth);
        GET_SHAPE_CONFIG(EDITTIME::AMPM_HEIGHT, __pEditTime->GetOrientation(), amPmHeight);
        GET_SHAPE_CONFIG(EDITTIME::TITLE_TIME_MARGIN, __pEditTime->GetOrientation(), titleTimeMargin);
        GET_SHAPE_CONFIG(EDITTIME::TIME_HEIGHT, __pEditTime->GetOrientation(), timeHeight);
 
-       leftMargin = GetLeftMargin();
+       GET_SHAPE_CONFIG(EDITTIME::TIME_TEXT_LEFT_MARGIN, __pEditTime->GetOrientation(), leftMargin);
 
        if (__pEditTime->GetBoundsF().height > bounds.height)
        {
-               bounds.height = __pEditTime->GetBoundsF().height;
+               editTimeHeight = __pEditTime->GetBoundsF().height;
        }
 
+       bounds.y = (editTimeHeight - timeHeight) / 2.0f;
+
        if (!__title.IsEmpty())
        {
                if (displayBoxId == DATETIME_ID_AMPM)
@@ -323,16 +353,13 @@ _EditTimePresenter::GetDisplayAreaBoundsFromHoursStyle(_DateTimeId displayBoxId)
                else
                {
                        bounds.y = __titleBounds.y + __titleBounds.height + titleTimeMargin;
-                       bounds.height = timeHeight;
                }
        }
 
-       if (__pEditTime->GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
-       {
-               leftMargin = 0.0f;
-       }
+       bounds.x = leftMargin;
+       bounds.height = timeHeight;
 
-       bounds.x = leftMargin + ((width - (2.0f * timeElementWidth + colonWidth + 2.0f * colonMargin)) / 2.0f);
+       timeElementWidth = GetTimeElementWidth();
 
        if (displayBoxId == DATETIME_ID_HOUR)
        {
@@ -340,16 +367,16 @@ _EditTimePresenter::GetDisplayAreaBoundsFromHoursStyle(_DateTimeId displayBoxId)
        }
        else if (displayBoxId == DATETIME_ID_MINUTE)
        {
-               bounds.x = bounds.x + timeElementWidth + colonWidth + 2.0f * colonMargin;
+               bounds.x = bounds.x + timeElementWidth + colonWidth + (2.0f * colonMargin);
                bounds.width = timeElementWidth;
        }
        else if (displayBoxId == DATETIME_ID_AMPM)
        {
-               bounds.x = leftMargin + width + margin;
+               bounds.x = leftMargin + (2.0f * timeElementWidth) + colonWidth + (2.0f * colonMargin) + timeAmPmMargin;
 
                if (__title.IsEmpty())
                {
-                       bounds.y = bounds.y + (bounds.height - amPmHeight) / 2.0f;
+                       bounds.y = (editTimeHeight - amPmHeight) / 2.0f;
                }
 
                GET_SHAPE_CONFIG(EDITTIME::AMPM_WIDTH, __pEditTime->GetOrientation(), bounds.width);
@@ -400,17 +427,11 @@ _EditTimePresenter::GetTextWidth(_DateTimeId boxId) const
 void
 _EditTimePresenter::SetTitleBounds(void)
 {
-       if (__pEditTime->GetOrientation() == _CONTROL_ORIENTATION_LANDSCAPE)
-       {
-               GET_SHAPE_CONFIG(EDITTIME::TIME_TEXT_LEFT_MARGIN, __pEditTime->GetOrientation(), __titleBounds.x);
-       }
-       else
-       {
-               __titleBounds.x = GetLeftMargin();
-       }
+       GET_SHAPE_CONFIG(EDITTIME::TITLE_TEXT_LEFT_MARGIN, __pEditTime->GetOrientation(), __titleBounds.x);
        GET_SHAPE_CONFIG(EDITTIME::WIDTH, __pEditTime->GetOrientation(), __titleBounds.width);
        GET_SHAPE_CONFIG(EDITTIME::TITLE_HEIGHT, __pEditTime->GetOrientation(), __titleBounds.height);
 
+       __titleBounds.width = __titleBounds.width - __titleBounds.x;
        return;
 }
 
@@ -427,14 +448,26 @@ _EditTimePresenter::LoadResource(void)
 
        Color buttonNormalBgColor;
        Color buttonDisabledBgColor;
-       Color buttonNormalPressedColor;
+       Color buttonPressedColor;
+       Color buttonHighlightedColor;
+       Color contentNormalBgColor;
+       Color contentDisabledBgColor;
+       Color contentPressedColor;
+       Color contentHighlightedColor;
        Color colonTextColor;
        Color colonTextDisabledColor;
        Bitmap* pTempBitmap = null;
 
        GET_COLOR_CONFIG(EDITTIME::BUTTON_BG_NORMAL, buttonNormalBgColor);
-       GET_COLOR_CONFIG(EDITTIME::BUTTON_BG_PRESSED, buttonNormalPressedColor);
+       GET_COLOR_CONFIG(EDITTIME::BUTTON_BG_PRESSED, buttonPressedColor);
        GET_COLOR_CONFIG(EDITTIME::BUTTON_BG_DISABLED, buttonDisabledBgColor);
+       GET_COLOR_CONFIG(EDITTIME::BUTTON_BG_HIGHLIGHTED, buttonHighlightedColor);
+
+       GET_COLOR_CONFIG(EDITTIME::CONTENT_BG_NORMAL, contentNormalBgColor);
+       GET_COLOR_CONFIG(EDITTIME::CONTENT_BG_DISABLED, contentDisabledBgColor);
+       GET_COLOR_CONFIG(EDITTIME::CONTENT_BG_PRESSED, contentPressedColor);
+       GET_COLOR_CONFIG(EDITTIME::CONTENT_BG_HIGHLIGHTED, contentHighlightedColor);
+
        GET_COLOR_CONFIG(EDITTIME::TEXT_NORMAL, colonTextColor);
        GET_COLOR_CONFIG(EDITTIME::TEXT_DISABLED, colonTextDisabledColor);
 
@@ -479,10 +512,60 @@ _EditTimePresenter::LoadResource(void)
        r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
        SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
 
-       __pAmPmBgPressedColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), buttonNormalPressedColor);
+       __pAmPmBgPressedColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), buttonPressedColor);
        SysTryCatch(NID_UI_CTRL, (__pAmPmBgPressedColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
                                        "[%s] Propagating.", GetErrorMessage(GetLastResult()));
 
+       delete pTempBitmap;
+       pTempBitmap = null;
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       __pAmPmBgHighlightedColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), buttonHighlightedColor);
+       SysTryCatch(NID_UI_CTRL, (__pAmPmBgHighlightedColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
+                                       "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+       delete pTempBitmap;
+       pTempBitmap = null;
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       __pContentBgNormalColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), contentNormalBgColor);
+       SysTryCatch(NID_UI_CTRL, (__pContentBgNormalColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
+                               "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+       delete pTempBitmap;
+       pTempBitmap = null;
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       __pContentBgPressedColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), contentPressedColor);
+       SysTryCatch(NID_UI_CTRL, (__pContentBgPressedColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
+                               "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+       delete pTempBitmap;
+       pTempBitmap = null;
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       __pContentBgDisabledColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), contentDisabledBgColor);
+       SysTryCatch(NID_UI_CTRL, (__pContentBgDisabledColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
+                                       "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
+       delete pTempBitmap;
+       pTempBitmap = null;
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       __pContentBgHighlightedColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), contentHighlightedColor);
+       SysTryCatch(NID_UI_CTRL, (__pContentBgHighlightedColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
+                                       "[%s] Propagating.", GetErrorMessage(GetLastResult()));
+
        r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pAmPmBgEffectNomralBitmap);
        SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
 
@@ -492,6 +575,15 @@ _EditTimePresenter::LoadResource(void)
        r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_EFFECT_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pAmPmBgEffectDisabledBitmap);
        SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
 
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_EFFECT_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pContentBgEffectNormalBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_EFFECT_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, __pContentBgEffectPressedBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
+       r = GET_BITMAP_CONFIG_N(EDITTIME::CONTENT_BG_EFFECT_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, __pContentBgEffectDisabledBitmap);
+       SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+
 
        delete pTempBitmap;
        pTempBitmap = null;
@@ -508,15 +600,48 @@ CATCH:
        delete __pAmPmBgPressedColorReplacementBitmap;
        __pAmPmBgPressedColorReplacementBitmap = null;
 
+       delete __pAmPmBgDisabledColorReplacementBitmap;
+       __pAmPmBgDisabledColorReplacementBitmap = null;
+
+       delete __pAmPmBgHighlightedColorReplacementBitmap;
+       __pAmPmBgHighlightedColorReplacementBitmap = null;
+
+       delete __pContentBgNormalColorReplacementBitmap;
+       __pContentBgNormalColorReplacementBitmap = null;
+
+       delete __pContentBgPressedColorReplacementBitmap;
+       __pContentBgPressedColorReplacementBitmap = null;
+
+       delete __pContentBgDisabledColorReplacementBitmap;
+       __pContentBgDisabledColorReplacementBitmap = null;
+
+       delete __pContentBgHighlightedColorReplacementBitmap;
+       __pContentBgHighlightedColorReplacementBitmap = null;
+
        delete __pAmPmBgEffectNomralBitmap;
        __pAmPmBgEffectNomralBitmap = null;
 
        delete __pAmPmBgEffectPressedBitmap;
        __pAmPmBgEffectPressedBitmap = null;
 
+       delete __pAmPmBgEffectDisabledBitmap;
+       __pAmPmBgEffectDisabledBitmap = null;
+
+       delete __pContentBgEffectNormalBitmap;
+       __pContentBgEffectNormalBitmap = null;
+
+       delete __pContentBgEffectPressedBitmap;
+       __pContentBgEffectPressedBitmap = null;
+
+       delete __pContentBgEffectDisabledBitmap;
+       __pContentBgEffectDisabledBitmap = null;
+
        delete __pColonColorReplacementBitmap;
        __pColonColorReplacementBitmap = null;
 
+       delete __pColonDisabledColorReplacementBitmap;
+       __pColonDisabledColorReplacementBitmap = null;
+
        return r;
 }
 
@@ -544,54 +669,39 @@ _EditTimePresenter::DrawResourceBitmap(Canvas& canvas, const FloatRectangle& bou
        return r;
 }
 
-void
-_EditTimePresenter::CalculateTouchAreaBounds(const FloatRectangle hourBounds, const FloatRectangle minuteBounds)
-{
-       __hourTouchBounds.width = GetTextWidth(DATETIME_ID_HOUR);
-       __hourTouchBounds.x     = hourBounds.x + (hourBounds.width - __hourTouchBounds.width) / 2.0f;
-       __hourTouchBounds.y = hourBounds.y;
-       __hourTouchBounds.height = hourBounds.height;
-
-       __minuteTouchBounds.width = GetTextWidth(DATETIME_ID_MINUTE);
-       __minuteTouchBounds.x = minuteBounds.x + (minuteBounds.width - __minuteTouchBounds.width) / 2.0f;
-       __minuteTouchBounds.y = minuteBounds.y;
-       __minuteTouchBounds.height = minuteBounds.height;
-
-       return;
-}
-
 float
-_EditTimePresenter::GetLeftMargin(void) const
+_EditTimePresenter::GetTimeElementWidth(void) const
 {
        FloatRectangle bounds;
        FloatDimension minSize;
        bounds = __pEditTime->GetBoundsF();
 
-       float leftMargin = 0.0f;
-       float leftMinMargin = 0.0f;
-       float width = 0.0f;
+       float timeElementWidth = 0.0f;
+       float timeElementMinWidth = 0.0f;
+       float editTimeWidth = 0.0f;
 
-       GET_SHAPE_CONFIG(EDITTIME::TIME_TEXT_LEFT_MARGIN, __pEditTime->GetOrientation(), leftMargin);
-       GET_SHAPE_CONFIG(EDITTIME::TIME_TEXT_LEFT_MIN_MARGIN, __pEditTime->GetOrientation(), leftMinMargin);
-       GET_SHAPE_CONFIG(EDITTIME::WIDTH, __pEditTime->GetOrientation(), width);
+       GET_SHAPE_CONFIG(EDITTIME::HOUR_MINUTE_WIDTH, __pEditTime->GetOrientation(), timeElementWidth);
+       GET_SHAPE_CONFIG(EDITTIME::HOUR_MINUTE_MIN_WIDTH, __pEditTime->GetOrientation(), timeElementMinWidth);
+       GET_SHAPE_CONFIG(EDITTIME::WIDTH, __pEditTime->GetOrientation(), editTimeWidth);
 
        GET_DIMENSION_CONFIG(EDITTIME::MIN_SIZE, __pEditTime->GetOrientation(), minSize);
 
-       if (bounds.width >= width)
+       if (bounds.width >= editTimeWidth)
        {
-               return leftMargin;
+               return timeElementWidth;
        }
 
        if (bounds.width <= minSize.width)
        {
-               leftMargin = leftMinMargin;
+               timeElementWidth = timeElementMinWidth;
        }
-       else if (bounds.width < width && bounds.width > minSize.width)
+       else if (bounds.width < editTimeWidth && bounds.width > minSize.width)
        {
-               leftMargin = leftMargin - ((leftMargin - leftMinMargin) / (width - minSize.width)) * (width - bounds.width);
+               timeElementWidth = timeElementWidth -
+                               ((timeElementWidth - timeElementMinWidth) / (editTimeWidth - minSize.width)) * (editTimeWidth - bounds.width);
        }
 
-       return leftMargin;
+       return timeElementWidth;
 }
 
 result
@@ -733,8 +843,6 @@ _EditTimePresenter::Draw(void)
        r = DrawColon(*pCanvas, colonBounds);
        SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
 
-       CalculateTouchAreaBounds(hourBounds, minuteBounds);
-
        if (__24hours == false)
        {
                r = DrawResourceBitmap(*pCanvas, ampmBounds, pReplacementBitmap);
@@ -784,6 +892,7 @@ _EditTimePresenter::DrawTitle(Canvas& canvas)
        }
 
        (_FontImpl::GetInstance(*__pFont))->SetSize(__titleFontSize);
+       (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
        __titleObject.SetFont(__pFont, 0, __titleObject.GetTextLength());
 
        __titleObject.Draw(*_CanvasImpl::GetInstance(canvas));
@@ -792,6 +901,46 @@ _EditTimePresenter::DrawTitle(Canvas& canvas)
 }
 
 result
+_EditTimePresenter::DrawContentBitmap(Canvas& canvas, const FloatRectangle& bounds, _DateTimeId boxId)
+{
+       result r = E_SUCCESS;
+
+       bool isCustomBitmap = false;
+       Bitmap* pReplacementBitmap = null;
+       Bitmap* pEffectBitmap = null;
+
+       if (!__pEditTime->IsEnabled())
+       {
+               isCustomBitmap = IS_CUSTOM_BITMAP(EDITTIME::CONTENT_BG_DISABLED);
+               pReplacementBitmap = __pContentBgDisabledColorReplacementBitmap;
+               pEffectBitmap = __pContentBgEffectDisabledBitmap;
+       }
+       else if (__selectedId != boxId)
+       {
+               isCustomBitmap = IS_CUSTOM_BITMAP(EDITTIME::CONTENT_BG_NORMAL);
+               pReplacementBitmap = __pContentBgNormalColorReplacementBitmap;
+               pEffectBitmap = __pContentBgEffectNormalBitmap;
+       }
+       else
+       {
+               isCustomBitmap = IS_CUSTOM_BITMAP(EDITTIME::CONTENT_BG_PRESSED);
+               pReplacementBitmap = __pContentBgPressedColorReplacementBitmap;
+               pEffectBitmap = __pContentBgEffectPressedBitmap;
+       }
+
+       r = DrawResourceBitmap(canvas, bounds, pReplacementBitmap);
+       SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
+
+       if (!isCustomBitmap)
+       {
+               r = DrawResourceBitmap(canvas, bounds, pEffectBitmap);
+               SysTryReturn(NID_UI_CTRL, (r == E_SUCCESS), r, r, "[%s] Propagating.", GetErrorMessage(r));
+       }
+
+       return r;
+}
+
+result
 _EditTimePresenter::DrawText(Canvas& canvas, const FloatRectangle& bounds, const String& text, _DateTimeId boxId, float textSize)
 {
        result r = E_SUCCESS;
@@ -837,6 +986,11 @@ _EditTimePresenter::DrawText(Canvas& canvas, const FloatRectangle& bounds, const
                }
        }
 
+       if (boxId != DATETIME_ID_AMPM)
+       {
+               DrawContentBitmap(canvas, bounds, boxId);
+       }
+
        FloatRectangle drawAreaBounds(0.0f, 0.0f, 0.0f, 0.0f);
        drawAreaBounds = bounds;
 
@@ -847,19 +1001,22 @@ _EditTimePresenter::DrawText(Canvas& canvas, const FloatRectangle& bounds, const
        __textObject.RemoveAll();
 
        (_FontImpl::GetInstance(*__pFont))->SetSize(__timeFontSize);
+       (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_PLAIN);
 
        __textObject.AppendElement(*pSimpleText);
 
-       if (boxId == DATETIME_ID_AMPM)
+       if (boxId == __selectedId && boxId != DATETIME_ID_AMPM)
        {
-               (_FontImpl::GetInstance(*__pFont))->SetSize(textSize);
-               __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
+               (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
        }
-       else
+
+       if (boxId == DATETIME_ID_AMPM)
        {
-               __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
+               (_FontImpl::GetInstance(*__pFont))->SetSize(textSize);
        }
 
+       __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
+
        __textObject.SetForegroundColor(textColor, 0, __textObject.GetTextLength());
        __textObject.SetBounds(drawAreaBounds);
        __textObject.Draw(*_CanvasImpl::GetInstance(canvas));
@@ -873,22 +1030,27 @@ _EditTimePresenter::GetBoxIdFromPosition(const FloatPoint& point) const
        _DateTimeId displayBoxId = DATETIME_ID_NONE;
 
        FloatRectangle ampmBounds(0.0f, 0.0f, 0.0f, 0.0f);
+       FloatRectangle hoursBounds(0.0f, 0.0f, 0.0f, 0.0f);
+       FloatRectangle minutesBounds(0.0f, 0.0f, 0.0f, 0.0f);
 
        if (__24hours == false)
        {
                ampmBounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_AMPM);
        }
 
-       if (point.y < __hourTouchBounds.y || point.y > __hourTouchBounds.y + __hourTouchBounds.height)
+       hoursBounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_HOUR);
+       minutesBounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_MINUTE);
+
+       if (point.y < hoursBounds.y || point.y > hoursBounds.y + hoursBounds.height)
        {
                return displayBoxId;
        }
 
-       if (__hourTouchBounds.Contains(point) == true)
+       if (hoursBounds.Contains(point) == true)
        {
                displayBoxId = DATETIME_ID_HOUR;
        }
-       else if (__minuteTouchBounds.Contains(point) == true)
+       else if (minutesBounds.Contains(point) == true)
        {
                displayBoxId = DATETIME_ID_MINUTE;
        }
@@ -1309,6 +1471,12 @@ _EditTimePresenter::Animate(void)
        VisualElementPropertyAnimation* pNewBoundsAnimation = null;
        VisualElementPropertyAnimation* pOldBoundsAnimation = null;
        Canvas *pCanvas = null;
+       Color contentBgColor;
+       Color textNormalColor;
+       Color textPressedColor;
+
+       GET_COLOR_CONFIG(EDITTIME::CONTENT_BG_PRESSED, contentBgColor);
+       GET_COLOR_CONFIG(EDITTIME::TEXT_PRESSED, textPressedColor);
 
        __pFont->GetTextExtent(newValue, newValue.GetLength(), newTextDim);
        __pFont->GetTextExtent(__lastSelectedValue, __lastSelectedValue.GetLength(), oldTextDim);
@@ -1405,7 +1573,7 @@ _EditTimePresenter::Animate(void)
        }
 
        pCanvas = pEditTimeElement->GetCanvasN(rect);
-       pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+       pCanvas->SetBackgroundColor(contentBgColor);
        pCanvas->Clear();
        delete pCanvas;
 
@@ -1438,6 +1606,8 @@ _EditTimePresenter::Animate(void)
 
        pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
        pCanvas->Clear();
+       pCanvas->SetForegroundColor(textPressedColor);
+       (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
        pCanvas->SetFont(*__pFont);
        pCanvas->DrawText(FloatPoint(0.0f, 0.0f), __lastSelectedValue);
 
@@ -1450,6 +1620,8 @@ _EditTimePresenter::Animate(void)
 
        pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
        pCanvas->Clear();
+       pCanvas->SetForegroundColor(textPressedColor);
+       (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
        pCanvas->SetFont(*__pFont);
        pCanvas->DrawText(FloatPoint(0.0f, 0.0f), newValue);