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);