More new Darwin controls.
This commit is contained in:
parent
60856a59b7
commit
a931957f4e
|
@ -0,0 +1,37 @@
|
|||
// 14 august 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
struct uiProgressBar {
|
||||
uiDarwinControl c;
|
||||
NSProgressIndicator *pi;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiProgressBar, // type name
|
||||
uiProgressBarType, // type function
|
||||
pi // handle
|
||||
)
|
||||
|
||||
void uiProgressbarSetValue(uiProgressBar *p, int value)
|
||||
{
|
||||
if (value < 0 || value > 100)
|
||||
complain("value %d out of range in progressbarSetValue()", value);
|
||||
// TODO
|
||||
}
|
||||
|
||||
uiProgressBar *uiNewProgressBar(void)
|
||||
{
|
||||
uiProgressBar *p;
|
||||
|
||||
p = (uiProgressBar *) uiNewControl(uiProgressBarType());
|
||||
|
||||
p->pi = [[NSProgressIndicator alloc] initWithFrame:NSZeroRect];
|
||||
[p->pi setControlSize:NSRegularControlSize];
|
||||
[p->pi setBezeled:YES];
|
||||
[p->pi setStyle:NSProgressIndicatorBarStyle];
|
||||
[p->pi setIndeterminate:NO];
|
||||
|
||||
uiDarwinFinishNewControl(p, uiProgressBar);
|
||||
|
||||
return p;
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
// 14 august 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
struct uiRadioButtons {
|
||||
uiDarwinControl c;
|
||||
NSTextField *dummy;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiRadioButtons, // type name
|
||||
uiRadioButtonsType, // type function
|
||||
dummy // handle
|
||||
)
|
||||
|
||||
void uiRadioButtonsAppend(uiRadioButtons *r, const char *text)
|
||||
{
|
||||
// TODO
|
||||
uiControlQueueResize(uiControl(r));
|
||||
}
|
||||
|
||||
uiRadioButtons *uiNewRadioButtons(void)
|
||||
{
|
||||
uiRadioButtons *r;
|
||||
|
||||
r = (uiRadioButtons *) uiNewControl(uiRadioButtonsType());
|
||||
|
||||
r->dummy = [[NSTextField alloc] initWithFrame:NSZeroRect];
|
||||
[r->dummy setStringValue:@"TODO uiRadioButtons not implemented"];
|
||||
|
||||
uiDarwinFinishNewControl(r, uiRadioButtons);
|
||||
|
||||
return r;
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
// 14 august 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
// TODO sizing
|
||||
// namely, figure out how horizontal and vertical work
|
||||
|
||||
struct uiSeparator {
|
||||
uiDarwinControl c;
|
||||
NSBox *box;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiSeparator, // type name
|
||||
uiSeparatorType, // type function
|
||||
box // handle
|
||||
)
|
||||
|
||||
uiSeparator *uiNewHorizontalSeparator(void)
|
||||
{
|
||||
uiSeparator *s;
|
||||
|
||||
s = (uiSeparator *) uiNewControl(uiSeparatorType());
|
||||
|
||||
s->box = [[NSBox alloc] initWithFrame:NSZeroRect];
|
||||
[s->box setBoxType:NSBoxSeparator];
|
||||
//TODO [s->box setBorderType:TODO];
|
||||
[s->box setTransparent:NO];
|
||||
[s->box setTitlePosition:NSNoTitle];
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSeparator);
|
||||
|
||||
return s;
|
||||
}
|
|
@ -0,0 +1,63 @@
|
|||
// 14 august 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
// TODO events
|
||||
|
||||
type uiSlider {
|
||||
uiDarwinControl c;
|
||||
NSSlider *slider;
|
||||
void (*onChanged)(uiSlider *, void *);
|
||||
void *onChangedData;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiSlider, // type name
|
||||
uiSliderType, // type function
|
||||
slider // handle
|
||||
)
|
||||
|
||||
intmax_t uiSliderValue(uiSlider *s)
|
||||
{
|
||||
return PUT_CODE_HERE;
|
||||
}
|
||||
|
||||
void uiSliderSetValue(uiSlider *s, intmax_t value)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
void uiSliderOnChanged(uiSlider *s, void (*f)(uiSlider *, void *), void *data)
|
||||
{
|
||||
s->onChanged = f;
|
||||
s->onChangedData = data;
|
||||
}
|
||||
|
||||
static void defaultOnChanged(uiSlider *s, void *data)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
||||
{
|
||||
uiSlider *s;
|
||||
NSSliderCell *cell;
|
||||
|
||||
s = (uiSlider *) uiNewControl(uiSliderType());
|
||||
|
||||
s->slider = [[NSSlider alloc] initWithFrame:NSZeroRect];
|
||||
// TODO vertical is defined by wider than tall
|
||||
[s->slider setMinValue:min];
|
||||
[s->slider setMaxValue:max];
|
||||
[s->slider setAllowsTickMarkValuesOnly:NO];
|
||||
[s->slider setNumberOfTickMarks:0];
|
||||
[s->slider setTickMarkPosition:NSTickMarkAbove];
|
||||
|
||||
cell = (NSSliderCell *) [s->slider cell];
|
||||
[cell setSliderType:NSLinearSlider];
|
||||
|
||||
uiSliderOnChanged(s, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSlider);
|
||||
|
||||
return s;
|
||||
}
|
|
@ -0,0 +1,52 @@
|
|||
// 14 august 2015
|
||||
#import "uipriv_darwin.h"
|
||||
|
||||
struct uiSpinbox {
|
||||
uiDarwinControl c;
|
||||
NSTextField *dummy;
|
||||
void (*onChanged)(uiSpinbox *, void *);
|
||||
void *onChangedData;
|
||||
};
|
||||
|
||||
uiDarwinDefineControl(
|
||||
uiSpinbox, // type name
|
||||
uiSpinboxType, // type function
|
||||
dummy // handle
|
||||
)
|
||||
|
||||
intmax_t uiSpinboxValue(uiSpinbox *s)
|
||||
{
|
||||
return PUT_CODE_HERE;
|
||||
}
|
||||
|
||||
void uiSpinboxSetValue(uiSpinbox *s, intmax_t value)
|
||||
{
|
||||
// TODO
|
||||
}
|
||||
|
||||
void uiSpinboxOnChanged(uiSpinbox *s, void (*f)(uiSpinbox *, void *), void *data)
|
||||
{
|
||||
s->onChanged = f;
|
||||
s->onChangedData = data;
|
||||
}
|
||||
|
||||
static void defaultOnChanged(uiSpinbox *s, void *data)
|
||||
{
|
||||
// do nothing
|
||||
}
|
||||
|
||||
uiSpinbox *uiNewSpinbox(void)
|
||||
{
|
||||
uiSpinbox *s;
|
||||
|
||||
s = (uiSpinbox *) uiNewControl(uiSpinboxType());
|
||||
|
||||
s->dummy = [[NSTextField alloc] initWithFrame:NSZeroRect];
|
||||
[s->dummy setStringValue:@"TODO uiSpinbox not implemented"];
|
||||
|
||||
uiSpinboxSetOnChanged(s, defaultOnChanged, NULL);
|
||||
|
||||
uiDarwinFinishNewControl(s, uiSpinbox);
|
||||
|
||||
return s;
|
||||
}
|
Loading…
Reference in New Issue