mirror of https://github.com/bsnes-emu/bsnes.git
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
@implementation CocoaRadioItem : NSMenuItem
|
|
|
|
-(id) initWith:(phoenix::RadioItem&)radioItemReference {
|
|
if(self = [super initWithTitle:@"" action:@selector(activate) keyEquivalent:@""]) {
|
|
radioItem = &radioItemReference;
|
|
|
|
[self setTarget:self];
|
|
[self setOnStateImage:[NSImage imageNamed:@"NSMenuRadio"]];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
-(void) activate {
|
|
radioItem->setChecked();
|
|
if(radioItem->onActivate) radioItem->onActivate();
|
|
}
|
|
|
|
@end
|
|
|
|
namespace phoenix {
|
|
|
|
void pRadioItem::setChecked() {
|
|
@autoreleasepool {
|
|
for(auto& item : radioItem.state.group) {
|
|
auto state = (&item == &radioItem) ? NSOnState : NSOffState;
|
|
[item.p.cocoaAction setState:state];
|
|
}
|
|
}
|
|
}
|
|
|
|
void pRadioItem::setGroup(const group<RadioItem>& group) {
|
|
}
|
|
|
|
void pRadioItem::setText(string text) {
|
|
@autoreleasepool {
|
|
[cocoaAction setTitle:[NSString stringWithUTF8String:text]];
|
|
}
|
|
}
|
|
|
|
void pRadioItem::constructor() {
|
|
@autoreleasepool {
|
|
cocoaAction = cocoaRadioItem = [[CocoaRadioItem alloc] initWith:radioItem];
|
|
setText(radioItem.state.text);
|
|
}
|
|
}
|
|
|
|
void pRadioItem::destructor() {
|
|
@autoreleasepool {
|
|
[cocoaAction release];
|
|
}
|
|
}
|
|
|
|
}
|