and prevent issues.
Signed-off-by: vipul <vipul.kumar@samsung.com>
Change-Id: I833097b5a4beb8a9d03048c7cd22f696b34d0ce9
__pContextMenuPresenter->CalculateShowItemCount();
}
+ __pContextMenuPresenter->CalculateItemMaximumWidth();
r = __pContextMenuPresenter->CalculateWindowRect();
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, E_SYSTEM, "Propagating.");
__actionId.Add(actionId);
- __pContextMenuPresenter->CalculateShowItemCount();
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateShowItemCount();
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return r;
}
__actionId.InsertAt(actionId, index);
- __pContextMenuPresenter->CalculateShowItemCount();
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateShowItemCount();
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return r;
}
__actionId.SetAt(actionId, index);
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return r;
}
__actionId.RemoveAt(index);
- __pContextMenuPresenter->CalculateShowItemCount();
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateShowItemCount();
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return r;
}
__actionId.RemoveAll();
- __pContextMenuPresenter->CalculateShowItemCount();
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateShowItemCount();
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return r;
}
AdjustDropPosition();
}
- __pContextMenuPresenter->CalculateWindowRect();
+ if (__isAttachedToMainTree)
+ {
+ __pContextMenuPresenter->CalculateWindowRect();
+ }
return E_SUCCESS;
}
r = SetProperty("maxVisibleItemsCount", Variant(count));
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to set show item count.");
- if (__style == CONTEXT_MENU_CORE_STYLE_LIST)
+ if (__style == CONTEXT_MENU_CORE_STYLE_LIST && __isAttachedToMainTree)
{
r = __pContextMenuPresenter->CalculateWindowRect();
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to calculate window.");
Canvas* pCanvas = __pContextMenu->GetCanvasN();
- r = GetLastResult();
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating.");
+ SysTryReturnResult(NID_UI_CTRL, pCanvas != null, GetLastResult(), "Propagating.");
// Clear canvas for drawing area of the ContextMenu.
pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
r = GetLastResult();
SysTryReturnResult(NID_UI_CTRL, pItem != null, r, "Failed to get the item.");
- r = __pContextMenu->GetScrollPanel()->DetachChild(*pItem);
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ if (pItem->HasParent())
+ {
+ r = __pContextMenu->GetScrollPanel()->DetachChild(*pItem);
+ SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ }
pItem = CreateItemN(text, actionId, pNormalBitmap, pPressedBitmap, pHighlightedBitmap);
SysTryReturnResult(NID_UI_CTRL, pItem != null, GetLastResult(), "Failed to create item.");
r = GetLastResult();
SysTryReturnResult(NID_UI_CTRL, pItem != null, r, "Failed to get the item.");
- r = __pContextMenu->GetScrollPanel()->DetachChild(*pItem);
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ if (pItem->HasParent())
+ {
+ r = __pContextMenu->GetScrollPanel()->DetachChild(*pItem);
+ SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ }
r = __pModel->RemoveItem(index);
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to delete item.");
Color color = __pContextMenu->GetItemColor(CONTEXT_MENU_CORE_ITEM_STATUS_PRESSED);
pItem = __pModel->GetItem(i);
+ SysTryReturnResult(NID_UI_CTRL, pItem != null, E_SYSTEM, "A system error has occured. pItem must not be null.");
+
pItem->SetPressedItemColor(color);
}
return E_SUCCESS;
{
FloatDimension itemSize(0.0f, 0.0f);
FloatDimension textArea(0.0f, 0.0f);
- float maxItemWidth = 0.0f;
+ float maxItemWidth = __itemMinWidth;
- for (int i = 0; i < __pModel->GetItemCount() - 1; i++)
+ for (int i = 0; i < __pModel->GetItemCount(); i++)
{
_ContextMenuItem* pItem = null;
{
maxItemWidth = itemSize.width;
}
- __itemWidth = maxItemWidth;
}
+ __itemWidth = maxItemWidth;
}
int
result r = E_SUCCESS;
Canvas* pCanvas = __pContextMenu->GetCanvasN();
- r = GetLastResult();
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, GetLastResult(), "Propagating.");
+ SysTryReturnResult(NID_UI_CTRL, pCanvas != null, GetLastResult(), "Propagating.");
// Clear canvas for drawing area of the ContextMenu.
pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
__rotation = rotation;
__pOptionMenuPresenter->ResetSelectedItem();
- __pOptionMenuPresenter->CalculateWindowRect();
}
void
result
_OptionMenuImpl::OnAttachedToMainTree(void)
{
- return _WindowImpl::OnAttachedToMainTree();;
+ return _WindowImpl::OnAttachedToMainTree();
}
const char*
maxItemWidth = itemSize.width;
}
- __itemWidth = maxItemWidth;
}
-
+ __itemWidth = maxItemWidth;
}
result
SysTryReturnResult(NID_UI_CTRL, (index < __pOptionMenu->GetItemCount()), E_INVALID_ARG,
"Invalid argument is used. The specified index (%d) is invalid.", index);
- result r = __pOptionMenu->GetScrollPanel()->DetachChild(*__pModel->GetItem(index));
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ result r = E_SUCCESS;
+ _OptionMenuItem* pItem = null;
+
+ pItem = __pModel->GetItem(index);
+
+ if (pItem != null && pItem->HasParent())
+ {
+ r = __pOptionMenu->GetScrollPanel()->DetachChild(*__pModel->GetItem(index));
+ SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to detach item.");
+ }
r = __pModel->RemoveItem(index);
SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Failed to delete item.");
result r = E_SUCCESS;
Canvas* pCanvas = __pOptionMenu->GetCanvasN();
- r = GetLastResult();
- SysTryReturnResult(NID_UI_CTRL, r == E_SUCCESS, r, "Propagating");
+ SysTryReturnResult(NID_UI_CTRL, pCanvas != null, GetLastResult(), "Propagating");
// Clear canvas for drawing area of the OptionMenu.
pCanvas->SetBackgroundColor(Color(0, 0, 0, 0));
virtual void OnDrawFocus(void) {};
virtual void OnFocusModeStateChanged(void) {};
+ virtual void CalculateItemMaximumWidth(void) {};
+
virtual void OnFontChanged(Tizen::Graphics::Font* pFont) = 0;
virtual void OnFontInfoRequested(unsigned long& style, float& size) = 0;