From aeeef8d900b11411884bc28b4fe5e347ba6eefe9 Mon Sep 17 00:00:00 2001 From: Myung Jin Kim Date: Fri, 28 Jun 2013 07:04:38 +0900 Subject: [PATCH] fix N_SE-40802 and apply New GUI Change-Id: Iecc7e682d3f2698e43a5ab5cf466e1e9be215625 --- src/ui/controls/FUiCtrl_Button.cpp | 78 +++++++++++++++- src/ui/controls/FUiCtrl_ButtonPresenter.cpp | 134 +++++++++++++++++++++++---- src/ui/controls/FUiCtrl_FooterImpl.cpp | 20 +--- src/ui/controls/FUiCtrl_HeaderImpl.cpp | 104 ++++++++++++--------- src/ui/controls/FUiCtrl_Label.cpp | 74 +++++++++------ src/ui/controls/FUiCtrl_Toolbar.cpp | 62 +++++++++++-- src/ui/controls/FUiCtrl_ToolbarPresenter.cpp | 5 +- src/ui/inc/FUiCtrl_Button.h | 8 ++ src/ui/inc/FUiCtrl_ButtonPresenter.h | 1 + src/ui/inc/FUiCtrl_Label.h | 3 + src/ui/inc/FUi_ResourceFooterConfig.h | 5 + src/ui/inc/FUi_ResourceHeaderConfig.h | 7 +- src/ui/resource/FUi_ResourceFooterConfig.cpp | 14 ++- src/ui/resource/FUi_ResourceHeaderConfig.cpp | 13 ++- 14 files changed, 398 insertions(+), 130 deletions(-) diff --git a/src/ui/controls/FUiCtrl_Button.cpp b/src/ui/controls/FUiCtrl_Button.cpp index f902427..37fd71e 100644 --- a/src/ui/controls/FUiCtrl_Button.cpp +++ b/src/ui/controls/FUiCtrl_Button.cpp @@ -100,6 +100,8 @@ _Button::_Button() } __pUnderlineBitmap = null; + __pTabTextDimLeftBitmap = null; + __pTabTextDimRightBitmap = null; GET_COLOR_CONFIG(BUTTON::BG_NORMAL, __color[_BUTTON_STATUS_NORMAL]); GET_COLOR_CONFIG(BUTTON::BG_DISABLED, __color[_BUTTON_STATUS_DISABLED]); @@ -207,6 +209,18 @@ _Button::~_Button(void) __pUnderlineBitmap = null; } + if (__pTabTextDimLeftBitmap) + { + delete __pTabTextDimLeftBitmap; + __pTabTextDimLeftBitmap = null; + } + + if (__pTabTextDimRightBitmap) + { + delete __pTabTextDimRightBitmap; + __pTabTextDimRightBitmap = null; + } + if (__pTextElement) { __pTextElement->Activate(false); @@ -926,7 +940,7 @@ _Button::GetToolbarItemBackgroundBitmap(_ButtonStatus status) const } result -_Button::SetUnderlineBitmap(const Tizen::Graphics::Bitmap& bitmap) +_Button::SetUnderlineBitmap(const Bitmap& bitmap) { result r = E_SYSTEM; @@ -953,13 +967,69 @@ _Button::ShowUnderlineBitmap(bool show) return __pButtonPresenter->ShowUnderlineBitmap(show); } -Tizen::Graphics::Bitmap* +Bitmap* _Button::GetUnderlineBitmap(void) const { return __pUnderlineBitmap; } result +_Button::SetTabTextDimLeftBitmap(const Bitmap& bitmap) +{ + result r = E_SYSTEM; + + Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap); + + if (pClonedBitmap) + { + if (__pTabTextDimLeftBitmap != null) + { + delete __pTabTextDimLeftBitmap; + } + + __pTabTextDimLeftBitmap = pClonedBitmap; + + r = E_SUCCESS; + } + + return r; +} + +Bitmap* +_Button::GetTabTextDimLeftBitmap(void) const +{ + return __pTabTextDimLeftBitmap; +} + +result +_Button::SetTabTextDimRightBitmap(const Bitmap& bitmap) +{ + result r = E_SYSTEM; + + Bitmap* pClonedBitmap = _BitmapImpl::CloneN(bitmap); + + if (pClonedBitmap) + { + if (__pTabTextDimRightBitmap != null) + { + delete __pTabTextDimRightBitmap; + } + + __pTabTextDimRightBitmap = pClonedBitmap; + + r = E_SUCCESS; + } + + return r; +} + +Bitmap* +_Button::GetTabTextDimRightBitmap(void) const +{ + return __pTabTextDimRightBitmap; +} + +result _Button::SetBackgroundBitmap(_ButtonStatus status, const Bitmap& bitmap) { result r = E_SYSTEM; @@ -1399,13 +1469,13 @@ _Button::GetBottomMarginF(void) const return __bottomMargin; } -Tizen::Graphics::FloatDimension +FloatDimension _Button::GetContentSizeF(bool horizontalMode, bool verticalMode) const { return GetContentSizeInternalF(horizontalMode, verticalMode); } -Tizen::Graphics::FloatDimension +FloatDimension _Button::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const { for (int i = 0; i < NUMBER_OF_BUTTON_STATUS; i++) diff --git a/src/ui/controls/FUiCtrl_ButtonPresenter.cpp b/src/ui/controls/FUiCtrl_ButtonPresenter.cpp index 79e44fc..60e3f28 100644 --- a/src/ui/controls/FUiCtrl_ButtonPresenter.cpp +++ b/src/ui/controls/FUiCtrl_ButtonPresenter.cpp @@ -432,25 +432,18 @@ _ButtonPresenter::DrawBackground(void) pCanvas->DrawBitmap(bounds, *pBackgroundBitmap, FloatRectangle(0.0f, 0.0f, pBackgroundBitmap->GetWidthF(), pBackgroundBitmap->GetHeightF())); } } - } - pCanvas = __pButton->GetCanvasN(); - if (pCanvas == null) - { - SysLog(NID_UI_CTRL, "Cannot get a canvas."); - return; - } - - if (pHighlightedBackgroundBitmap) - { - if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pHighlightedBackgroundBitmap)) + if (pHighlightedBackgroundBitmap) { - pCanvas->DrawNinePatchedBitmap(bounds, *pHighlightedBackgroundBitmap); - } - else - { - pCanvas->DrawBitmap(bounds, *pHighlightedBackgroundBitmap, - FloatRectangle(0.0f, 0.0f, pHighlightedBackgroundBitmap->GetWidthF(), pHighlightedBackgroundBitmap->GetHeightF())); + if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pHighlightedBackgroundBitmap)) + { + pCanvas->DrawNinePatchedBitmap(bounds, *pHighlightedBackgroundBitmap); + } + else + { + pCanvas->DrawBitmap(bounds, *pHighlightedBackgroundBitmap, + FloatRectangle(0.0f, 0.0f, pHighlightedBackgroundBitmap->GetWidthF(), pHighlightedBackgroundBitmap->GetHeightF())); + } } } } @@ -892,6 +885,8 @@ _ButtonPresenter::DrawText(void) { __pTextObject->DrawWithOffset(*_CanvasImpl::GetInstance(*pCanvas)); + DrawTabTextDimBitmap(); + TimerForTitleSlideStart(); } else @@ -1381,6 +1376,8 @@ _ButtonPresenter::TimerForTitleSlideTimeout(void) { __pTextObject->DrawWithOffset(*_CanvasImpl::GetInstance(*pCanvas)); + DrawTabTextDimBitmap(); + TimerForTitleSlideStart(); } else @@ -1393,4 +1390,107 @@ _ButtonPresenter::TimerForTitleSlideTimeout(void) return E_SUCCESS; } +void +_ButtonPresenter::DrawTabTextDimBitmap(void) +{ + _ButtonStatus status = __pButton->GetButtonStatus(); + Bitmap* pToolbarItemBackgroundBitmap = __pButton->GetToolbarItemBackgroundBitmap(status); + + if (pToolbarItemBackgroundBitmap) + { + return; + } + + float textDimWidth = 0.0f; + float textDimHeight = 0.0f; + + GET_SHAPE_CONFIG(HEADER::TAB_TEXT_DIM_WIDTH, __pButton->GetOrientation(), textDimWidth); + GET_SHAPE_CONFIG(HEADER::TAB_LARGE_TEXT_HEIGHT, __pButton->GetOrientation(), textDimHeight); + + Bitmap* pTabTextDimLeftBitmap = __pButton->GetTabTextDimLeftBitmap(); + + if (pTabTextDimLeftBitmap) + { + Canvas* pCanvas = __pButton->GetCanvasN(); + FloatRectangle bounds = FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f); + + if (pCanvas == null) + { + SysLog(NID_UI_CTRL, "Cannot get a canvas."); + return; + } + + if (__pButton->UserDefinedText() && (__pButton->GetBitmap(_BUTTON_STATUS_NORMAL) || __pButton->GetBitmap(_BUTTON_STATUS_DISABLED) + || __pButton->GetBitmap(_BUTTON_STATUS_PRESSED) || __pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))) + { + bounds.x = __pButton->GetUserDefinedTextAreaF().x; + bounds.y = __pButton->GetUserDefinedTextAreaF().y; + bounds.width = textDimWidth; + bounds.height = textDimHeight; + } + else + { + bounds.x = 0.0f; + bounds.y = (__pButton->GetSizeF().height - textDimHeight) / 2.0f; + bounds.width = textDimWidth; + bounds.height = textDimHeight; + } + + if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pTabTextDimLeftBitmap)) + { + pCanvas->DrawNinePatchedBitmap(bounds, *pTabTextDimLeftBitmap); + } + else + { + pCanvas->DrawBitmap(bounds, *pTabTextDimLeftBitmap, + FloatRectangle(0.0f, 0.0f, pTabTextDimLeftBitmap->GetWidthF(), pTabTextDimLeftBitmap->GetHeightF())); + } + + delete pCanvas; + } + + Bitmap* pTabTextDimRightBitmap = __pButton->GetTabTextDimRightBitmap(); + + if (pTabTextDimRightBitmap) + { + Canvas* pCanvas = __pButton->GetCanvasN(); + FloatRectangle bounds = FloatRectangle(0.0f, 0.0f, 0.0f, 0.0f); + + if (pCanvas == null) + { + SysLog(NID_UI_CTRL, "Cannot get a canvas."); + return; + } + + if (__pButton->UserDefinedText() && (__pButton->GetBitmap(_BUTTON_STATUS_NORMAL) || __pButton->GetBitmap(_BUTTON_STATUS_DISABLED) + || __pButton->GetBitmap(_BUTTON_STATUS_PRESSED) || __pButton->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED))) + { + bounds.x = __pButton->GetSizeF().width - textDimWidth; + bounds.y = __pButton->GetUserDefinedTextAreaF().y; + bounds.width = textDimWidth; + bounds.height = textDimHeight; + } + else + { + bounds.x = __pButton->GetSizeF().width - textDimWidth; + bounds.y = (__pButton->GetSizeF().height - textDimHeight) / 2.0f; + bounds.width = textDimWidth; + bounds.height = textDimHeight; + } + + if (_BitmapImpl::CheckNinePatchedBitmapStrictly(*pTabTextDimRightBitmap)) + { + pCanvas->DrawNinePatchedBitmap(bounds, *pTabTextDimRightBitmap); + } + else + { + pCanvas->DrawBitmap(bounds, *pTabTextDimRightBitmap, + FloatRectangle(0.0f, 0.0f, pTabTextDimRightBitmap->GetWidthF(), pTabTextDimRightBitmap->GetHeightF())); + } + + delete pCanvas; + } + + return; +} }}} // Tizen::Ui::Controls diff --git a/src/ui/controls/FUiCtrl_FooterImpl.cpp b/src/ui/controls/FUiCtrl_FooterImpl.cpp index b25b3fe..4f6f302 100644 --- a/src/ui/controls/FUiCtrl_FooterImpl.cpp +++ b/src/ui/controls/FUiCtrl_FooterImpl.cpp @@ -160,11 +160,6 @@ _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); @@ -298,11 +293,6 @@ _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); @@ -466,11 +456,6 @@ _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); @@ -1058,6 +1043,11 @@ _FooterImpl::ConvertFooterItem(const FooterItem& footerItem) delete pColorReplacedBitmap; delete pSelectedBitmap; + + if (__style == FOOTER_STYLE_TAB_LARGE) + { + pButton->SetTabTextSlide(true); + } } else if (__style == FOOTER_STYLE_BUTTON_TEXT || __style == FOOTER_STYLE_BUTTON_ICON || __style == FOOTER_STYLE_BUTTON_ICON_TEXT) { diff --git a/src/ui/controls/FUiCtrl_HeaderImpl.cpp b/src/ui/controls/FUiCtrl_HeaderImpl.cpp index becc27c..0b4cd2f 100644 --- a/src/ui/controls/FUiCtrl_HeaderImpl.cpp +++ b/src/ui/controls/FUiCtrl_HeaderImpl.cpp @@ -167,11 +167,6 @@ _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 || __style == HEADER_STYLE_SEGMENTED_WITH_TITLE || __style == HEADER_STYLE_TAB_WITH_TITLE) - { - pButton->SetTabTextSlide(true); - } } return GetCore().AddItem(pButton); @@ -326,11 +321,6 @@ _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); @@ -656,11 +646,6 @@ _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); @@ -1089,40 +1074,11 @@ _HeaderImpl::ConvertHeaderStyle(HeaderStyle style) _Button* _HeaderImpl::ConvertButtonItem(const ButtonItem& buttonItem) { - _Button* pButton = _Button::CreateButtonN(); - - float buttonItemWidth = 0.0f; - float buttonItemHeight = 0.0f; - - if (__style == HEADER_STYLE_BUTTON) - { - GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetCore().GetOrientation(), buttonItemWidth); - GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetCore().GetOrientation(), buttonItemHeight); - } - else - { - if (buttonItem.GetText() != L"") - { - GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetCore().GetOrientation(), buttonItemWidth); - } - else - { - GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetCore().GetOrientation(), buttonItemWidth); - } + result r = E_SUCCESS; - GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetCore().GetOrientation(), buttonItemHeight); - } + _Button* pButton = _Button::CreateButtonN(); pButton->SetMargin(0.0f, 0.0f, 0.0f, 0.0f); - pButton->SetBounds(FloatRectangle(0.0f, 0.0f, buttonItemWidth, buttonItemHeight)); - - pButton->SetActionId(buttonItem.GetActionId()); - - pButton->SetText(buttonItem.GetText()); - - pButton->SetTextMaxLine(2); - - result r = E_SUCCESS; float fontSize = 0.0f; float multilineFontSize = 0.0f; @@ -1156,6 +1112,57 @@ _HeaderImpl::ConvertButtonItem(const ButtonItem& buttonItem) } } + pButton->SetText(buttonItem.GetText()); + + float buttonItemWidth = 0.0f; + float buttonItemHeight = 0.0f; + float textMargin = 0.0f; + + GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_HEIGHT, GetCore().GetOrientation(), buttonItemHeight); + GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetCore().GetOrientation(), buttonItemWidth); + GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_MARGIN_WITH_TEXT, GetCore().GetOrientation(), textMargin); + + if (__style == HEADER_STYLE_TITLE || __style == HEADER_STYLE_TITLE_BUTTON) + { + if (buttonItem.GetText() != L"") + { + pButton->SetBounds(FloatRectangle(0.0f, 0.0f, buttonItemWidth, buttonItemHeight)); + + float extentSize = 0.0f; + float extentSizeMax = 0.0f; + float extentSizeMin = 0.0f; + + GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH_WITH_TEXT, GetCore().GetOrientation(), extentSizeMax); + GET_SHAPE_CONFIG(HEADER::BUTTON_ITEM_WIDTH, GetCore().GetOrientation(), extentSizeMin); + + extentSize = pButton->GetTextExtentSizeF() + textMargin * 2; + + if (extentSize > extentSizeMax) + { + extentSize = extentSizeMax; + } + + if (extentSize < extentSizeMin) + { + extentSize = extentSizeMin; + } + + pButton->SetMargin(textMargin, 0.0f, textMargin, 0.0f); + pButton->SetBounds(FloatRectangle(0.0f, 0.0f, extentSize, buttonItemHeight)); + } + else + { + pButton->SetBounds(FloatRectangle(0.0f, 0.0f, buttonItemWidth, buttonItemHeight)); + } + } + else + { + pButton->SetBounds(FloatRectangle(0.0f, 0.0f, buttonItemWidth, buttonItemHeight)); + } + + pButton->SetActionId(buttonItem.GetActionId()); + pButton->SetTextMaxLine(2); + float iconSize = 0.0f; if (__style == HEADER_STYLE_BUTTON) @@ -1427,6 +1434,11 @@ _HeaderImpl::ConvertHeaderItem(const HeaderItem& headerItem) delete pColorReplacedBitmap; delete pSelectedBitmap; + + if (__style == HEADER_STYLE_TAB_LARGE || __style == HEADER_STYLE_SEGMENTED_WITH_TITLE || __style == HEADER_STYLE_TAB_WITH_TITLE) + { + pButton->SetTabTextSlide(true); + } } else // __style == HEADER_STYLE_BUTTON { diff --git a/src/ui/controls/FUiCtrl_Label.cpp b/src/ui/controls/FUiCtrl_Label.cpp index 031b57d..ec2b46d 100644 --- a/src/ui/controls/FUiCtrl_Label.cpp +++ b/src/ui/controls/FUiCtrl_Label.cpp @@ -53,6 +53,8 @@ _Label::_Label(void) , __topMargin(0.0f) , __rightMargin(0.0f) , __bottomMargin(0.0f) + , __contented(false) + , __contentedDimension(FloatDimension(0.0f, 0.0f)) , __pTextElement(null) { result r = E_SUCCESS; @@ -222,6 +224,8 @@ _Label::OnTouchMoveHandled(const _Control& control) void _Label::OnBoundsChanged(void) { + __contented = false; + if(__pTextElement) { __pTextElement->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width, GetBoundsF().height)); @@ -233,6 +237,8 @@ _Label::OnBoundsChanged(void) void _Label::OnFontChanged(Font* pFont) { + __contented = false; + __pLabelPresenter->OnFontChanged(pFont); _Control::OnFontChanged(pFont); @@ -243,6 +249,8 @@ _Label::OnFontChanged(Font* pFont) void _Label::OnFontInfoRequested(unsigned long& style, int& size) { + __contented = false; + __pLabelPresenter->OnFontInfoRequested(style, size); return; @@ -263,6 +271,8 @@ _Label::SetText(const String& text) result _Label::SetPropertyText(const Variant& text) { + __contented = false; + __text = text.ToString(); if(__pTextElement) @@ -349,6 +359,8 @@ _Label::GetBackgroundEffectBitmap(void) const result _Label::SetTextHorizontalAlignment(HorizontalAlignment alignment) { + __contented = false; + __horizontalAlignment = alignment; return E_SUCCESS; } @@ -356,6 +368,8 @@ _Label::SetTextHorizontalAlignment(HorizontalAlignment alignment) result _Label::SetTextVerticalAlignment(VerticalAlignment alignment) { + __contented = false; + __verticalAlignment = alignment; return E_SUCCESS; } @@ -381,6 +395,8 @@ _Label::SetTextConfig(float size, LabelTextStyle style) result _Label::SetPropertyTextSize(const Variant& textSize) { + __contented = false; + __textSize = textSize.ToFloat(); return E_SUCCESS; @@ -464,6 +480,8 @@ _Label::SetMargin(int topMargin, int leftMargin) result _Label::SetMargin(float topMargin, float leftMargin) { + __contented = false; + __topMargin = topMargin; __leftMargin = leftMargin; @@ -484,6 +502,8 @@ _Label::SetMargin(int leftMargin, int topMargin, int rightMargin, int bottomMarg result _Label::SetMargin(float leftMargin, float topMargin, float rightMargin, float bottomMargin) { + __contented = false; + __leftMargin = leftMargin; __topMargin = topMargin; __rightMargin = rightMargin; @@ -549,71 +569,64 @@ _Label::GetContentSizeF(bool horizontalMode, bool verticalMode) const FloatDimension _Label::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const { + if (__contented) + { + return __contentedDimension; + } + if (__text.IsEmpty() && __pBackgroundBitmap == null) { return FloatDimension(GetBoundsF().width, GetBoundsF().height); } + FloatDimension textSize(0.0f, 0.0f); FloatDimension dimension(0.0f, 0.0f); FloatRectangle contentRect(0.0f, 0.0f, 0.0f , 0.0f); TextObject* pTextObject = __pLabelPresenter->GetTextObject(); - Font* pFont = __pLabelPresenter->GetFont(); - TextObjectActionType previousActionType = pTextObject->GetAction(); - TextObjectWrapType previousWrapType = pTextObject->GetWrap(); FloatRectangle previousRect = pTextObject->GetBoundsF(); - pTextObject->SetBounds(FloatRectangle(0.0f, 0.0f, GetBoundsF().width - __leftMargin * 2, GetBoundsF().height - __topMargin * 2)); - pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE); - pTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_WORD); - pTextObject->SetFont(pFont, 0, pTextObject->GetTextLength()); - pTextObject->Compose(); + dimension.width = GetBoundsF().width - __leftMargin * 2; + dimension.height = GetBoundsF().height - __topMargin * 2; _ControlOrientation orientation = GetOrientation(); if (orientation == _CONTROL_ORIENTATION_PORTRAIT) { contentRect.width = _ControlManager::GetInstance()->GetScreenSizeF().width; + contentRect.height = _ControlManager::GetInstance()->GetScreenSizeF().height; } else { contentRect.width = _ControlManager::GetInstance()->GetScreenSizeF().height; + contentRect.height = _ControlManager::GetInstance()->GetScreenSizeF().width; } if (horizontalMode == true) { - dimension = pTextObject->GetTextExtentF(0, pTextObject->GetTextLength()); + FloatRectangle bounds(0.0f, 0.0f, contentRect.width - GetBoundsF().x - __leftMargin, dimension.height); + pTextObject->SetBounds(bounds); + pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE); + pTextObject->Compose(); - if (dimension.width > contentRect.width - GetBoundsF().x - __leftMargin * 2) - { - dimension.width = contentRect.width - GetBoundsF().x - __leftMargin * 2; + textSize = pTextObject->GetTextExtentF(); - pTextObject->SetBounds(FloatRectangle(previousRect.x, previousRect.y, dimension.width, previousRect.height)); - pTextObject->Compose(); - - dimension.height = pTextObject->GetTotalHeightF(); - } + dimension.width = (textSize.width < bounds.width) ? textSize.width : bounds.width; } if (verticalMode == true) { - dimension = pTextObject->GetTextExtentF(); + FloatRectangle bounds(0.0f, 0.0f, dimension.width, dimension.height); + pTextObject->SetBounds(bounds); + pTextObject->SetAction(TEXT_OBJECT_ACTION_TYPE_NONE); + pTextObject->Compose(); - if (dimension.width > GetBoundsF().width - __leftMargin * 2) - { - dimension.width = GetBoundsF().width - __leftMargin * 2; - - pTextObject->SetBounds(FloatRectangle(previousRect.x, previousRect.y, dimension.width, previousRect.height)); - pTextObject->Compose(); + textSize = pTextObject->GetTextExtentF(); - dimension.height = pTextObject->GetTotalHeightF(); - } + dimension.height = textSize.height; } pTextObject->SetBounds(previousRect); - pTextObject->SetAction(previousActionType); - pTextObject->SetWrap(previousWrapType); - pTextObject->Compose(); dimension.width += __leftMargin * 2; dimension.height += __topMargin * 2; @@ -624,6 +637,9 @@ _Label::GetContentSizeInternalF(bool horizontalMode, bool verticalMode) const dimension.height = GetBoundsF().height; } + const_cast<_Label*>(this)->__contented = true; + const_cast<_Label*>(this)->__contentedDimension = dimension; + return dimension; } diff --git a/src/ui/controls/FUiCtrl_Toolbar.cpp b/src/ui/controls/FUiCtrl_Toolbar.cpp index b0d9c35..c529e30 100644 --- a/src/ui/controls/FUiCtrl_Toolbar.cpp +++ b/src/ui/controls/FUiCtrl_Toolbar.cpp @@ -6437,20 +6437,62 @@ _Toolbar::ApplyUserGUI(ButtonType buttonType, _Button* pButton) //} } -#if 0 - if (__style != TOOLBAR_SOFTKEY) + if (__style == TOOLBAR_TAB_LARGE || __style == TOOLBAR_HEADER_SEGMENTED_WITH_TITLE || __style == TOOLBAR_TAB_WITH_TITLE) { - if (pPressedBackgroundEffectBitmap) + pButton->SetTabTextSlide(true); + + Bitmap* pTabTextDimLeftBitmap = null; + Bitmap* pTabTextDimRightBitmap = null; + Bitmap* pReColorTabTextDimLeftBitmap = null; + Bitmap* pReColorTabTextDimRightBitmap = null; + + Color tabTextDimColor; + + if (__header == true) { - pColorReplacedBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pPressedBackgroundEffectBitmap, - Color::GetColor(COLOR_ID_MAGENTA), __itemBackgroundColor[_BUTTON_STATUS_PRESSED]); - pButton->SetBackgroundEffectBitmap(_BUTTON_STATUS_PRESSED, *pColorReplacedBitmap); + GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap); + GET_BITMAP_CONFIG_N(HEADER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap); + if (__transparent == true) + { + GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor); + } + else + { + GET_COLOR_CONFIG(HEADER::TAB_TEXT_DIM_NORMAL, tabTextDimColor); + } + } + else + { + GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimLeftBitmap); + GET_BITMAP_CONFIG_N(FOOTER::TAB_TEXT_DIM_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, pTabTextDimRightBitmap); + if (__transparent == true) + { + GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_TRANSLUCENT_NORMAL, tabTextDimColor); + } + else + { + GET_COLOR_CONFIG(FOOTER::TAB_TEXT_DIM_NORMAL, tabTextDimColor); + } + } - delete pColorReplacedBitmap; - delete pPressedBackgroundEffectBitmap; + pReColorTabTextDimLeftBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimLeftBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor); + pReColorTabTextDimRightBitmap = _BitmapImpl::GetColorReplacedBitmapN(*pTabTextDimRightBitmap, Color::GetColor(COLOR_ID_MAGENTA), tabTextDimColor); + + if (pReColorTabTextDimLeftBitmap) + { + pButton->SetTabTextDimLeftBitmap(*pReColorTabTextDimLeftBitmap); } + + if (pReColorTabTextDimRightBitmap) + { + pButton->SetTabTextDimRightBitmap(*pReColorTabTextDimRightBitmap); + } + + delete pTabTextDimLeftBitmap; + delete pTabTextDimRightBitmap; + delete pReColorTabTextDimLeftBitmap; + delete pReColorTabTextDimRightBitmap; } -#endif } return E_SUCCESS; @@ -8403,7 +8445,7 @@ _Toolbar::RearrangeButtonItems(void) } } - __pItems.at(i)->SetMargin(__pItems.at(i)->GetLeftMarginF(), 0.0f, __pItems.at(i)->GetRightMarginF(), 0.0f); + //__pItems.at(i)->SetMargin(__pItems.at(i)->GetLeftMarginF(), 0.0f, __pItems.at(i)->GetRightMarginF(), 0.0f); __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD); __pItems.at(i)->SetMultilineTextSize(multilineFontSize); } diff --git a/src/ui/controls/FUiCtrl_ToolbarPresenter.cpp b/src/ui/controls/FUiCtrl_ToolbarPresenter.cpp index dcafd08..bd547bd 100644 --- a/src/ui/controls/FUiCtrl_ToolbarPresenter.cpp +++ b/src/ui/controls/FUiCtrl_ToolbarPresenter.cpp @@ -933,7 +933,7 @@ _ToolbarPresenter::DrawTitleText(Canvas* pCanvas) __pTitleTextObject->SetForegroundColor(__pToolbar->GetTitleTextColor(), 0, __pTitleTextObject->GetTextLength()); __pTitleTextObject->SetBounds(__titleRect); - __pTitleTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_NONE); + //__pTitleTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_NONE); __pTitleTextObject->Compose(); if (__pTitleTextObject->IsActionOn() == true) @@ -1081,6 +1081,7 @@ _ToolbarPresenter::SetTitleText(const String& title, HorizontalAlignment alignme return E_OUT_OF_MEMORY; } __pTitleTextObject->Construct(); + __pTitleTextObject->SetWrap(TEXT_OBJECT_WRAP_TYPE_NONE); TextSimple* pSimpleText = new (std::nothrow) TextSimple(tempString, length, TEXT_ELEMENT_SOURCE_TYPE_EXTERNAL); __pTitleTextObject->AppendElement(*pSimpleText); @@ -1116,7 +1117,7 @@ _ToolbarPresenter::SetTitleText(const String& title, HorizontalAlignment alignme __pTitleTextObject->SetFont(__pTitleTextFont, 0, __pTitleTextObject->GetTextLength()); - __pTitleTextObject->Compose(); + //__pTitleTextObject->Compose(); return r; } diff --git a/src/ui/inc/FUiCtrl_Button.h b/src/ui/inc/FUiCtrl_Button.h index 39992cd..054b0f9 100644 --- a/src/ui/inc/FUiCtrl_Button.h +++ b/src/ui/inc/FUiCtrl_Button.h @@ -188,6 +188,12 @@ public: result SetUnderlineBitmap(const Tizen::Graphics::Bitmap& bitmap); Tizen::Graphics::Bitmap* GetUnderlineBitmap(void) const; + result SetTabTextDimLeftBitmap(const Tizen::Graphics::Bitmap& bitmap); + Tizen::Graphics::Bitmap* GetTabTextDimLeftBitmap(void) const; + + result SetTabTextDimRightBitmap(const Tizen::Graphics::Bitmap& bitmap); + Tizen::Graphics::Bitmap* GetTabTextDimRightBitmap(void) const; + result SetBackgroundBitmap(_ButtonStatus status, const Tizen::Graphics::Bitmap& bitmap); Tizen::Graphics::Bitmap* GetBackgroundBitmap(_ButtonStatus status) const; @@ -299,6 +305,8 @@ private: Tizen::Graphics::Bitmap* __pBackgroundBitmap[NUMBER_OF_BUTTON_STATUS]; Tizen::Graphics::Bitmap* __pBackgroundEffectBitmap[NUMBER_OF_BUTTON_STATUS]; Tizen::Graphics::Bitmap* __pUnderlineBitmap; + Tizen::Graphics::Bitmap* __pTabTextDimLeftBitmap; + Tizen::Graphics::Bitmap* __pTabTextDimRightBitmap; HorizontalAlignment __horizontalAlignment; VerticalAlignment __verticalAlignment; diff --git a/src/ui/inc/FUiCtrl_ButtonPresenter.h b/src/ui/inc/FUiCtrl_ButtonPresenter.h index 703e236..6ef34ee 100644 --- a/src/ui/inc/FUiCtrl_ButtonPresenter.h +++ b/src/ui/inc/FUiCtrl_ButtonPresenter.h @@ -106,6 +106,7 @@ private: void DrawBitmap(void); void DrawText(void); void DrawUnderlineBitmap(void); + void DrawTabTextDimBitmap(void); bool IsEnabledStateChanged(void); diff --git a/src/ui/inc/FUiCtrl_Label.h b/src/ui/inc/FUiCtrl_Label.h index dc9cd5b..f737138 100644 --- a/src/ui/inc/FUiCtrl_Label.h +++ b/src/ui/inc/FUiCtrl_Label.h @@ -154,6 +154,9 @@ private: float __rightMargin; float __bottomMargin; + bool __contented; + Tizen::Graphics::FloatDimension __contentedDimension; + Tizen::Ui::_AccessibilityElement* __pTextElement; static const float SENSITIVE = 0.08f; diff --git a/src/ui/inc/FUi_ResourceFooterConfig.h b/src/ui/inc/FUi_ResourceFooterConfig.h index 2a92723..30a37e8 100644 --- a/src/ui/inc/FUi_ResourceFooterConfig.h +++ b/src/ui/inc/FUi_ResourceFooterConfig.h @@ -125,6 +125,8 @@ DECLARE_UI_CONFIG(FOOTER); DECLARE_COLOR_CONFIG(MORE_ICON_HIGHLIGHTED, 98); DECLARE_COLOR_CONFIG(SELECTED_BAR_BG_NORMAL, 99); DECLARE_COLOR_CONFIG(SELECTED_BAR_TRANSLUCENT_BG_NORMAL, 100); + DECLARE_COLOR_CONFIG(TAB_TEXT_DIM_NORMAL, 101); + DECLARE_COLOR_CONFIG(TAB_TEXT_DIM_TRANSLUCENT_NORMAL, 102); // BITMAP DECLARE_IMAGE_CONFIG(BG_NORMAL, 1); @@ -265,6 +267,9 @@ DECLARE_UI_CONFIG(FOOTER); DECLARE_IMAGE_CONFIG(BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_NORMAL, 131); DECLARE_IMAGE_CONFIG(BUTTON_ITEM_TRANSLUCENT_BG_EFFECT_PRESSED, 132); + DECLARE_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_LEFT, 133); + DECLARE_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_RIGHT, 134); + //SHAPE DECLARE_SHAPE_CONFIG(HEIGHT, 1); DECLARE_SHAPE_CONFIG(WIDTH, 2); diff --git a/src/ui/inc/FUi_ResourceHeaderConfig.h b/src/ui/inc/FUi_ResourceHeaderConfig.h index 215946b..e4c0c61 100644 --- a/src/ui/inc/FUi_ResourceHeaderConfig.h +++ b/src/ui/inc/FUi_ResourceHeaderConfig.h @@ -118,7 +118,8 @@ DECLARE_UI_CONFIG(HEADER); DECLARE_COLOR_CONFIG(SELECTED_BAR_BG_NORMAL, 91); DECLARE_COLOR_CONFIG(SELECTED_BAR_TRANSLUCENT_BG_NORMAL, 92); DECLARE_COLOR_CONFIG(BOUNCING_EFFECT, 93); - + DECLARE_COLOR_CONFIG(TAB_TEXT_DIM_NORMAL, 94); + DECLARE_COLOR_CONFIG(TAB_TEXT_DIM_TRANSLUCENT_NORMAL, 95); // BITMAP DECLARE_IMAGE_CONFIG(BG_NORMAL, 1); @@ -204,6 +205,7 @@ DECLARE_UI_CONFIG(HEADER); DECLARE_IMAGE_CONFIG(TITLE_TEXT_DIM_EFFECT_LEFT, 76); DECLARE_IMAGE_CONFIG(TITLE_TEXT_DIM_EFFECT_RIGHT, 77); + DECLARE_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_LEFT, 78); DECLARE_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_RIGHT, 79); @@ -284,6 +286,9 @@ DECLARE_UI_CONFIG(HEADER); DECLARE_SHAPE_CONFIG(TAB_LARGE_TOP_MARGIN, 73); DECLARE_SHAPE_CONFIG(TAB_LARGE_TEXT_HEIGHT, 74); DECLARE_SHAPE_CONFIG(TAB_LARGE_DIVIDER_HEIGHT, 75); + DECLARE_SHAPE_CONFIG(BUTTON_ITEM_MARGIN_WITH_TEXT, 76); + DECLARE_SHAPE_CONFIG(TAB_TEXT_DIM_WIDTH, 77); + DECLARE_END_UI_CONFIG(HEADER); diff --git a/src/ui/resource/FUi_ResourceFooterConfig.cpp b/src/ui/resource/FUi_ResourceFooterConfig.cpp index f5bb451..1857f8e 100644 --- a/src/ui/resource/FUi_ResourceFooterConfig.cpp +++ b/src/ui/resource/FUi_ResourceFooterConfig.cpp @@ -153,6 +153,9 @@ START_UI_CONFIG(FOOTER); ADD_COLOR_CONFIG(SELECTED_BAR_BG_NORMAL, $B052L6P); ADD_COLOR_CONFIG(SELECTED_BAR_TRANSLUCENT_BG_NORMAL, $B052L6P); + ADD_COLOR_CONFIG(TAB_TEXT_DIM_NORMAL, $B0515L1); + ADD_COLOR_CONFIG(TAB_TEXT_DIM_TRANSLUCENT_NORMAL, $B013); + // BITMAP ADD_IMAGE_CONFIG(BG_NORMAL, #00_toolbar_bg.#.png); ADD_IMAGE_CONFIG(TRANSLUCENT_BG_NORMAL, #00_toolbar_bg.#.png); @@ -321,6 +324,9 @@ START_UI_CONFIG(FOOTER); ADD_IMAGE_CONFIG(TAB_ITEM_BOUNCING_EFFECT_LEFT_HORIZONTAL, #00_effect_toolbar_tab_bounce_left_h.png);//85 ADD_IMAGE_CONFIG(TAB_ITEM_BOUNCING_EFFECT_RIGHT_HORIZONTAL, #00_effect_toolbar_tab_bounce_right_h.png);//85 + ADD_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_LEFT, #00_effect_tab_text_dim_left.#.png); + ADD_IMAGE_CONFIG(TAB_TEXT_DIM_EFFECT_RIGHT, #00_effect_tab_text_dim_right.#.png); + //SHAPE START_UI_CONFIG_MODE(720x1280); ADD_SHAPE_CONFIG(HEIGHT, 98); @@ -343,10 +349,10 @@ START_UI_CONFIG(FOOTER); ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_TOP_MARGIN, 6); ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3, 26); ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_4, 26); - ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5, 24); - ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3_WITH_ICON, 24); - ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_4_WITH_ICON, 24); - ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5_WITH_ICON, 20); + ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5, 26); + ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_3_WITH_ICON, 26); + ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_4_WITH_ICON, 26); + ADD_SHAPE_CONFIG(BUTTON_ITEM_TEXT_FONT_SIZE_ITEM_5_WITH_ICON, 26); ADD_SHAPE_CONFIG(SEGMENTED_ITEM_FONT_SIZE, 30); ADD_SHAPE_CONFIG(SEGMENTED_ICON_TEXT_GAP, 20); ADD_SHAPE_CONFIG(FOOTER_ITEM_WIDTH_1_MAX, 496); diff --git a/src/ui/resource/FUi_ResourceHeaderConfig.cpp b/src/ui/resource/FUi_ResourceHeaderConfig.cpp index e872803..7399014 100644 --- a/src/ui/resource/FUi_ResourceHeaderConfig.cpp +++ b/src/ui/resource/FUi_ResourceHeaderConfig.cpp @@ -136,6 +136,9 @@ START_UI_CONFIG(HEADER); ADD_COLOR_CONFIG(BOUNCING_EFFECT, $B018); + ADD_COLOR_CONFIG(TAB_TEXT_DIM_NORMAL, $B0511); + ADD_COLOR_CONFIG(TAB_TEXT_DIM_TRANSLUCENT_NORMAL, $B013); + // BITMAP ADD_IMAGE_CONFIG(BG_NORMAL, #00_title_bg.#.png); ADD_IMAGE_CONFIG(TRANSLUCENT_BG_NORMAL, #00_title_bg.#.png); @@ -300,7 +303,8 @@ START_UI_CONFIG(HEADER); ADD_SHAPE_CONFIG(DESCRIPTION_TEXT_HEIGHT, 37); ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH, 115); - ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH_WITH_TEXT, 124); + ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH_WITH_TEXT, 183); + ADD_SHAPE_CONFIG(BUTTON_ITEM_MARGIN_WITH_TEXT, 16); ADD_SHAPE_CONFIG(BUTTON_ITEM_HEIGHT, 96); ADD_SHAPE_CONFIG(BUTTON_ITEM_GAP, 2); ADD_SHAPE_CONFIG(BUTTON_ITEM_TOP_MARGIN, 0); @@ -358,6 +362,8 @@ START_UI_CONFIG(HEADER); ADD_SHAPE_CONFIG(TAB_LARGE_TEXT_HEIGHT, 34); ADD_SHAPE_CONFIG(TAB_LARGE_DIVIDER_HEIGHT, 88); + ADD_SHAPE_CONFIG(TAB_TEXT_DIM_WIDTH, 45); + END_UI_CONFIG_MODE(720x1280); START_UI_CONFIG_MODE(1280x720); @@ -394,7 +400,8 @@ START_UI_CONFIG(HEADER); ADD_SHAPE_CONFIG(DESCRIPTION_TEXT_HEIGHT, 30); ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH, 115); - ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH_WITH_TEXT, 124); + ADD_SHAPE_CONFIG(BUTTON_ITEM_WIDTH_WITH_TEXT, 183); + ADD_SHAPE_CONFIG(BUTTON_ITEM_MARGIN_WITH_TEXT, 16); ADD_SHAPE_CONFIG(BUTTON_ITEM_HEIGHT, 91); ADD_SHAPE_CONFIG(BUTTON_ITEM_GAP, 2); ADD_SHAPE_CONFIG(BUTTON_ITEM_TOP_MARGIN, 0); @@ -452,6 +459,8 @@ START_UI_CONFIG(HEADER); ADD_SHAPE_CONFIG(TAB_LARGE_TEXT_HEIGHT, 34); ADD_SHAPE_CONFIG(TAB_LARGE_DIVIDER_HEIGHT, 88); + ADD_SHAPE_CONFIG(TAB_TEXT_DIM_WIDTH, 45); + END_UI_CONFIG_MODE(1280x720); } END_UI_CONFIG(HEADER); -- 2.7.4