mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-02-22 08:03:45 +00:00
Merge pull request #2198 from Areloch/MenuBarMoreFixup
Fixes up some menubar issues.
This commit is contained in:
commit
cd5b0a0612
3 changed files with 19 additions and 10 deletions
|
|
@ -133,7 +133,8 @@ GuiCanvas::GuiCanvas(): GuiControl(),
|
|||
mLastRenderMs(0),
|
||||
mPlatformWindow(NULL),
|
||||
mDisplayWindow(true),
|
||||
mMenuBarCtrl(NULL)
|
||||
mMenuBarCtrl(nullptr),
|
||||
mMenuBackground(nullptr)
|
||||
{
|
||||
setBounds(0, 0, 640, 480);
|
||||
mAwake = true;
|
||||
|
|
@ -296,8 +297,11 @@ void GuiCanvas::setMenuBar(SimObject *obj)
|
|||
mMenuBarCtrl = dynamic_cast<GuiControl*>(obj);
|
||||
|
||||
//remove old menubar
|
||||
if( oldMenuBar )
|
||||
Parent::removeObject( oldMenuBar );
|
||||
if (oldMenuBar)
|
||||
{
|
||||
Parent::removeObject(oldMenuBar);
|
||||
Parent::removeObject(mMenuBackground); //also remove the modeless wrapper
|
||||
}
|
||||
|
||||
// set new menubar
|
||||
if (mMenuBarCtrl)
|
||||
|
|
@ -312,14 +316,17 @@ void GuiCanvas::setMenuBar(SimObject *obj)
|
|||
return;
|
||||
}
|
||||
|
||||
GuiControl* menuBackground = new GuiControl();
|
||||
menuBackground->registerObject();
|
||||
if (mMenuBackground == nullptr)
|
||||
{
|
||||
mMenuBackground = new GuiControl();
|
||||
mMenuBackground->registerObject();
|
||||
|
||||
menuBackground->setControlProfile(profile);
|
||||
mMenuBackground->setControlProfile(profile);
|
||||
}
|
||||
|
||||
menuBackground->addObject(mMenuBarCtrl);
|
||||
mMenuBackground->addObject(mMenuBarCtrl);
|
||||
|
||||
Parent::addObject(menuBackground);
|
||||
Parent::addObject(mMenuBackground);
|
||||
}
|
||||
|
||||
// update window accelerator keys
|
||||
|
|
|
|||
|
|
@ -198,6 +198,7 @@ protected:
|
|||
static CanvasSizeChangeSignal smCanvasSizeChangeSignal;
|
||||
|
||||
GuiControl *mMenuBarCtrl;
|
||||
GuiControl* mMenuBackground;
|
||||
|
||||
public:
|
||||
DECLARE_CONOBJECT(GuiCanvas);
|
||||
|
|
|
|||
|
|
@ -1519,9 +1519,10 @@ DefineConsoleMethod(GuiMenuBar, insert, void, (SimObject* pObject, S32 pos), (nu
|
|||
object->insert(pObject, pos);
|
||||
}
|
||||
|
||||
DefineConsoleMethod(GuiMenuBar, findMenu, S32, (StringTableEntry barTitle), (""), "(barTitle)")
|
||||
DefineConsoleMethod(GuiMenuBar, findMenu, S32, (const char* barTitle), (""), "(barTitle)")
|
||||
{
|
||||
PopupMenu* menu = object->findMenu(barTitle);
|
||||
StringTableEntry barTitleStr = StringTable->insert(barTitle);
|
||||
PopupMenu* menu = object->findMenu(barTitleStr);
|
||||
|
||||
if (menu)
|
||||
return menu->getId();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue