modify gettextextentsize call count
authorMyung Jin Kim <critical.kim@samsung.com>
Thu, 4 Apr 2013 07:51:36 +0000 (16:51 +0900)
committerMyung Jin Kim <critical.kim@samsung.com>
Thu, 4 Apr 2013 07:51:36 +0000 (16:51 +0900)
Change-Id: I9a304e1f29fcd32b43c83afba2b3f6aca1505295

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

index d30cbf2..c61c5a5 100644 (file)
@@ -1984,7 +1984,7 @@ _Toolbar::SetItemAt(int itemIndex, const _Button* pButton)
 
        RearrangeItems();
 
-       RealignItem(__pItems.at(itemIndex));
+       RealignItem(__pItems.at(itemIndex), __pItems.at(itemIndex)->GetTextExtentSizeF());
 
        delete pButton;
 
@@ -3459,7 +3459,7 @@ _Toolbar::CalculateMinimumToolbarWidthF(void)
 }
 
 result
-_Toolbar::RealignItem(_Button* pButton)
+_Toolbar::RealignItem(_Button* pButton, float textExtentSize)
 {
        SysTryReturnResult(NID_UI_CTRL, pButton, E_INVALID_STATE, "[E_INVALID_STATE] pButton doesn't exist.");
 
@@ -3469,7 +3469,6 @@ _Toolbar::RealignItem(_Button* pButton)
        float buttonTextTopMargin = 0.0f;
        float iconTextGap = 0.0f;
        float contentLength = 0.0f;
-       float textExtentSize = pButton->GetTextExtentSizeF();
        float segmentedTextAreaHeight = 0.0f;
        float revisedTopMargin = 5.0f;
 
@@ -4394,7 +4393,7 @@ _Toolbar::RearrangeHeaderSegmentedItems(void)
                __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
                __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
 
-               RealignItem(__pItems.at(i));
+               RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
        }
 
        return E_SUCCESS;
@@ -4554,7 +4553,7 @@ _Toolbar::RearrangeFooterSegmentedItems(void)
                __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
                __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
 
-               RealignItem(__pItems.at(i));
+               RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
        }
 
        return E_SUCCESS;
@@ -4676,7 +4675,7 @@ _Toolbar::RearrangeTabItmes(void)
                        }
                }
 
-               RealignItem(__pItems.at(i));
+               RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
        }
 
        return E_SUCCESS;
@@ -4727,6 +4726,8 @@ _Toolbar::RearrangeButtonItems(void)
 
        if (__itemCount == 1)
        {
+               float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
+
                if (__style == TOOLBAR_TITLE) // item 1, HEADER_STYLE_TITLE_BUTTON
                {
                        blockWidth[0] = __titleTextArea.width;
@@ -4746,11 +4747,11 @@ _Toolbar::RearrangeButtonItems(void)
                                        && __pItems.at(0)->GetBitmap(_BUTTON_STATUS_SELECTED) == null
                                        && __pItems.at(0)->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) == null)) // at least 1 bitmap
                        {
-                               blockWidth[0] = __pItems.at(0)->GetTextExtentSizeF() + iconSizeWithText + sideMargin * 3;
+                               blockWidth[0] = textExtentSize_0 + iconSizeWithText + sideMargin * 3;
                        }
                        else
                        {
-                               blockWidth[0] = __pItems.at(0)->GetTextExtentSizeF() + sideMargin * 2;
+                               blockWidth[0] = textExtentSize_0 + sideMargin * 2;
                        }
 
                        if (blockWidth[0] > maxItemLength)
@@ -4794,11 +4795,16 @@ _Toolbar::RearrangeButtonItems(void)
                                }
                        }
                }
+
+               RealignItem(__pItems.at(0), textExtentSize_0);
        }
        else if(__itemCount == 2)
        {
                float itemGap = 0.0f;
 
+               float textExtentSize_0 = __pItems.at(0)->GetTextExtentSizeF();
+               float textExtentSize_1 = __pItems.at(1)->GetTextExtentSizeF();
+
                GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_WIDTH_2_MAX, GetOrientation(), maxItemLength);
                GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_WIDTH_2_MIN, GetOrientation(), minItemLength);
                GET_SHAPE_CONFIG(FOOTER::FOOTER_ITEM_BUTTON_STYLE_ICON_SIZE_WITH_TEXT, GetOrientation(), iconSizeWithText);
@@ -4810,11 +4816,11 @@ _Toolbar::RearrangeButtonItems(void)
                                && __pItems.at(0)->GetBitmap(_BUTTON_STATUS_SELECTED) == null
                                && __pItems.at(0)->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) == null)) // at least 1 bitmap
                {
-                       blockWidth[0] = __pItems.at(0)->GetTextExtentSizeF() + iconSizeWithText + sideMargin * 3;
+                       blockWidth[0] = textExtentSize_0 + iconSizeWithText + sideMargin * 3;
                }
                else
                {
-                       blockWidth[0] = __pItems.at(0)->GetTextExtentSizeF() + sideMargin * 2;
+                       blockWidth[0] = textExtentSize_0 + sideMargin * 2;
                }
 
                if (blockWidth[0] > maxItemLength)
@@ -4832,11 +4838,11 @@ _Toolbar::RearrangeButtonItems(void)
                                && __pItems.at(1)->GetBitmap(_BUTTON_STATUS_SELECTED) == null
                                && __pItems.at(1)->GetBitmap(_BUTTON_STATUS_HIGHLIGHTED) == null)) // at least 1 bitmap
                {
-                       blockWidth[1] = __pItems.at(1)->GetTextExtentSizeF() + iconSizeWithText + sideMargin * 3;
+                       blockWidth[1] = textExtentSize_1 + iconSizeWithText + sideMargin * 3;
                }
                else
                {
-                       blockWidth[1] = __pItems.at(1)->GetTextExtentSizeF() + sideMargin * 2;
+                       blockWidth[1] = textExtentSize_1 + sideMargin * 2;
                }
 
                if (blockWidth[1] > maxItemLength)
@@ -4886,6 +4892,9 @@ _Toolbar::RearrangeButtonItems(void)
                                }
                        }
                }
+
+               RealignItem(__pItems.at(0), textExtentSize_0);
+               RealignItem(__pItems.at(1), textExtentSize_1);
        }
        else if (__itemCount == 3)
        {
@@ -4949,6 +4958,8 @@ _Toolbar::RearrangeButtonItems(void)
                                        existingBadgeIcon = null;
                                }
                        }
+
+                       RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
                }
        }
        else if (__itemCount == 4)
@@ -4997,6 +5008,8 @@ _Toolbar::RearrangeButtonItems(void)
                                        existingBadgeIcon = null;
                                }
                        }
+
+                       RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
                }
        }
        else if (__itemCount == 5)
@@ -5049,6 +5062,8 @@ _Toolbar::RearrangeButtonItems(void)
                                        existingBadgeIcon = null;
                                }
                        }
+
+                       RealignItem(__pItems.at(i), __pItems.at(i)->GetTextExtentSizeF());
                }
        }
 
@@ -5081,8 +5096,6 @@ _Toolbar::RearrangeButtonItems(void)
 
                __pItems.at(i)->SetTextSize(fontSize, FONT_STYLE_BOLD);
                __pItems.at(i)->SetMultilineTextSize(multilineFontSize);
-
-               RealignItem(__pItems.at(i));
        }
 
        return E_SUCCESS;
index 81d70e5..7b6c8a7 100644 (file)
@@ -369,7 +369,7 @@ public:
 
        result SetTitleNumberedBadgeIcon(int number);
 
-       result RealignItem(_Button* pButton);
+       result RealignItem(_Button* pButton, float textExtentSize);
 
        result RealignButtonItem(_Button* pButton);