summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-08-25 16:07:35 -0400
committerPietro Gagliardi <[email protected]>2014-08-25 16:07:35 -0400
commit910f78c7e59f12d8cd99183c5b0b743f30ee5951 (patch)
tree5dde1dd5bf41f350bdb5a549ece742a07865995e
parentf6d7797fd6225ff0e7aa9507858dd8e5496b9559 (diff)
Made the width of TextFields more reasonable on Mac OS X.
-rw-r--r--redo/area_darwin.m4
-rw-r--r--redo/objc_darwin.h1
-rw-r--r--redo/textfield_darwin.go4
3 files changed, 6 insertions, 3 deletions
diff --git a/redo/area_darwin.m b/redo/area_darwin.m
index 033509b..020ece8 100644
--- a/redo/area_darwin.m
+++ b/redo/area_darwin.m
@@ -225,9 +225,9 @@ void areaTextFieldOpen(id area, id textfield, intptr_t x, intptr_t y)
goAreaView *a = (goAreaView *) area;
NSTextField *tf = toNSTextField(textfield);
+ // see TextField.preferredSize() in textfield_darwin.go
[tf sizeToFit];
- // TODO
- [tf setFrameSize:NSMakeSize(150, [tf frame].size.height)];
+ [tf setFrameSize:NSMakeSize(textfieldWidth, [tf frame].size.height)];
[tf setFrameOrigin:NSMakePoint((CGFloat) x, (CGFloat) y)];
[tf setHidden:NO];
[[tf window] makeFirstResponder:tf];
diff --git a/redo/objc_darwin.h b/redo/objc_darwin.h
index 57f7acf..d42b806 100644
--- a/redo/objc_darwin.h
+++ b/redo/objc_darwin.h
@@ -58,6 +58,7 @@ extern id windowContentView(id);
extern void windowRedraw(id);
/* basicctrls_darwin.m */
+#define textfieldWidth (96) /* according to Interface Builder */
extern id newButton(void);
extern void buttonSetDelegate(id, void *);
extern const char *buttonText(id);
diff --git a/redo/textfield_darwin.go b/redo/textfield_darwin.go
index cbe5f8b..89711d4 100644
--- a/redo/textfield_darwin.go
+++ b/redo/textfield_darwin.go
@@ -81,7 +81,9 @@ func (t *textfield) allocate(x int, y int, width int, height int, d *sizing) []*
}
func (t *textfield) preferredSize(d *sizing) (width, height int) {
- return basepreferredSize(t, d)
+ _, height = basepreferredSize(t, d)
+ // the returned width is based on the contents; use this instead
+ return C.textfieldWidth, height
}
func (t *textfield) commitResize(a *allocation, d *sizing) {