Implemented uiButton on Mac OS X. Now to fix build issues and test...
This commit is contained in:
parent
96e25cf502
commit
3969095a33
|
@ -0,0 +1,57 @@
|
|||
// 7 april 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
@interface button : NSObject
|
||||
@property uiControl *c;
|
||||
@property void (*onClicked)(uiControl *, void *);
|
||||
@property void *onClickedData;
|
||||
@end
|
||||
|
||||
@implementation button
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender
|
||||
{
|
||||
(*(self.onClicked))(self.c, self.onClickedData);
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
static void defaultOnClicked(uiControl *c, void *data)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
// TODO destruction
|
||||
uiControl *uiNewButton(const char *text)
|
||||
{
|
||||
button *b;
|
||||
NSButton *bb;
|
||||
|
||||
b = [button new];
|
||||
b->c = uiDarwinNewControl([NSButton class], NO, NO, b);
|
||||
|
||||
bb = (NSButton *) uiDarwinControlData(b->c);
|
||||
[bb setTitle:toNSString(text)];
|
||||
[bb setButtonType:NSMomentaryPushInButton];
|
||||
[bb setBordered:YES];
|
||||
[bb setBezelStyle:NSRoundedBezelStyle];
|
||||
setStandardControlFont((NSControl *) bb);
|
||||
|
||||
[bb setTarget:b];
|
||||
[bb setAction:@selector(buttonClicked:)];
|
||||
|
||||
b->onClicked = defaultOnClicked;
|
||||
|
||||
return b->c;
|
||||
}
|
||||
|
||||
// TODO text
|
||||
|
||||
void uiButtonOnClicked(uiControl *c, void (*f)(uiControl *, void *), void *data)
|
||||
{
|
||||
button *b;
|
||||
|
||||
b = (button *) uiDarwinControlData(c);
|
||||
b->onClicked = f;
|
||||
b->onClickedData = data;
|
||||
}
|
|
@ -12,6 +12,9 @@ extern void *uiAlloc(size_t);
|
|||
extern void *uiRealloc(void *, size_t);
|
||||
extern void uiFree(void *);
|
||||
|
||||
// util_darwin.m
|
||||
extern void setStandardControlFont(NSControl *);
|
||||
|
||||
// container_darwin.m
|
||||
@interface uiContainer : NSView
|
||||
@property uiControl *child;
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
// 7 april 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
// also fine for NSCells and NSTexts (NSTextViews)
|
||||
void setStandardControlFont(NSControl *control)
|
||||
{
|
||||
[control setFont:[NSFont systemFontOfSize:[NSFont systemFontSizeForControlSize:NSRegularControlSize]]];
|
||||
}
|
Loading…
Reference in New Issue