mirror of
https://github.com/bsnes-emu/bsnes.git
synced 2025-02-23 22:52:34 +01:00
byuu says: Changelog: - restructured the project and removed a whole bunch of old/dead directives from higan/GNUmakefile - huge amounts of work on hiro/cocoa (compiles but ~70% of the functionality is commented out) - fixed a masking error in my ARM CPU disassembler [Lioncash] - SFC: decided to change board cic=(411,413) back to board region=(ntsc,pal) ... the former was too obtuse If you rename Boolean (it's a problem with an include from ruby, not from hiro) and disable all the ruby drivers, you can compile an OS X binary, but obviously it's not going to do anything. It's a boring WIP, I just wanted to push out the project structure change now at the start of this WIP cycle.
69 lines
1.5 KiB
C++
69 lines
1.5 KiB
C++
#if defined(Hiro_MenuRadioItem)
|
|
|
|
@implementation CocoaMenuRadioItem : NSMenuItem
|
|
|
|
-(id) initWith:(hiro::mMenuRadioItem&)menuRadioItemReference {
|
|
if(self = [super initWithTitle:@"" action:@selector(activate) keyEquivalent:@""]) {
|
|
menuRadioItem = &menuRadioItemReference;
|
|
|
|
[self setTarget:self];
|
|
[self setOnStateImage:[NSImage imageNamed:@"NSMenuRadio"]];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
-(void) activate {
|
|
menuRadioItem->setChecked();
|
|
menuRadioItem->doActivate();
|
|
}
|
|
|
|
@end
|
|
|
|
namespace hiro {
|
|
|
|
auto pMenuRadioItem::construct() -> void {
|
|
@autoreleasepool {
|
|
cocoaAction = cocoaMenuRadioItem = [[CocoaMenuRadioItem alloc] initWith:self()];
|
|
pAction::construct();
|
|
|
|
if(state().checked) setChecked();
|
|
setText(state().text);
|
|
}
|
|
}
|
|
|
|
auto pMenuRadioItem::destruct() -> void {
|
|
@autoreleasepool {
|
|
[cocoaAction release];
|
|
}
|
|
}
|
|
|
|
auto pMenuRadioItem::setChecked() -> void {
|
|
@autoreleasepool {
|
|
if(auto group = state().group) {
|
|
for(auto& weak : group->state.objects) {
|
|
if(auto object = weak.acquire()) {
|
|
if(auto self = object->self()) {
|
|
if(auto p = dynamic_cast<pMenuRadioItem*>(self)) {
|
|
auto state = this == p ? NSOnState : NSOffState;
|
|
[p->cocoaAction setState:state];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
auto pMenuRadioItem::setGroup(sGroup group) -> void {
|
|
}
|
|
|
|
auto pMenuRadioItem::setText(const string& text) -> void {
|
|
@autoreleasepool {
|
|
[cocoaAction setTitle:[NSString stringWithUTF8String:text]];
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|