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 *uiRealloc(void *, size_t);
|
||||||
extern void uiFree(void *);
|
extern void uiFree(void *);
|
||||||
|
|
||||||
|
// util_darwin.m
|
||||||
|
extern void setStandardControlFont(NSControl *);
|
||||||
|
|
||||||
// container_darwin.m
|
// container_darwin.m
|
||||||
@interface uiContainer : NSView
|
@interface uiContainer : NSView
|
||||||
@property uiControl *child;
|
@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