summaryrefslogtreecommitdiff
path: root/new/darwin/label.m
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2015-04-15 18:49:45 -0400
committerPietro Gagliardi <[email protected]>2015-04-15 18:49:45 -0400
commit518a5ddbf15d50a254c732a80d5907ef8878abe0 (patch)
tree48cf259f98994e4570e65c389fcd9824272884ad /new/darwin/label.m
parent50ae3ca045e7f5f5744043df0a4506e2f6930bb1 (diff)
Split all OS backends into their own folders.
Diffstat (limited to 'new/darwin/label.m')
-rw-r--r--new/darwin/label.m53
1 files changed, 53 insertions, 0 deletions
diff --git a/new/darwin/label.m b/new/darwin/label.m
new file mode 100644
index 0000000..e3fb351
--- /dev/null
+++ b/new/darwin/label.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)];
+}