mirror of https://github.com/bsnes-emu/bsnes.git
69 lines
1.6 KiB
C++
69 lines
1.6 KiB
C++
@implementation CocoaFrame : NSBox
|
|
|
|
-(id) initWith:(phoenix::Frame&)frameReference {
|
|
if(self = [super initWithFrame:NSMakeRect(0, 0, 0, 0)]) {
|
|
frame = &frameReference;
|
|
|
|
[self setTitle:@""];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
@end
|
|
|
|
namespace phoenix {
|
|
|
|
void pFrame::setEnabled(bool enabled) {
|
|
if(frame.state.layout) frame.state.layout->setEnabled(frame.state.layout->enabled());
|
|
pWidget::setEnabled(enabled);
|
|
}
|
|
|
|
void pFrame::setFont(string font) {
|
|
@autoreleasepool {
|
|
[cocoaView setTitleFont:pFont::cocoaFont(font)];
|
|
}
|
|
}
|
|
|
|
void pFrame::setGeometry(Geometry geometry) {
|
|
bool empty = frame.state.text.empty();
|
|
Size size = Font::size(frame.font(), frame.state.text);
|
|
pWidget::setGeometry({
|
|
geometry.x - 3, geometry.y - (empty ? size.height - 2 : 1),
|
|
geometry.width + 6, geometry.height + (empty ? size.height + 2 : 5)
|
|
});
|
|
if(frame.state.layout == nullptr) return;
|
|
geometry.x += 1, geometry.y += (empty ? 1 : size.height - 2);
|
|
geometry.width -= 2, geometry.height -= (empty ? 1 : size.height - 1);
|
|
frame.state.layout->setGeometry(geometry);
|
|
}
|
|
|
|
void pFrame::setText(string text) {
|
|
@autoreleasepool {
|
|
[cocoaView setTitle:[NSString stringWithUTF8String:text]];
|
|
}
|
|
}
|
|
|
|
void pFrame::setVisible(bool visible) {
|
|
if(frame.state.layout) frame.state.layout->setVisible(frame.state.layout->visible());
|
|
pWidget::setVisible(visible);
|
|
}
|
|
|
|
void pFrame::constructor() {
|
|
@autoreleasepool {
|
|
cocoaView = cocoaFrame = [[CocoaFrame alloc] initWith:frame];
|
|
}
|
|
}
|
|
|
|
void pFrame::destructor() {
|
|
@autoreleasepool {
|
|
[cocoaView release];
|
|
}
|
|
}
|
|
|
|
void pFrame::orphan() {
|
|
destructor();
|
|
constructor();
|
|
}
|
|
|
|
}
|