From 995db0bc28c42733e3d5239e36e84c6881f693ff Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi <pietro10@mac.com> Date: Sat, 11 Apr 2015 23:49:34 -0400 Subject: [PATCH] Implemented uiLabel on Mac OS X. --- new/label_darwin.m | 53 +++++++++++++++++++++++++++++++++++++++++++++ new/uipriv_darwin.h | 3 +++ 2 files changed, 56 insertions(+) create mode 100644 new/label_darwin.m diff --git a/new/label_darwin.m b/new/label_darwin.m new file mode 100644 index 0000000..e3fb351 --- /dev/null +++ b/new/label_darwin.m @@ -0,0 +1,53 @@ +// 9 april 2015 +#import "uipriv_darwin.h" + +@interface uiLabelNSTextField : NSTextField +@property uiControl *uiC; +@end + +@implementation uiLabelNSTextField + +- (void)viewDidMoveToSuperview +{ + if (uiDarwinControlFreeWhenAppropriate(self.uiC, [self superview])) { + [self setTarget:nil]; + self.uiC = NULL; + } + [super viewDidMoveToSuperview]; +} + +@end + +uiControl *uiNewLabel(const char *text) +{ + uiControl *c; + uiLabelNSTextField *l; + + c = uiDarwinNewControl([uiLabelNSTextField class], NO, NO); + l = (uiLabelNSTextField *) uiControlHandle(c); + l.uiC = c; + + [l setStringValue:toNSString(text)]; + [l setEditable:NO]; + [l setSelectable:NO]; + [l setDrawsBackground:NO]; + finishNewTextField((NSTextField *) l, NO); + + return l.uiC; +} + +char *uiLabelText(uiControl *c) +{ + uiLabelNSTextField *t; + + t = (uiLabelNSTextField *) uiControlHandle(c); + return uiDarwinNSStringToText([t stringValue]); +} + +void uiLabelSetText(uiControl *c, const char *text) +{ + uiLabelNSTextField *t; + + t = (uiLabelNSTextField *) uiControlHandle(c); + [t setStringValue:toNSString(text)]; +} diff --git a/new/uipriv_darwin.h b/new/uipriv_darwin.h index f91b84d..bcdc691 100644 --- a/new/uipriv_darwin.h +++ b/new/uipriv_darwin.h @@ -38,3 +38,6 @@ extern void disableAutocorrect(NSTextView *); - (BOOL)uiMargined; - (void)uiSetMargined:(BOOL)margined; @end + +// entry_darwin.m +extern void finishNewTextField(NSTextField *, BOOL);