Split the new editable NSTextField part of uiNewEntry() into its own function so uiSpinbox can use it.
This commit is contained in:
parent
f698ca4a35
commit
7ddb78773d
|
@ -4,6 +4,9 @@
|
||||||
// Text fields for entering text have no intrinsic width; we'll use the default Interface Builder width for them.
|
// Text fields for entering text have no intrinsic width; we'll use the default Interface Builder width for them.
|
||||||
#define textfieldWidth 96
|
#define textfieldWidth 96
|
||||||
|
|
||||||
|
@interface libui_intrinsicWidthNSTextField : NSTextField
|
||||||
|
@end
|
||||||
|
|
||||||
@implementation libui_intrinsicWidthNSTextField
|
@implementation libui_intrinsicWidthNSTextField
|
||||||
|
|
||||||
- (NSSize)intrinsicContentSize
|
- (NSSize)intrinsicContentSize
|
||||||
|
@ -113,6 +116,11 @@ void uiEntrySetReadOnly(uiEntry *e, int readonly)
|
||||||
[e->textfield setEditable:editable];
|
[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 :/
|
// 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)
|
void finishNewTextField(NSTextField *t, BOOL isEntry)
|
||||||
{
|
{
|
||||||
|
@ -129,9 +137,14 @@ void finishNewTextField(NSTextField *t, BOOL isEntry)
|
||||||
[[t cell] setScrollable:YES];
|
[[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)
|
uiEntry *uiNewEntry(void)
|
||||||
|
@ -140,9 +153,7 @@ uiEntry *uiNewEntry(void)
|
||||||
|
|
||||||
e = (uiEntry *) uiNewControl(uiEntryType());
|
e = (uiEntry *) uiNewControl(uiEntryType());
|
||||||
|
|
||||||
e->textfield = [[libui_intrinsicWidthNSTextField alloc] initWithFrame:NSZeroRect];
|
e->textfield = newEditableTextField();
|
||||||
[e->textfield setSelectable:YES]; // otherwise the setting is masked by the editable default of YES
|
|
||||||
finishNewTextField(e->textfield, YES);
|
|
||||||
|
|
||||||
if (entryDelegate == nil) {
|
if (entryDelegate == nil) {
|
||||||
entryDelegate = [entryDelegateClass new];
|
entryDelegate = [entryDelegateClass new];
|
||||||
|
|
|
@ -40,9 +40,8 @@ extern void uninitMenus(void);
|
||||||
extern void disableAutocorrect(NSTextView *);
|
extern void disableAutocorrect(NSTextView *);
|
||||||
|
|
||||||
// entry.m
|
// entry.m
|
||||||
@interface libui_intrinsicWidthNSTextField : NSTextField
|
|
||||||
@end
|
|
||||||
extern void finishNewTextField(NSTextField *, BOOL);
|
extern void finishNewTextField(NSTextField *, BOOL);
|
||||||
|
extern NSTextField *newEditableTextField(void);
|
||||||
|
|
||||||
// window.m
|
// window.m
|
||||||
extern uiWindow *windowFromNSWindow(NSWindow *);
|
extern uiWindow *windowFromNSWindow(NSWindow *);
|
||||||
|
|
Loading…
Reference in New Issue