mirror of
https://github.com/ultimatepp/ultimatepp.git
synced 2026-05-15 14:16:07 -06:00
CtrlLib: Attempt at fixing MacOS menu issue
This commit is contained in:
parent
4c6c1d701c
commit
2c64e6cb50
1 changed files with 14 additions and 10 deletions
|
|
@ -36,7 +36,7 @@ struct CocoMenuBar : public Bar {
|
|||
bool is_same = false;
|
||||
|
||||
struct Item : Bar::Item {
|
||||
NSMenuItem *nsitem;
|
||||
NSMenuItem *nsitem = nullptr;
|
||||
Event<> cb;
|
||||
One<CocoMenuBar> submenu;
|
||||
CocoMenuBar *bar;
|
||||
|
|
@ -56,8 +56,7 @@ struct CocoMenuBar : public Bar {
|
|||
virtual Item& Enable(bool _enable = true);
|
||||
virtual Item& Bold(bool bold = true);
|
||||
|
||||
Item() { nsitem = [NSMenuItem new]; }
|
||||
~Item() { [nsitem release]; }
|
||||
~Item() { if(nsitem) [nsitem release]; }
|
||||
};
|
||||
|
||||
Array<Item> item;
|
||||
|
|
@ -83,6 +82,7 @@ struct CocoMenuBar : public Bar {
|
|||
return item[0]; // dummy item, it will be redone anyway
|
||||
}
|
||||
Item& m = item.Add();
|
||||
m.nsitem = [NSMenuItem new];
|
||||
m.bar = this;
|
||||
[cocomenu addItem:m.nsitem];
|
||||
cy += GetStdFontCy();
|
||||
|
|
@ -93,18 +93,22 @@ struct CocoMenuBar : public Bar {
|
|||
|
||||
virtual Item& AddItem(Event<> cb) {
|
||||
Item& m = AddItem();
|
||||
m.cb = cb;
|
||||
m.nsitem.target = cocomenu;
|
||||
m.nsitem.action = @selector(cocoMenuAction:);
|
||||
if(!just_check) {
|
||||
m.cb = cb;
|
||||
m.nsitem.target = cocomenu;
|
||||
m.nsitem.action = @selector(cocoMenuAction:);
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
virtual Item& AddSubMenu(Event<Bar&> proc) {
|
||||
Item& m = AddItem();
|
||||
m.submenu.Create();
|
||||
m.submenu->cocomenu->proc = proc;
|
||||
m.nsitem.action = @selector(cocoMenuAction:);
|
||||
m.nsitem.submenu = m.submenu->cocomenu;
|
||||
if(!just_check) {
|
||||
m.submenu.Create();
|
||||
m.submenu->cocomenu->proc = proc;
|
||||
m.nsitem.action = @selector(cocoMenuAction:);
|
||||
m.nsitem.submenu = m.submenu->cocomenu;
|
||||
}
|
||||
return m;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue