|
@@ -621,8 +621,9 @@ static TComponent * LastPopupComponent = NULL;
|
|
|
static TRect LastPopupRect(-1, -1, -1, -1);
|
|
|
static TDateTime LastCloseUp;
|
|
|
//---------------------------------------------------------------------------
|
|
|
-static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items)
|
|
|
+static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items, TBasicAction * ParentAction, TTBCustomItem *& ParentActionItem)
|
|
|
{
|
|
|
+ ParentActionItem = NULL;
|
|
|
for (int Index = 0; Index < AItems->Count; Index++)
|
|
|
{
|
|
|
TMenuItem * AItem = AItems->Items[Index];
|
|
@@ -639,6 +640,7 @@ static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items)
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ TTBXSubmenuItem * SubmenuItem = NULL;
|
|
|
// see TB2DsgnConverter.pas DoConvert
|
|
|
if (AItem->Caption == L"-")
|
|
|
{
|
|
@@ -648,13 +650,18 @@ static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items)
|
|
|
{
|
|
|
if (AItem->Count > 0)
|
|
|
{
|
|
|
- Item = new TTBXSubmenuItem(Items->Owner);
|
|
|
+ SubmenuItem = new TTBXSubmenuItem(Items->Owner);
|
|
|
+ Item = SubmenuItem;
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
Item = new TTBXItem(Items->Owner);
|
|
|
}
|
|
|
Item->Action = AItem->Action;
|
|
|
+ if ((ParentAction != NULL) && (Item->Action == ParentAction))
|
|
|
+ {
|
|
|
+ ParentActionItem = Item;
|
|
|
+ }
|
|
|
Item->AutoCheck = AItem->AutoCheck;
|
|
|
Item->Caption = AItem->Caption;
|
|
|
Item->Checked = AItem->Checked;
|
|
@@ -677,7 +684,15 @@ static void __fastcall ConvertMenu(TMenuItem * AItems, TTBCustomItem * Items)
|
|
|
|
|
|
if (AItem->Count > 0)
|
|
|
{
|
|
|
- ConvertMenu(AItem, Item);
|
|
|
+ TTBCustomItem * ActionItem;
|
|
|
+ ConvertMenu(AItem, Item, AItem->Action, ActionItem);
|
|
|
+ if ((AItem->Action != NULL) && (ActionItem != NULL) && DebugAlwaysTrue(SubmenuItem != NULL))
|
|
|
+ {
|
|
|
+ SubmenuItem->DropdownCombo = true;
|
|
|
+ TTBItemOptions Options = ActionItem->Options;
|
|
|
+ ActionItem->Options = Options << tboDefault;
|
|
|
+ SubmenuItem->DropdownCombo = true;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -713,7 +728,8 @@ void __fastcall MenuPopup(TPopupMenu * AMenu, TRect Rect,
|
|
|
Menu->OnPopup = AMenu->OnPopup;
|
|
|
Menu->Items->SubMenuImages = AMenu->Images;
|
|
|
|
|
|
- ConvertMenu(AMenu->Items, Menu->Items);
|
|
|
+ TTBCustomItem * Dummy;
|
|
|
+ ConvertMenu(AMenu->Items, Menu->Items, NULL, Dummy);
|
|
|
}
|
|
|
|
|
|
Menu->PopupComponent = PopupComponent;
|