Migrated the controls that don't have children to the new object method model on OS X.
This commit is contained in:
parent
e69010139d
commit
c36d5079db
|
@ -27,11 +27,6 @@ struct uiArea {
|
|||
BOOL scrolling;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiArea, // type name
|
||||
view // handle
|
||||
)
|
||||
|
||||
@implementation areaView
|
||||
|
||||
- (id)initWithFrame:(NSRect)r area:(uiArea *)a
|
||||
|
@ -305,6 +300,8 @@ mouseEvent(otherMouseUp)
|
|||
|
||||
@end
|
||||
|
||||
uiDarwinControlAllDefaults(uiArea, view)
|
||||
|
||||
// called by subclasses of -[NSApplication sendEvent:]
|
||||
// by default, NSApplication eats some key events
|
||||
// this prevents that from happening with uiArea
|
||||
|
@ -359,7 +356,7 @@ uiArea *uiNewArea(uiAreaHandler *ah)
|
|||
{
|
||||
uiArea *a;
|
||||
|
||||
a = (uiArea *) uiNewControl(uiArea);
|
||||
uiDarwinNewControl(uiArea, a);
|
||||
|
||||
a->ah = ah;
|
||||
a->scrolling = NO;
|
||||
|
@ -368,8 +365,6 @@ uiArea *uiNewArea(uiAreaHandler *ah)
|
|||
|
||||
a->view = a->area;
|
||||
|
||||
uiDarwinFinishNewControl(a, uiArea);
|
||||
|
||||
return a;
|
||||
}
|
||||
|
||||
|
@ -377,7 +372,7 @@ uiArea *uiNewScrollingArea(uiAreaHandler *ah, intmax_t width, intmax_t height)
|
|||
{
|
||||
uiArea *a;
|
||||
|
||||
a = (uiArea *) uiNewControl(uiArea);
|
||||
uiDarwinNewControl(uiArea, a);
|
||||
|
||||
a->ah = ah;
|
||||
a->scrolling = YES;
|
||||
|
@ -394,7 +389,5 @@ uiArea *uiNewScrollingArea(uiAreaHandler *ah, intmax_t width, intmax_t height)
|
|||
|
||||
[a->sv setDocumentView:a->area];
|
||||
|
||||
uiDarwinFinishNewControl(a, uiArea);
|
||||
|
||||
return a;
|
||||
}
|
||||
|
|
|
@ -57,11 +57,12 @@ struct uiButton {
|
|||
|
||||
static buttonDelegateClass *buttonDelegate = nil;
|
||||
|
||||
uiDarwinDefineControlWithOnDestroy(
|
||||
uiButton, // type name
|
||||
button, // handle
|
||||
[buttonDelegate unregisterButton:this]; // on destroy
|
||||
)
|
||||
uiDarwinControlAllDefaultsExceptDestroy(uiButton, button)
|
||||
|
||||
static void uiButtonDestroy(uiControl *b)
|
||||
{
|
||||
[buttonDelegate unregisterButton:uiButton(b)];
|
||||
}
|
||||
|
||||
char *uiButtonText(uiButton *b)
|
||||
{
|
||||
|
@ -90,7 +91,7 @@ uiButton *uiNewButton(const char *text)
|
|||
{
|
||||
uiButton *b;
|
||||
|
||||
b = (uiButton *) uiNewControl(uiButton);
|
||||
uiDarwinNewControl(uiButton, b);
|
||||
|
||||
b->button = [[NSButton alloc] initWithFrame:NSZeroRect];
|
||||
[b->button setTitle:toNSString(text)];
|
||||
|
@ -106,7 +107,5 @@ uiButton *uiNewButton(const char *text)
|
|||
[buttonDelegate registerButton:b];
|
||||
uiButtonOnClicked(b, defaultOnClicked, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(b, uiButton);
|
||||
|
||||
return b;
|
||||
}
|
||||
|
|
|
@ -59,11 +59,12 @@ struct uiCheckbox {
|
|||
|
||||
static checkboxDelegateClass *checkboxDelegate = nil;
|
||||
|
||||
uiDarwinDefineControlWithOnDestroy(
|
||||
uiCheckbox, // type name
|
||||
button, // handle
|
||||
[checkboxDelegate unregisterCheckbox:this]; // on destroy
|
||||
)
|
||||
uiDarwinControlAllDefaultsExceptDestroy(uiCheckbox, button)
|
||||
|
||||
static void uiCheckboxDestroy(uiControl *c)
|
||||
{
|
||||
[checkboxDelegate unregisterCheckbox:uiCheckbox(c)];
|
||||
}
|
||||
|
||||
char *uiCheckboxText(uiCheckbox *c)
|
||||
{
|
||||
|
@ -109,7 +110,7 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
|||
{
|
||||
uiCheckbox *c;
|
||||
|
||||
c = (uiCheckbox *) uiNewControl(uiCheckbox);
|
||||
uiDarwinNewControl(uiCheckbox, c);
|
||||
|
||||
c->button = [[NSButton alloc] initWithFrame:NSZeroRect];
|
||||
[c->button setTitle:toNSString(text)];
|
||||
|
@ -124,7 +125,5 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
|||
[checkboxDelegate registerCheckbox:c];
|
||||
uiCheckboxOnToggled(c, defaultOnToggled, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(c, uiCheckbox);
|
||||
|
||||
return c;
|
||||
}
|
||||
|
|
|
@ -6,16 +6,13 @@ struct uiDateTimePicker {
|
|||
NSDatePicker *dp;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiDateTimePicker, // type name
|
||||
dp // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiDateTimePicker, dp)
|
||||
|
||||
static uiDateTimePicker *finishNewDateTimePicker(NSDatePickerElementFlags elements)
|
||||
{
|
||||
uiDateTimePicker *d;
|
||||
|
||||
d = (uiDateTimePicker *) uiNewControl(uiDateTimePicker);
|
||||
uiDarwinNewControl(uiDateTimePicker, d);
|
||||
|
||||
d->dp = [[NSDatePicker alloc] initWithFrame:NSZeroRect];
|
||||
[d->dp setBordered:NO];
|
||||
|
@ -26,8 +23,6 @@ static uiDateTimePicker *finishNewDateTimePicker(NSDatePickerElementFlags elemen
|
|||
[d->dp setDatePickerMode:NSSingleDateMode];
|
||||
uiDarwinSetControlFont(d->dp, NSRegularControlSize);
|
||||
|
||||
uiDarwinFinishNewControl(d, uiDateTimePicker);
|
||||
|
||||
return d;
|
||||
}
|
||||
|
||||
|
|
|
@ -75,11 +75,12 @@ struct uiEntry {
|
|||
|
||||
static entryDelegateClass *entryDelegate = nil;
|
||||
|
||||
uiDarwinDefineControlWithOnDestroy(
|
||||
uiEntry, // type name
|
||||
textfield, // handle
|
||||
[entryDelegate unregisterEntry:this]; // on destroy
|
||||
)
|
||||
uiDarwinControlAllDefaultsExceptDestroy(uiEntry, textfield)
|
||||
|
||||
static void uiEntryDestroy(uiControl *c)
|
||||
{
|
||||
[entryDelegate unregisterEntry:uiEntry(c)];
|
||||
}
|
||||
|
||||
char *uiEntryText(uiEntry *e)
|
||||
{
|
||||
|
@ -148,7 +149,7 @@ uiEntry *uiNewEntry(void)
|
|||
{
|
||||
uiEntry *e;
|
||||
|
||||
e = (uiEntry *) uiNewControl(uiEntry);
|
||||
uiDarwinNewControl(uiEntry, e);
|
||||
|
||||
e->textfield = newEditableTextField();
|
||||
|
||||
|
@ -159,7 +160,5 @@ uiEntry *uiNewEntry(void)
|
|||
[entryDelegate registerEntry:e];
|
||||
uiEntryOnChanged(e, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(e, uiEntry);
|
||||
|
||||
return e;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,6 @@
|
|||
#import "uipriv_darwin.h"
|
||||
|
||||
// TODO drag and drop fonts? what other interactions does NSColorWell allow that we can do for fonts?
|
||||
// TODO make position of templates consistent
|
||||
|
||||
@interface fontButton : NSButton {
|
||||
uiFontButton *libui_b;
|
||||
|
@ -26,11 +25,6 @@ struct uiFontButton {
|
|||
void *onChangedData;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiFontButton, // type name
|
||||
button // handle
|
||||
)
|
||||
|
||||
@implementation fontButton
|
||||
|
||||
- (id)initWithFrame:(NSRect)frame libuiFontButton:(uiFontButton *)b
|
||||
|
@ -131,6 +125,8 @@ uiDarwinDefineControl(
|
|||
|
||||
@end
|
||||
|
||||
uiDarwinControlAllDefaults(uiFontButton, button)
|
||||
|
||||
// we do not want font change events to be sent to any controls other than the font buttons
|
||||
// see main.m for more details
|
||||
BOOL fontButtonInhibitSendAction(SEL sel, id from, id to)
|
||||
|
@ -172,14 +168,12 @@ uiFontButton *uiNewFontButton(void)
|
|||
{
|
||||
uiFontButton *b;
|
||||
|
||||
b = (uiFontButton *) uiNewControl(uiFontButton);
|
||||
uiDarwinNewControl(uiFontButton, b);
|
||||
|
||||
b->button = [[fontButton alloc] initWithFrame:NSZeroRect libuiFontButton:b];
|
||||
uiDarwinSetControlFont(b->button, NSRegularControlSize);
|
||||
|
||||
uiFontButtonOnChanged(b, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(b, uiFontButton);
|
||||
|
||||
return b;
|
||||
}
|
||||
|
|
|
@ -6,10 +6,7 @@ struct uiLabel {
|
|||
NSTextField *textfield;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiLabel, // type name
|
||||
textfield // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiLabel, textfield)
|
||||
|
||||
char *uiLabelText(uiLabel *l)
|
||||
{
|
||||
|
@ -27,7 +24,7 @@ uiLabel *uiNewLabel(const char *text)
|
|||
{
|
||||
uiLabel *l;
|
||||
|
||||
l = (uiLabel *) uiNewControl(uiLabel);
|
||||
uiDarwinNewControl(uiLabel, l);
|
||||
|
||||
l->textfield = [[NSTextField alloc] initWithFrame:NSZeroRect];
|
||||
[l->textfield setStringValue:toNSString(text)];
|
||||
|
@ -36,7 +33,5 @@ uiLabel *uiNewLabel(const char *text)
|
|||
[l->textfield setDrawsBackground:NO];
|
||||
finishNewTextField(l->textfield, NO);
|
||||
|
||||
uiDarwinFinishNewControl(l, uiLabel);
|
||||
|
||||
return l;
|
||||
}
|
||||
|
|
|
@ -11,10 +11,7 @@ struct uiMultilineEntry {
|
|||
|
||||
// TODO events
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiMultilineEntry, // type name
|
||||
sv // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiMultilineEntry, sv)
|
||||
|
||||
static void defaultOnChanged(uiMultilineEntry *e, void *data)
|
||||
{
|
||||
|
@ -70,7 +67,7 @@ uiMultilineEntry *uiNewMultilineEntry(void)
|
|||
uiMultilineEntry *e;
|
||||
NSFont *font;
|
||||
|
||||
e = (uiMultilineEntry *) uiNewControl(uiMultilineEntry);
|
||||
uiDarwinNewControl(uiMultilineEntry, e);
|
||||
|
||||
e->sv = [[NSScrollView alloc] initWithFrame:NSZeroRect];
|
||||
// TODO verify against Interface Builder
|
||||
|
@ -134,8 +131,6 @@ uiMultilineEntry *uiNewMultilineEntry(void)
|
|||
|
||||
uiMultilineEntryOnChanged(e, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(e, uiMultilineEntry);
|
||||
|
||||
return e;
|
||||
}
|
||||
|
||||
|
|
|
@ -6,10 +6,7 @@ struct uiProgressBar {
|
|||
NSProgressIndicator *pi;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiProgressBar, // type name
|
||||
pi // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiProgressBar, pi)
|
||||
|
||||
void uiProgressBarSetValue(uiProgressBar *p, int value)
|
||||
{
|
||||
|
@ -31,7 +28,7 @@ uiProgressBar *uiNewProgressBar(void)
|
|||
{
|
||||
uiProgressBar *p;
|
||||
|
||||
p = (uiProgressBar *) uiNewControl(uiProgressBar);
|
||||
uiDarwinNewControl(uiProgressBar, p);
|
||||
|
||||
p->pi = [[NSProgressIndicator alloc] initWithFrame:NSZeroRect];
|
||||
[p->pi setControlSize:NSRegularControlSize];
|
||||
|
@ -39,7 +36,5 @@ uiProgressBar *uiNewProgressBar(void)
|
|||
[p->pi setStyle:NSProgressIndicatorBarStyle];
|
||||
[p->pi setIndeterminate:NO];
|
||||
|
||||
uiDarwinFinishNewControl(p, uiProgressBar);
|
||||
|
||||
return p;
|
||||
}
|
||||
|
|
|
@ -8,10 +8,7 @@ struct uiRadioButtons {
|
|||
NSMatrix *matrix;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiRadioButtons, // type name
|
||||
matrix // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiRadioButtons, matrix)
|
||||
|
||||
static NSButtonCell *cellAt(uiRadioButtons *r, uintmax_t n)
|
||||
{
|
||||
|
@ -46,7 +43,7 @@ uiRadioButtons *uiNewRadioButtons(void)
|
|||
uiRadioButtons *r;
|
||||
NSButtonCell *cell;
|
||||
|
||||
r = (uiRadioButtons *) uiNewControl(uiRadioButtons);
|
||||
uiDarwinNewControl(uiRadioButtons, r);
|
||||
|
||||
// we have to set up the NSMatrix this way (prototype first)
|
||||
// otherwise we won't be able to change its properties (such as the button type)
|
||||
|
@ -69,7 +66,5 @@ uiRadioButtons *uiNewRadioButtons(void)
|
|||
[r->matrix setDrawsCellBackground:NO];
|
||||
[r->matrix setAutosizesCells:YES];
|
||||
|
||||
uiDarwinFinishNewControl(r, uiRadioButtons);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
|
|
@ -11,16 +11,13 @@ struct uiSeparator {
|
|||
NSBox *box;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiSeparator, // type name
|
||||
box // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiSeparator, box)
|
||||
|
||||
uiSeparator *uiNewHorizontalSeparator(void)
|
||||
{
|
||||
uiSeparator *s;
|
||||
|
||||
s = (uiSeparator *) uiNewControl(uiSeparator);
|
||||
uiDarwinNewControl(uiSeparator);
|
||||
|
||||
s->box = [[NSBox alloc] initWithFrame:NSMakeRect(0, 0, separatorFrameWidth, separatorFrameHeight)];
|
||||
[s->box setBoxType:NSBoxSeparator];
|
||||
|
@ -28,7 +25,5 @@ uiSeparator *uiNewHorizontalSeparator(void)
|
|||
[s->box setTransparent:NO];
|
||||
[s->box setTitlePosition:NSNoTitle];
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSeparator);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -77,11 +77,12 @@ struct uiSlider {
|
|||
|
||||
static sliderDelegateClass *sliderDelegate = nil;
|
||||
|
||||
uiDarwinDefineControlWithOnDestroy(
|
||||
uiSlider, // type name
|
||||
slider, // handle
|
||||
[sliderDelegate unregisterSlider:this]; // on destroy
|
||||
)
|
||||
uiDarwinControlAllDefaultsExceptDestroy(uiSlider, slider)
|
||||
|
||||
static void uiSliderDestroy(uiControl *c)
|
||||
{
|
||||
[sliderDelegate unregisterSlider:uiSlider(c)];
|
||||
}
|
||||
|
||||
intmax_t uiSliderValue(uiSlider *s)
|
||||
{
|
||||
|
@ -110,7 +111,7 @@ uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
|||
uiSlider *s;
|
||||
NSSliderCell *cell;
|
||||
|
||||
s = (uiSlider *) uiNewControl(uiSlider);
|
||||
uiDarwinNewControl(uiSlider, s);
|
||||
|
||||
// a horizontal slider is defined as one where the width > height, not by a flag
|
||||
// to be safe, don't use NSZeroRect, but make it horizontal from the get-go
|
||||
|
@ -132,7 +133,5 @@ uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
|||
[sliderDelegate registerSlider:s];
|
||||
uiSliderOnChanged(s, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSlider);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
|
@ -129,10 +129,7 @@ struct uiSpinbox {
|
|||
|
||||
@end
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiSpinbox, // type name
|
||||
spinbox // handle
|
||||
)
|
||||
uiDarwinControlAllDefaults(uiSpinbox, spinbox)
|
||||
|
||||
intmax_t uiSpinboxValue(uiSpinbox *s)
|
||||
{
|
||||
|
@ -162,7 +159,7 @@ uiSpinbox *uiNewSpinbox(intmax_t min, intmax_t max)
|
|||
if (min >= max)
|
||||
complain("error: min >= max in uiNewSpinbox()");
|
||||
|
||||
s = (uiSpinbox *) uiNewControl(uiSpinbox);
|
||||
uiDarwinNewControl(uiSpinbox, s);
|
||||
|
||||
s->spinbox = [[libui_spinbox alloc] initWithFrame:NSZeroRect spinbox:s];
|
||||
[s->spinbox setMinimum:min];
|
||||
|
@ -171,7 +168,5 @@ uiSpinbox *uiNewSpinbox(intmax_t min, intmax_t max)
|
|||
|
||||
uiSpinboxOnChanged(s, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSpinbox);
|
||||
|
||||
return s;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue