summaryrefslogtreecommitdiff
path: root/new/darwin/entry.m
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2015-04-16 14:41:24 -0400
committerPietro Gagliardi <[email protected]>2015-04-16 14:41:24 -0400
commit0660104659c17852035233617ce9885339c93d7c (patch)
treeb52848e71704207ffc62a9a9a5488383b9b913a2 /new/darwin/entry.m
parent89931668a56b0b12edcf4e77423313f5917e6bb0 (diff)
Migrated darwin/label.m; fixed up some of the other files.
Diffstat (limited to 'new/darwin/entry.m')
-rw-r--r--new/darwin/entry.m50
1 files changed, 28 insertions, 22 deletions
diff --git a/new/darwin/entry.m b/new/darwin/entry.m
index f2b208b..84835f3 100644
--- a/new/darwin/entry.m
+++ b/new/darwin/entry.m
@@ -2,22 +2,38 @@
#import "uipriv_darwin.h"
@interface uiNSTextField : NSTextField
-@property uiControl *uiC;
+@property uiEntry *uiE;
@end
@implementation uiNSTextField
- (void)viewDidMoveToSuperview
{
- if (uiDarwinControlFreeWhenAppropriate(self.uiC, [self superview])) {
+ if (uiDarwinControlFreeWhenAppropriate(uiControl(self.uiE), [self superview])) {
[self setTarget:nil];
- self.uiC = NULL;
+ self.uiE = NULL;
}
[super viewDidMoveToSuperview];
}
@end
+static char *entryText(uiEntry *e)
+{
+ uiNSTextField *t;
+
+ t = (uiNSTextField *) uiControlHandle(uiControl(e));
+ return uiDarwinNSStringToText([t stringValue]);
+}
+
+static void entrySetText(uiEntry *e, const char *text)
+{
+ uiNSTextField *t;
+
+ t = (uiNSTextField *) uiControlHandle(uiControl(e));
+ [t setStringValue:toNSString(text)];
+}
+
// TOOD move elsewhere
// these are based on interface builder defaults; my comments in the old code weren't very good so I don't really know what talked about what, sorry :/
void finishNewTextField(NSTextField *t, BOOL isEntry)
@@ -35,33 +51,23 @@ void finishNewTextField(NSTextField *t, BOOL isEntry)
[[t cell] setScrollable:YES];
}
-uiControl *uiNewEntry(void)
+uiEntry *uiNewEntry(void)
{
- uiControl *c;
+ uiEntry *e;
uiNSTextField *t;
- c = uiDarwinNewControl([uiNSTextField class], NO, NO);
+ e = uiNew(uiEntry);
+
+ uiDarwinNewControl(uiControl(e), [uiNSTextField class], NO, NO);
t = (uiNSTextField *) uiControlHandle(c);
- t.uiC = c;
[t setSelectable:YES]; // otherwise the setting is masked by the editable default of YES
finishNewTextField((NSTextField *) t, YES);
- return t.uiC;
-}
-
-char *uiEntryText(uiControl *c)
-{
- uiNSTextField *t;
-
- t = (uiNSTextField *) uiControlHandle(c);
- return uiDarwinNSStringToText([t stringValue]);
-}
+ uiEntry(e)->Text = entryText;
+ uiEntry(e)->SetText = entrySetText;
-void uiEntrySetText(uiControl *c, const char *text)
-{
- uiNSTextField *t;
+ t.uiE = e;
- t = (uiNSTextField *) uiControlHandle(c);
- [t setStringValue:toNSString(text)];
+ return t.uiE;
}