summaryrefslogtreecommitdiff
path: root/redo/area_darwin.m
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-22 22:32:31 -0400
committerPietro Gagliardi <[email protected]>2014-08-22 22:32:31 -0400
commit89ea8f5cbb502d0652595993a062ea1a947b50d6 (patch)
tree38f01eac1fe1698fc13232cb56285a4215b641f5 /redo/area_darwin.m
parentc7268f8feed749a385d171409ac99430d88d348a (diff)
Started the Mac OS X implementation of Area.OpenTextFieldAt().
Diffstat (limited to 'redo/area_darwin.m')
-rw-r--r--redo/area_darwin.m42
1 files changed, 42 insertions, 0 deletions
diff --git a/redo/area_darwin.m b/redo/area_darwin.m
index b3d095e..280cb9e 100644
--- a/redo/area_darwin.m
+++ b/redo/area_darwin.m
@@ -6,6 +6,7 @@
#define toNSEvent(x) ((NSEvent *) (x))
#define toNSView(x) ((NSView *) (x))
+#define toNSTextField(x) ((NSTextField *) (x))
#define toNSInteger(x) ((NSInteger) (x))
#define fromNSInteger(x) ((intptr_t) (x))
@@ -203,3 +204,44 @@ void areaRepaintAll(id view)
{
[toNSView(view) display];
}
+
+@interface goAreaTextField : NSTextField {
+@public
+ void *goarea;
+}
+@end
+
+@implementation goAreaTextField
+/*
+- (BOOL)resignFirstResponder
+{
+ [self setHidden:YES];
+ areaTextFieldDismissed(self->goarea);
+ return [super resignFirstResponder];
+}
+*/
+@end
+
+id newAreaTextField(id area, void *goarea)
+{
+ goAreaTextField *tf;
+
+ tf = [[goAreaTextField alloc] initWithFrame:NSZeroRect];
+ finishNewTextField((id) tf, YES);
+ [toNSView(area) addSubview:tf];
+ [tf setHidden:YES];
+ tf->goarea = goarea;
+ return (id) tf;
+}
+
+void areaTextFieldOpen(id textfield, intptr_t x, intptr_t y)
+{
+ NSTextField *tf = toNSTextField(textfield);
+
+ [tf sizeToFit];
+ // TODO
+ [tf setFrameSize:NSMakeSize(150, 20)];
+ [tf setFrameOrigin:NSMakePoint((CGFloat) x, (CGFloat) y)];
+ [tf setHidden:NO];
+ [[tf window] makeFirstResponder:tf];
+}