// 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.
, __pEditTime(null)
, __bounds(FloatRectangle())
, __titleBounds(FloatRectangle())
- , __hourTouchBounds(FloatRectangle())
- , __minuteTouchBounds(FloatRectangle())
, __ampmString(String())
, __hourString(String())
, __minuteString(String())
, __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)
, __timeFontSize(0.0f)
, __isAnimating(false)
, __isEditTimeInitialized(false)
+ , __focusStatus(FOCUS_NONE)
+ , __isEnterKeyPressed(false)
+ , __isFocused(false)
{
}
delete __pAmPmBgPressedColorReplacementBitmap;
__pAmPmBgPressedColorReplacementBitmap = null;
+ delete __pAmPmBgHighlightedColorReplacementBitmap;
+ __pAmPmBgHighlightedColorReplacementBitmap = null;
+
delete __pAmPmBgEffectNomralBitmap;
__pAmPmBgEffectNomralBitmap = null;
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*
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;
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)
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)
{
}
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);
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::WIDTH, __pEditTime->GetOrientation(), __titleBounds.width);
+ GET_SHAPE_CONFIG(EDITTIME::TITLE_TEXT_LEFT_MARGIN, __pEditTime->GetOrientation(), __titleBounds.x);
GET_SHAPE_CONFIG(EDITTIME::TITLE_HEIGHT, __pEditTime->GetOrientation(), __titleBounds.height);
+ __titleBounds.width = __pEditTime->GetBoundsF().width - __titleBounds.x;
return;
}
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);
r = GET_BITMAP_CONFIG_N(EDITTIME::COLON_BG_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
SysTryReturnResult(NID_UI_CTRL, (r == E_SUCCESS), r, "[%s] Propagating.", GetErrorMessage(r));
- __pColonColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_WHITE),
+ __pColonColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA),
colonTextColor);
SysTryCatch(NID_UI_CTRL, (__pColonColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
"[%s] Propagating.", GetErrorMessage(GetLastResult()));
- __pColonDisabledColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_WHITE),
+ __pColonDisabledColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA),
colonTextDisabledColor);
SysTryCatch(NID_UI_CTRL, (__pColonDisabledColorReplacementBitmap != null), r = GetLastResult(), GetLastResult(),
"[%s] Propagating.", GetErrorMessage(GetLastResult()));
delete pTempBitmap;
pTempBitmap = null;
- r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_PRESSED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+ r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
__pAmPmBgDisabledColorReplacementBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTempBitmap, Color::GetColor(COLOR_ID_MAGENTA), buttonDisabledBgColor);
delete pTempBitmap;
pTempBitmap = null;
- r = GET_BITMAP_CONFIG_N(EDITTIME::BUTTON_BG_DISABLED, BITMAP_PIXEL_FORMAT_ARGB8888, pTempBitmap);
+ 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));
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;
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;
}
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
__titleObject.SetAlignment(TEXT_OBJECT_ALIGNMENT_LEFT | TEXT_OBJECT_ALIGNMENT_MIDDLE);
__titleObject.SetWrap(TEXT_OBJECT_WRAP_TYPE_NONE);
__titleObject.SetAction(TEXT_OBJECT_ACTION_TYPE_ABBREV);
+ __titleObject.SetTextObjectEllipsisType(TEXT_OBJECT_ELLIPSIS_TYPE_TAIL);
return r;
}
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);
SysTryCatch(NID_UI_CTRL, r == E_SUCCESS, , r, "[%s] Propagating.", GetErrorMessage(r));
}
+ if (__pEditTime->IsFocused())
+ {
+ DrawFocus();
+ }
+
CATCH:
delete pCanvas;
+ return r;
+}
+
+result
+_EditTimePresenter::DrawFocus(void)
+{
+ FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
+
+ Canvas* pCanvas = __pEditTime->GetCanvasN();
+ SysTryReturnResult(NID_UI_CTRL, (pCanvas != null), E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Unable to create canvas.");
+
+ if (__focusStatus == FOCUS_HOUR)
+ {
+ bounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_HOUR);
+ }
+ else if (__focusStatus == FOCUS_MINUTE)
+ {
+ bounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_MINUTE);
+ }
+ else if (__focusStatus == FOCUS_AMPM)
+ {
+ bounds = GetDisplayAreaBoundsFromHoursStyle(DATETIME_ID_AMPM);
+ }
+ result r = E_SUCCESS;
+
+ bounds.y = bounds.y - (__adjustFocusHeight / 2.0f);
+ bounds.height = bounds.height + __adjustFocusHeight;
+
+ if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*__pContentBgHighlightedColorReplacementBitmap))
+ {
+ r = pCanvas->DrawNinePatchedBitmap(bounds, *__pContentBgHighlightedColorReplacementBitmap);
+ SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+ }
+ else
+ {
+ r = pCanvas->DrawBitmap(bounds, *__pContentBgHighlightedColorReplacementBitmap);
+ SysTryCatch(NID_UI_CTRL, (r == E_SUCCESS), , r, "[%s] Propagating.", GetErrorMessage(r));
+ }
+
+ delete pCanvas;
+ return r;
+CATCH:
+ delete pCanvas;
return r;
}
}
(_FontImpl::GetInstance(*__pFont))->SetSize(__titleFontSize);
+ (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
__titleObject.SetFont(__pFont, 0, __titleObject.GetTextLength());
__titleObject.Draw(*_CanvasImpl::GetInstance(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)
+ {
+ if (__pEditTime->GetDateTimeBar() != null && __pEditTime->GetDateTimeBar()->IsActivated() &&
+ (GetLastSelectedId() == boxId))
+ {
+ isCustomBitmap = IS_CUSTOM_BITMAP(EDITTIME::CONTENT_BG_PRESSED);
+ pReplacementBitmap = __pContentBgPressedColorReplacementBitmap;
+ pEffectBitmap = __pContentBgEffectPressedBitmap;
+ }
+ else
+ {
+ 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;
Color textColor;
+ (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_PLAIN);
if (!__pEditTime->IsEnabled())
{
(GetLastSelectedId() == boxId))
{
GET_COLOR_CONFIG(EDITTIME::TEXT_PRESSED, textColor);
+ (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
}
if (boxId == DATETIME_ID_AMPM)
else
{
GET_COLOR_CONFIG(EDITTIME::TEXT_PRESSED, textColor);
+ (_FontImpl::GetInstance(*__pFont))->SetStyle(FONT_STYLE_BOLD);
}
}
}
+ if (boxId != DATETIME_ID_AMPM)
+ {
+ DrawContentBitmap(canvas, bounds, boxId);
+ }
+
FloatRectangle drawAreaBounds(0.0f, 0.0f, 0.0f, 0.0f);
drawAreaBounds = bounds;
__textObject.RemoveAll();
(_FontImpl::GetInstance(*__pFont))->SetSize(__timeFontSize);
-
__textObject.AppendElement(*pSimpleText);
if (boxId == DATETIME_ID_AMPM)
{
(_FontImpl::GetInstance(*__pFont))->SetSize(textSize);
- __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
- }
- else
- {
- __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
}
+ __textObject.SetFont(__pFont, 0, __textObject.GetTextLength());
+
__textObject.SetForegroundColor(textColor, 0, __textObject.GetTextLength());
__textObject.SetBounds(drawAreaBounds);
__textObject.Draw(*_CanvasImpl::GetInstance(canvas));
_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;
}
return __lastSelectedId;
}
+void
+_EditTimePresenter::SetFocusedElement()
+{
+ if (__focusStatus == FOCUS_NONE || __focusStatus == FOCUS_AMPM)
+ {
+ __focusStatus = FOCUS_HOUR;
+ }
+
+ return;
+}
+
+void
+_EditTimePresenter::SetFocusState(bool isFocused)
+{
+ __isFocused = isFocused;
+ return;
+}
+
+bool
+_EditTimePresenter::OnFocusLost(const _Control &source)
+{
+ if (!__isEnterKeyPressed || __focusStatus == FOCUS_AMPM)
+ {
+ __focusStatus = FOCUS_NONE;
+ }
+ else
+ {
+ __isEnterKeyPressed = false;
+ }
+ __pEditTime->Invalidate();
+ return true;
+}
+
+bool
+_EditTimePresenter::OnKeyPressed(const _Control& source, const _KeyInfo& keyInfo)
+{
+ if (!__isFocused)
+ {
+ return false;
+ }
+ _KeyCode keyCode = keyInfo.GetKeyCode();
+
+ int minValue = -1;
+ int maxValue = -1;
+ int displayValue = -1;
+
+ _DateTimeId boxId = DATETIME_ID_HOUR;
+
+ switch (keyCode)
+ {
+ case _KEY_RIGHT:
+ {
+ __isEnterKeyPressed = false;
+ if (__focusStatus == FOCUS_HOUR)
+ {
+ __focusStatus = FOCUS_MINUTE;
+ }
+ else if (__focusStatus == FOCUS_MINUTE)
+ {
+ if (!Is24HourNotationEnabled())
+ {
+ __focusStatus = FOCUS_AMPM;
+ }
+ }
+
+ __pEditTime->Invalidate();
+ break;
+ }
+
+ case _KEY_LEFT:
+ {
+ __isEnterKeyPressed = false;
+ if (__focusStatus == FOCUS_MINUTE)
+ {
+ __focusStatus = FOCUS_HOUR;
+ }
+ else if (__focusStatus == FOCUS_AMPM)
+ {
+ __focusStatus = FOCUS_MINUTE;
+ }
+ __pEditTime->Invalidate();
+ break;
+ }
+
+ case _KEY_ENTER:
+ {
+ __isEnterKeyPressed = true;
+ if (__focusStatus == FOCUS_HOUR)
+ {
+ boxId = DATETIME_ID_HOUR;
+ if (__pEditTime->GetDateTimeBar() != null)
+ {
+ if (!Is24HourNotationEnabled())
+ {
+ if (GetHour() == 0)
+ {
+ minValue = DATETIME_HOUR_MIN + 1;
+ maxValue = DATETIME_HOUR_MAX_FOR_24NOTATION;
+ displayValue = DATETIME_HOUR_MAX_FOR_24NOTATION;
+ }
+ else if (GetHour() > DATETIME_HOUR_MAX_FOR_24NOTATION)
+ {
+ minValue = DATETIME_HOUR_MIN + 1;
+ maxValue = DATETIME_HOUR_MAX_FOR_24NOTATION;
+ displayValue = __pEditTime->GetHour() - DATETIME_HOUR_MAX_FOR_24NOTATION;
+ }
+ else
+ {
+ minValue = DATETIME_HOUR_MIN + 1;
+ maxValue = DATETIME_HOUR_MAX_FOR_24NOTATION;
+ displayValue = __pEditTime->GetHour();
+ }
+ }
+ else
+ {
+ minValue = DATETIME_HOUR_MIN;
+ maxValue = DATETIME_HOUR_MAX;
+ displayValue = __pEditTime->GetHour();
+ }
+
+ if (__pEditTime->GetDateTimeBar()->GetItemCount() > 0)
+ {
+ __pEditTime->GetDateTimeBar()->RemoveAllItems();
+ }
+ }
+ }
+ else if (__focusStatus == FOCUS_MINUTE)
+ {
+ if (__pEditTime->GetDateTimeBar() != null)
+ {
+ minValue = DATETIME_MINUTE_MIN;
+ maxValue = DATETIME_MINUTE_MAX;
+ displayValue = __pEditTime->GetMinute();
+
+ if (__pEditTime->GetDateTimeBar()->GetItemCount() > 0)
+ {
+ __pEditTime->GetDateTimeBar()->RemoveAllItems();
+ }
+ }
+ boxId = DATETIME_ID_MINUTE;
+ }
+ else if (__focusStatus == FOCUS_AMPM)
+ {
+ SetAmEnabled(!GetAmEnabled());
+ __pEditTime->FireTimeChangeEvent(TIME_INTERNAL_CHANGE_SAVED);
+ boxId = DATETIME_ID_AMPM;
+
+ DrawFocus();
+ }
+
+ if ((__pEditTime->GetDateTimeBar() != null) && (boxId != DATETIME_ID_AMPM))
+ {
+ FloatRectangle absoluteBounds = __pEditTime->GetAbsoluteBoundsF();
+
+ FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
+ bounds = GetDisplayAreaBoundsFromHoursStyle(boxId);
+ bounds.x += absoluteBounds.x;
+
+ __pEditTime->GetDateTimeBar()->SetInitialValue(minValue, maxValue, displayValue, boxId);
+ __pEditTime->GetDateTimeBar()->CalculateArrowBounds(bounds);
+ __pEditTime->GetDateTimeBar()->SetVisibleState(true);
+ __pEditTime->GetDateTimeBar()->Open();
+ UpdateLastSelectedValue(boxId, false);
+ }
+ break;
+ }
+
+ default:
+ {
+ return false;
+ }
+ }
+ return true;
+}
+
bool
_EditTimePresenter::OnTouchPressed(const _Control& source, const _TouchInfo& touchinfo)
{
return true;
}
+ UpdateLastSelectedValue(__selectedId, true);
+ if (GetLastSelectedId() == DATETIME_ID_AMPM)
+ {
+ return true;
+ }
+
+ Draw();
+
+ if ((__pEditTime->GetDateTimeBar() != null) && (boxId != DATETIME_ID_AMPM) && (GetLastSelectedId() != DATETIME_ID_NONE))
+ {
+ FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
+ bounds = GetDisplayAreaBoundsFromHoursStyle(GetLastSelectedId());
+ FloatRectangle absoluteBounds(0.0f, 0.0f, 0.0f, 0.0f);
+ absoluteBounds = __pEditTime->GetAbsoluteBoundsF();
+ bounds.x += absoluteBounds.x;
+
+ __pEditTime->GetDateTimeBar()->CalculateArrowBounds(bounds);
+
+ if (__pEditTime->GetDateTimeBar()->IsActivated())
+ {
+ __pEditTime->GetDateTimeBar()->RefreshItems();
+ }
+ else
+ {
+ __pEditTime->GetDateTimeBar()->SetVisibleState(true);
+ __pEditTime->GetDateTimeBar()->Open();
+ }
+ }
+
+ __selectedId = DATETIME_ID_NONE;
+ return true;
+}
- SetLastSelectedId(__selectedId);
+void
+_EditTimePresenter::UpdateLastSelectedValue(_DateTimeId boxId, bool isTouchPressed)
+{
+ __selectedId = boxId;
+ SetLastSelectedId(boxId);
__lastSelectedValue = "";
- _DateTimeUtils dateTimeUtils;
if (GetLastSelectedId() == DATETIME_ID_HOUR)
{
if (hours == DATETIME_HOUR_MIN)
{
- hours = hours + DATETIME_HOUR_MAX_FOR_24NOTATION;
+ hours = hours + DATETIME_HOUR_MAX_FOR_24NOTATION;
}
}
__lastSelectedValue.Format(10, L"%02d", hours);
- PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+ if (isTouchPressed)
+ {
+ PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+ }
}
else if (GetLastSelectedId() == DATETIME_ID_MINUTE)
{
__lastSelectedValue.Format(10, L"%02d", GetMinute());
- PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+ if (isTouchPressed)
+ {
+ PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+ }
}
else if (GetLastSelectedId() == DATETIME_ID_AMPM)
{
SetAmEnabled(!GetAmEnabled());
__pEditTime->FireTimeChangeEvent(TIME_INTERNAL_CHANGE_SAVED);
- __pEditTime->UpdateAccessibilityElement();
- PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
-
+ if (isTouchPressed)
+ {
+ __pEditTime->UpdateAccessibilityElement();
+ PLAY_FEEDBACK(_RESOURCE_FEEDBACK_PATTERN_TAP);
+ }
__selectedId = DATETIME_ID_NONE;
if (__pEditTime->GetDateTimeBar() != null && __pEditTime->GetDateTimeBar()->IsActivated())
__pEditTime->GetDateTimeBar()->SetVisibleState(false);
__pEditTime->GetDateTimeBar()->Close();
}
-
- Draw();
-
- return true;
- }
-
- Draw();
-
- if ((__pEditTime->GetDateTimeBar() != null) && (boxId != DATETIME_ID_AMPM) && (GetLastSelectedId() != DATETIME_ID_NONE))
- {
- FloatRectangle bounds(0.0f, 0.0f, 0.0f, 0.0f);
- bounds = GetDisplayAreaBoundsFromHoursStyle(GetLastSelectedId());
- FloatRectangle absoluteBounds(0.0f, 0.0f, 0.0f, 0.0f);
- absoluteBounds = __pEditTime->GetAbsoluteBoundsF();
- bounds.x += absoluteBounds.x;
-
- __pEditTime->GetDateTimeBar()->CalculateArrowBounds(bounds);
-
- if (__pEditTime->GetDateTimeBar()->IsActivated())
- {
- __pEditTime->GetDateTimeBar()->RefreshItems();
- }
- else
- {
- __pEditTime->GetDateTimeBar()->SetVisibleState(true);
- __pEditTime->GetDateTimeBar()->Open();
- }
}
__selectedId = DATETIME_ID_NONE;
- return true;
+ __pEditTime->Invalidate();
+ return;
}
bool
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);
}
pCanvas = pEditTimeElement->GetCanvasN(rect);
- pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
+ pCanvas->SetBackgroundColor(contentBgColor);
pCanvas->Clear();
delete pCanvas;
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);
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);