From: prafull.sahu Date: Thu, 4 Jul 2013 13:54:35 +0000 (+0530) Subject: Selected Line Color and tab bounce effect color changes in tab. X-Git-Tag: submit/tizen_2.2/20130714.153149~53^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7c3a32bd237126a079e05c82ae7c8b46a0daecd7;p=framework%2Fosp%2Fuifw.git Selected Line Color and tab bounce effect color changes in tab. Signed-off-by: prafull.sahu Change-Id: Ic326b34218d946ce02500d715dd3c03ca583c361 Signed-off-by: prafull.sahu --- diff --git a/src/ui/controls/FUiCtrl_TabPresenter.cpp b/src/ui/controls/FUiCtrl_TabPresenter.cpp index 63e953f..2d4b2e1 100644 --- a/src/ui/controls/FUiCtrl_TabPresenter.cpp +++ b/src/ui/controls/FUiCtrl_TabPresenter.cpp @@ -73,11 +73,11 @@ _TabPresenter::_TabPresenter(void) , __editItemIndex(-1) //, __pVerticalLineBitmap(null) , __pHorizontalLineBitmap(null) - , __pFrontScrollingEffectBitmap(null) - , __pRearScrollingEffectBitmap(null) - , __pScrollingEffectBitmap(null) +// , __pFrontScrollingEffectBitmap(null) +// , __pRearScrollingEffectBitmap(null) +// , __pScrollingEffectBitmap(null) , __pFocusBitmap(null) - , __pScrollingEffectVe(null) +// , __pScrollingEffectVe(null) , __pFlickAnimationTimer(null) , __pScrollAnimationTimer(null) , __flickAnimation() @@ -100,11 +100,11 @@ _TabPresenter::_TabPresenter(void) , __reorderDist(0.0f) , __firstItemIndex(0) , __lastItemIndex(0) - , __isScrollEffectEnded(false) - , __isScrollEffectStarted(false) +// , __isScrollEffectEnded(false) +// , __isScrollEffectStarted(false) , __timerCount(0) , __isTouchMove(false) - , __scrollFlag(0) +// , __scrollFlag(0) , __tabMinimumSize(0.0f) , __fontChangeItemCount(0) @@ -186,22 +186,22 @@ _TabPresenter::~_TabPresenter(void) __pScrollAnimationTimer = null; } - if (__pFrontScrollingEffectBitmap) - { - delete __pFrontScrollingEffectBitmap; - __pFrontScrollingEffectBitmap = null; - } - - if (__pRearScrollingEffectBitmap) - { - delete __pRearScrollingEffectBitmap; - __pRearScrollingEffectBitmap = null; - } +// if (__pFrontScrollingEffectBitmap) +// { +// delete __pFrontScrollingEffectBitmap; +// __pFrontScrollingEffectBitmap = null; +// } - if (__pScrollingEffectBitmap) - { - __pScrollingEffectBitmap = null; - } +// if (__pRearScrollingEffectBitmap) +// { +// delete __pRearScrollingEffectBitmap; +// __pRearScrollingEffectBitmap = null; +// } +// +// if (__pScrollingEffectBitmap) +// { +// __pScrollingEffectBitmap = null; +// } if(__pFocusBitmap) { @@ -209,12 +209,12 @@ _TabPresenter::~_TabPresenter(void) __pFocusBitmap = null; } - if (__pScrollingEffectVe) - { - __pScrollingEffectVe->RemoveAllAnimations(); - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - } +// if (__pScrollingEffectVe) +// { +// __pScrollingEffectVe->RemoveAllAnimations(); +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// } } result @@ -290,24 +290,24 @@ _TabPresenter::LoadBitmap(void) Tizen::Graphics::Bitmap* pBitmap = null; Tizen::Graphics::Bitmap* pFocusBitmap = null; Color focusBgColor(0x00000000); - - //r = GET_BITMAP_CONFIG_N(TAB::VERTICAL_DIVIDER_NORMAL, BITMAP_PIXEL_FORMAT_ARGB8888, __pVerticalLineBitmap); // delete bitmap by critical.kim (2013/03/18) - //SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate divider line bitmap."); + Color itemSelectedColor(0x00000000); r = GET_BITMAP_CONFIG_N(TAB::ITEM_SELECTED, BITMAP_PIXEL_FORMAT_ARGB8888, pBitmap); SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate horizontal line bitmap."); + GET_COLOR_CONFIG(TAB::ITEM_SELECTED, itemSelectedColor); + if (pBitmap) { - __pHorizontalLineBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pBitmap), Color::GetColor(COLOR_ID_MAGENTA), __pTab->GetSelectedTextColor()); + __pHorizontalLineBitmap = _BitmapImpl::GetColorReplacedBitmapN(*(pBitmap), Color::GetColor(COLOR_ID_MAGENTA), itemSelectedColor); SysTryLog(NID_UI_CTRL, (__pHorizontalLineBitmap != null), "Failed to locate focus item line bitmap."); } - r = GET_BITMAP_CONFIG_N(TAB::TAB_BOUNCE_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, __pFrontScrollingEffectBitmap); - SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate overscrolling left bitmap."); +// r = GET_BITMAP_CONFIG_N(TAB::TAB_BOUNCE_EFFECT_LEFT, BITMAP_PIXEL_FORMAT_ARGB8888, __pFrontScrollingEffectBitmap); +// SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate overscrolling left bitmap."); - r = GET_BITMAP_CONFIG_N(TAB::TAB_BOUNCE_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, __pRearScrollingEffectBitmap); - SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate overscrolling right bitmap."); +// r = GET_BITMAP_CONFIG_N(TAB::TAB_BOUNCE_EFFECT_RIGHT, BITMAP_PIXEL_FORMAT_ARGB8888, __pRearScrollingEffectBitmap); +// SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate overscrolling right bitmap."); r = GET_BITMAP_CONFIG_N(TAB::ITEM_BG_HIGHLIGHTED, BITMAP_PIXEL_FORMAT_ARGB8888, pFocusBitmap); SysTryLog(NID_UI_CTRL, r == E_SUCCESS, "Failed to locate focus bitmap."); @@ -1886,7 +1886,7 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin return true; } - __scrollFlag = 0; +// __scrollFlag = 0; Rectangle itemBounds(0, 0, 0, 0); _TabItem* pItem = null; @@ -1894,15 +1894,15 @@ _TabPresenter::OnTouchReleased(const _Control& source, const _TouchInfo& touchin ResetScrollAnimationTimer(); int index = GetItemIndexFromPosition(touchinfo.GetCurrentPosition()); - if (__pScrollingEffectVe) - { - __pScrollingEffectVe->RemoveAllAnimations(); - __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - __isScrollEffectEnded = false; - __isScrollEffectStarted = false; - } +// if (__pScrollingEffectVe) +// { +// __pScrollingEffectVe->RemoveAllAnimations(); +// __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// __isScrollEffectEnded = false; +// __isScrollEffectStarted = false; +// } int pressedIndex = GetPressedItemIndex(); __isRightScrollable = false; @@ -2049,86 +2049,86 @@ _TabPresenter::OnTouchMoved(const _Control& source, const _TouchInfo& touchinfo) distance = movedPosition.x - __currentTouchPosition.x; __currentTouchPosition.x = movedPosition.x; - if (!__isEditMode && distance > 0.0f) //Move right i.e Bounce at leftEnd - { - __isTouchMove = true; - if (!__isDirectionRight) - { - if (__pScrollingEffectVe) - { - __pScrollingEffectVe->RemoveAllAnimations(); - __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - } - - __isScrollEffectEnded = false; - __isScrollEffectStarted = false; - } - - __isDirectionRight = true; - SetFirstLoadedItemIndex(); - if ( GetItemAt(0)->GetItemBounds().x >= 0.0f) - { - if (!__isScrollEffectStarted) - { - __pScrollingEffectBitmap = __pFrontScrollingEffectBitmap; - SetOpacityVisualElement(0.0f); - StartScrollingEffect(); - } - - __isScrollEffectStarted = true; - } - - __moveDistance = distance; - DrawHorizontal(); - Draw(); - __moveDistance = 0.0f; - - return true; - } - - if (!__isEditMode && distance < 0.0f)//Move left i.e Bounce at RightEnd - { - __isTouchMove = true; - if (__isDirectionRight) - { - if (__pScrollingEffectVe) - { - __pScrollingEffectVe->RemoveAllAnimations(); - __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - } - - __isScrollEffectEnded = false; - __isScrollEffectStarted = false; - } - - __isDirectionRight = false; - SetLastLoadedItemIndex(); - - if ( __lastLoadedItemIndex == (GetItemCount() - 1) && ((GetItemAt(__lastLoadedItemIndex)->GetItemBounds().x + __itemWidth) <= (__width))) - { - if (!__isScrollEffectStarted) - { - int index = (GetItemCount() - 1); - float xPosition = (GetItemAt(index)->GetItemBounds().x + (__itemWidth / 2.0f)); - __pScrollingEffectBitmap = __pRearScrollingEffectBitmap; - SetOpacityVisualElement(xPosition); - StartScrollingEffect(); - } - - __isScrollEffectStarted = true; - } - - __moveDistance = distance; - DrawHorizontal(); - Draw(); - __moveDistance = 0.0f; - - return true; - } +// if (!__isEditMode && distance > 0.0f) //Move right i.e Bounce at leftEnd +// { +// __isTouchMove = true; +// if (!__isDirectionRight) +// { +// if (__pScrollingEffectVe) +// { +// __pScrollingEffectVe->RemoveAllAnimations(); +// __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// } +// +// __isScrollEffectEnded = false; +// __isScrollEffectStarted = false; +// } +// +// __isDirectionRight = true; +// SetFirstLoadedItemIndex(); +// if ( GetItemAt(0)->GetItemBounds().x >= 0.0f) +// { +// if (!__isScrollEffectStarted) +// { +// __pScrollingEffectBitmap = __pFrontScrollingEffectBitmap; +// SetOpacityVisualElement(0.0f); +// StartScrollingEffect(); +// } +// +// __isScrollEffectStarted = true; +// } +// +// __moveDistance = distance; +// DrawHorizontal(); +// Draw(); +// __moveDistance = 0.0f; +// +// return true; +// } +// +// if (!__isEditMode && distance < 0.0f)//Move left i.e Bounce at RightEnd +// { +// __isTouchMove = true; +// if (__isDirectionRight) +// { +// if (__pScrollingEffectVe) +// { +// __pScrollingEffectVe->RemoveAllAnimations(); +// __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// } +// +// __isScrollEffectEnded = false; +// __isScrollEffectStarted = false; +// } +// +// __isDirectionRight = false; +// SetLastLoadedItemIndex(); +// +// if ( __lastLoadedItemIndex == (GetItemCount() - 1) && ((GetItemAt(__lastLoadedItemIndex)->GetItemBounds().x + __itemWidth) <= (__width))) +// { +// if (!__isScrollEffectStarted) +// { +// int index = (GetItemCount() - 1); +// float xPosition = (GetItemAt(index)->GetItemBounds().x + (__itemWidth / 2.0f)); +// __pScrollingEffectBitmap = __pRearScrollingEffectBitmap; +// SetOpacityVisualElement(xPosition); +// StartScrollingEffect(); +// } +// +// __isScrollEffectStarted = true; +// } +// +// __moveDistance = distance; +// DrawHorizontal(); +// Draw(); +// __moveDistance = 0.0f; +// +// return true; +// } if (!__isEditMode) { @@ -2965,70 +2965,70 @@ _TabPresenter::OnBoundsChanged() return; } -void -_TabPresenter::SetOpacityVisualElement(float xPosition) -{ - Canvas * pCanvas = null; - float bounceWidth = (__itemWidth / 2.0f); - - if (__pScrollingEffectVe == null) - { - __pScrollingEffectVe = new (std::nothrow) _VisualElement(); - SysTryReturnVoidResult(NID_UI_CTRL, __pScrollingEffectVe, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed."); - - __pScrollingEffectVe->Construct(); - __pScrollingEffectVe->SetName(L"Opacity"); - } - - __pScrollingEffectVe->SetBounds(FloatRectangle(xPosition, 0.0f, bounceWidth, __itemHeight)); - __pScrollingEffectVe->SetShowState(true); - __pScrollingEffectVe->SetImplicitAnimationEnabled(true); - __pTab->GetVisualElement()->AttachChild(*__pScrollingEffectVe); - pCanvas = __pScrollingEffectVe->GetCanvasN(); - - if (!pCanvas) - { - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - - SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(GetLastResult())); - return; - } - - Color backgroundColor(0, 0, 0, 0); - pCanvas->SetBackgroundColor(backgroundColor); - pCanvas->Clear(); - FloatRectangle rect(0.0f, 0.0f, bounceWidth, __itemHeight); - - DrawResourceBitmap(*pCanvas, rect, __pScrollingEffectBitmap); - - delete pCanvas; - return; -} - -void -_TabPresenter::StartScrollingEffect(void) -{ - float __startOpacity = 0.0f; - float __endOpacity = 1.0f; - - VisualElementPropertyAnimation* pAnimation = new (std::nothrow) VisualElementPropertyAnimation(); - SysTryReturnVoidResult(NID_UI_CTRL, pAnimation, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed."); - - pAnimation->SetPropertyName(L"opacity"); - pAnimation->SetStartValue(Variant(__startOpacity)); - pAnimation->SetEndValue(Variant(__endOpacity)); - pAnimation->SetDuration(OVERSCROLL_ANIMATION_DURATION); - pAnimation->SetVisualElementAnimationStatusEventListener(this); - - String animationName3(L"opacity"); - __pScrollingEffectVe->AddAnimation(animationName3, *pAnimation); - - delete pAnimation; - __isScrollEffectStarted = true; - return; - -} +//void +//_TabPresenter::SetOpacityVisualElement(float xPosition) +//{ +// Canvas * pCanvas = null; +// float bounceWidth = (__itemWidth / 2.0f); +// +// if (__pScrollingEffectVe == null) +// { +// __pScrollingEffectVe = new (std::nothrow) _VisualElement(); +// SysTryReturnVoidResult(NID_UI_CTRL, __pScrollingEffectVe, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed."); +// +// __pScrollingEffectVe->Construct(); +// __pScrollingEffectVe->SetName(L"Opacity"); +// } +// +// __pScrollingEffectVe->SetBounds(FloatRectangle(xPosition, 0.0f, bounceWidth, __itemHeight)); +// __pScrollingEffectVe->SetShowState(true); +// __pScrollingEffectVe->SetImplicitAnimationEnabled(true); +// __pTab->GetVisualElement()->AttachChild(*__pScrollingEffectVe); +// pCanvas = __pScrollingEffectVe->GetCanvasN(); +// +// if (!pCanvas) +// { +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// +// SysLog(NID_UI_CTRL, "[%s] Propagating.", GetErrorMessage(GetLastResult())); +// return; +// } +// +// Color backgroundColor(0, 0, 0, 0); +// pCanvas->SetBackgroundColor(backgroundColor); +// pCanvas->Clear(); +// FloatRectangle rect(0.0f, 0.0f, bounceWidth, __itemHeight); +// +// DrawResourceBitmap(*pCanvas, rect, __pScrollingEffectBitmap); +// +// delete pCanvas; +// return; +//} + +//void +//_TabPresenter::StartScrollingEffect(void) +//{ +// float __startOpacity = 0.0f; +// float __endOpacity = 1.0f; +// +// VisualElementPropertyAnimation* pAnimation = new (std::nothrow) VisualElementPropertyAnimation(); +// SysTryReturnVoidResult(NID_UI_CTRL, pAnimation, E_OUT_OF_MEMORY, "[E_OUT_OF_MEMORY] Memory allocation failed."); +// +// pAnimation->SetPropertyName(L"opacity"); +// pAnimation->SetStartValue(Variant(__startOpacity)); +// pAnimation->SetEndValue(Variant(__endOpacity)); +// pAnimation->SetDuration(OVERSCROLL_ANIMATION_DURATION); +// pAnimation->SetVisualElementAnimationStatusEventListener(this); +// +// String animationName3(L"opacity"); +// __pScrollingEffectVe->AddAnimation(animationName3, *pAnimation); +// +// delete pAnimation; +// __isScrollEffectStarted = true; +// return; +// +//} void _TabPresenter::OnChangeLayout(_ControlOrientation orientation) @@ -3038,15 +3038,15 @@ _TabPresenter::OnChangeLayout(_ControlOrientation orientation) __isRightScrollable = false; __isLeftScrollable = false; - if (__pScrollingEffectVe) - { - __pScrollingEffectVe->RemoveAllAnimations(); - __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); - __pScrollingEffectVe->Destroy(); - __pScrollingEffectVe = null; - __isScrollEffectEnded = false; - __isScrollEffectStarted = false; - } +// if (__pScrollingEffectVe) +// { +// __pScrollingEffectVe->RemoveAllAnimations(); +// __pTab->GetVisualElement()->DetachChild(*__pScrollingEffectVe); +// __pScrollingEffectVe->Destroy(); +// __pScrollingEffectVe = null; +// __isScrollEffectEnded = false; +// __isScrollEffectStarted = false; +// } ResetScrollAnimationTimer(); ResetReorderTimer(); diff --git a/src/ui/inc/FUiCtrl_TabPresenter.h b/src/ui/inc/FUiCtrl_TabPresenter.h index 88303be..4b3591a 100644 --- a/src/ui/inc/FUiCtrl_TabPresenter.h +++ b/src/ui/inc/FUiCtrl_TabPresenter.h @@ -186,8 +186,8 @@ private: void SetFirstLoadedItemIndex(void); void SetLastLoadedItemIndex(void); - void StartScrollingEffect(void); - void SetOpacityVisualElement(float xPosition); +// void StartScrollingEffect(void); +// void SetOpacityVisualElement(float xPosition); virtual void OnTimerExpired(Tizen::Base::Runtime::Timer& timer); @@ -221,11 +221,11 @@ private: //Tizen::Graphics::Bitmap* __pVerticalLineBitmap; Tizen::Graphics::Bitmap* __pHorizontalLineBitmap; - Tizen::Graphics::Bitmap* __pFrontScrollingEffectBitmap; - Tizen::Graphics::Bitmap* __pRearScrollingEffectBitmap; - Tizen::Graphics::Bitmap* __pScrollingEffectBitmap; +// Tizen::Graphics::Bitmap* __pFrontScrollingEffectBitmap; +// Tizen::Graphics::Bitmap* __pRearScrollingEffectBitmap; +// Tizen::Graphics::Bitmap* __pScrollingEffectBitmap; Tizen::Graphics::Bitmap* __pFocusBitmap; - Tizen::Ui::Animations::_VisualElement* __pScrollingEffectVe; +// Tizen::Ui::Animations::_VisualElement* __pScrollingEffectVe; Tizen::Base::Runtime::Timer* __pFlickAnimationTimer; Tizen::Base::Runtime::Timer* __pScrollAnimationTimer; @@ -269,11 +269,11 @@ private: int __firstLoadedItemIndex; int __lastLoadedItemIndex; - bool __isScrollEffectEnded; - bool __isScrollEffectStarted; +// bool __isScrollEffectEnded; +// bool __isScrollEffectStarted; int __timerCount; bool __isTouchMove; - int __scrollFlag; +// int __scrollFlag; float __tabMinimumSize; int __fontChangeItemCount; diff --git a/src/ui/inc/FUi_ResourceTabConfig.h b/src/ui/inc/FUi_ResourceTabConfig.h index 134ca1e..93c17d3 100644 --- a/src/ui/inc/FUi_ResourceTabConfig.h +++ b/src/ui/inc/FUi_ResourceTabConfig.h @@ -38,6 +38,7 @@ DECLARE_UI_CONFIG(TAB); DECLARE_COLOR_CONFIG(ITEM_TEXT_DISABLED, 11); DECLARE_COLOR_CONFIG(DIVIDER_LEFT_HALF, 12); DECLARE_COLOR_CONFIG(DIVIDER_RIGHT_HALF, 13); + DECLARE_COLOR_CONFIG(ITEM_SELECTED, 14); DECLARE_IMAGE_CONFIG(VERTICAL_DIVIDER_NORMAL, 1); DECLARE_IMAGE_CONFIG(ITEM_SELECTED, 2); DECLARE_IMAGE_CONFIG(ITEM_BG_NORMAL, 3); diff --git a/src/ui/resource/FUi_ResourceTabConfig.cpp b/src/ui/resource/FUi_ResourceTabConfig.cpp index 08e6011..ed702c8 100644 --- a/src/ui/resource/FUi_ResourceTabConfig.cpp +++ b/src/ui/resource/FUi_ResourceTabConfig.cpp @@ -35,8 +35,9 @@ START_UI_CONFIG(TAB); ADD_COLOR_CONFIG(ITEM_TEXT_SELECTED, $B052L6P); ADD_COLOR_CONFIG(ITEM_TEXT_HIGHLIGHTED, $B052L6); ADD_COLOR_CONFIG(ITEM_TEXT_DISABLED, $B052L6); - ADD_COLOR_CONFIG(DIVIDER_LEFT_HALF, $B0221); - ADD_COLOR_CONFIG(DIVIDER_RIGHT_HALF, $B0222); + ADD_COLOR_CONFIG(DIVIDER_LEFT_HALF, $B0221L1); + ADD_COLOR_CONFIG(DIVIDER_RIGHT_HALF, $B0221L1); + ADD_COLOR_CONFIG(ITEM_SELECTED, $B052L1P); //ADD_IMAGE_CONFIG(VERTICAL_DIVIDER_NORMAL, #00_divider_line.#.png); ADD_IMAGE_CONFIG(ITEM_SELECTED, #00_tab_select_bar.#.png); ADD_IMAGE_CONFIG(ITEM_BG_NORMAL, #00_tab_bg.#.png); @@ -91,7 +92,7 @@ START_UI_CONFIG(TAB); ADD_SHAPE_CONFIG(ICON_WIDTH, 63); ADD_SHAPE_CONFIG(ICON_HEIGHT, 63); ADD_SHAPE_CONFIG(BADGE_ICON_MARGIN, 6); - ADD_FIXED_VALUE_CONFIG(DIVIDER_WIDTH, 4); + ADD_FIXED_VALUE_CONFIG(DIVIDER_WIDTH, 2); ADD_SHAPE_CONFIG(DIVIDER_HEIGHT, 26); ADD_SHAPE_CONFIG(TAB_MINIMUM_SIZE, 342); }