summaryrefslogtreecommitdiff
path: root/new
diff options
context:
space:
mode:
Diffstat (limited to 'new')
-rw-r--r--new/label_darwin.m53
-rw-r--r--new/uipriv_darwin.h3
2 files changed, 56 insertions, 0 deletions
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);