From 7ddb78773d093fada4c59c11c7d77a15449252d7 Mon Sep 17 00:00:00 2001 From: Pietro Gagliardi Date: Fri, 21 Aug 2015 20:14:50 -0400 Subject: [PATCH] Split the new editable NSTextField part of uiNewEntry() into its own function so uiSpinbox can use it. --- redo/reredo/darwin/entry.m | 21 ++++++++++++++++----- redo/reredo/darwin/uipriv_darwin.h | 3 +-- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/redo/reredo/darwin/entry.m b/redo/reredo/darwin/entry.m index cb7180c4..c9b5cfc1 100644 --- a/redo/reredo/darwin/entry.m +++ b/redo/reredo/darwin/entry.m @@ -4,6 +4,9 @@ // Text fields for entering text have no intrinsic width; we'll use the default Interface Builder width for them. #define textfieldWidth 96 +@interface libui_intrinsicWidthNSTextField : NSTextField +@end + @implementation libui_intrinsicWidthNSTextField - (NSSize)intrinsicContentSize @@ -113,6 +116,11 @@ void uiEntrySetReadOnly(uiEntry *e, int readonly) [e->textfield setEditable:editable]; } +static void defaultOnChanged(uiEntry *e, void *data) +{ + // do nothing +} + // 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) { @@ -129,9 +137,14 @@ void finishNewTextField(NSTextField *t, BOOL isEntry) [[t cell] setScrollable:YES]; } -static void defaultOnChanged(uiEntry *e, void *data) +NSTextField *newEditableTextField(void) { - // do nothing + NSTextField *tf; + + tf = [[libui_intrinsicWidthNSTextField alloc] initWithFrame:NSZeroRect]; + [tf setSelectable:YES]; // otherwise the setting is masked by the editable default of YES + finishNewTextField(tf, YES); + return tf; } uiEntry *uiNewEntry(void) @@ -140,9 +153,7 @@ uiEntry *uiNewEntry(void) e = (uiEntry *) uiNewControl(uiEntryType()); - e->textfield = [[libui_intrinsicWidthNSTextField alloc] initWithFrame:NSZeroRect]; - [e->textfield setSelectable:YES]; // otherwise the setting is masked by the editable default of YES - finishNewTextField(e->textfield, YES); + e->textfield = newEditableTextField(); if (entryDelegate == nil) { entryDelegate = [entryDelegateClass new]; diff --git a/redo/reredo/darwin/uipriv_darwin.h b/redo/reredo/darwin/uipriv_darwin.h index c4d90c36..a974fe6c 100644 --- a/redo/reredo/darwin/uipriv_darwin.h +++ b/redo/reredo/darwin/uipriv_darwin.h @@ -40,9 +40,8 @@ extern void uninitMenus(void); extern void disableAutocorrect(NSTextView *); // entry.m -@interface libui_intrinsicWidthNSTextField : NSTextField -@end extern void finishNewTextField(NSTextField *, BOOL); +extern NSTextField *newEditableTextField(void); // window.m extern uiWindow *windowFromNSWindow(NSWindow *);