Converted the basic GTK+ controls. Now for the containers.
This commit is contained in:
parent
85ee2e93dd
commit
01912877ce
|
@ -9,9 +9,7 @@ struct uiButton {
|
||||||
void *onClickedData;
|
void *onClickedData;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiButton)
|
||||||
uiButton // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onClicked(GtkButton *button, gpointer data)
|
static void onClicked(GtkButton *button, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -47,7 +45,7 @@ uiButton *uiNewButton(const char *text)
|
||||||
{
|
{
|
||||||
uiButton *b;
|
uiButton *b;
|
||||||
|
|
||||||
b = (uiButton *) uiNewControl(uiButton);
|
uiUnixNewControl(uiButton, b);
|
||||||
|
|
||||||
b->widget = gtk_button_new_with_label(text);
|
b->widget = gtk_button_new_with_label(text);
|
||||||
b->button = GTK_BUTTON(b->widget);
|
b->button = GTK_BUTTON(b->widget);
|
||||||
|
@ -55,7 +53,5 @@ uiButton *uiNewButton(const char *text)
|
||||||
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
||||||
uiButtonOnClicked(b, defaultOnClicked, NULL);
|
uiButtonOnClicked(b, defaultOnClicked, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(b, uiButton);
|
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,9 +12,7 @@ struct uiCheckbox {
|
||||||
gulong onToggledSignal;
|
gulong onToggledSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiCheckbox)
|
||||||
uiCheckbox // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onToggled(GtkToggleButton *b, gpointer data)
|
static void onToggled(GtkToggleButton *b, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -68,7 +66,7 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
||||||
{
|
{
|
||||||
uiCheckbox *c;
|
uiCheckbox *c;
|
||||||
|
|
||||||
c = (uiCheckbox *) uiNewControl(uiCheckbox);
|
uiUnixNewControl(uiCheckbox, c);
|
||||||
|
|
||||||
c->widget = gtk_check_button_new_with_label(text);
|
c->widget = gtk_check_button_new_with_label(text);
|
||||||
c->button = GTK_BUTTON(c->widget);
|
c->button = GTK_BUTTON(c->widget);
|
||||||
|
@ -78,7 +76,5 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
||||||
c->onToggledSignal = g_signal_connect(c->widget, "toggled", G_CALLBACK(onToggled), c);
|
c->onToggledSignal = g_signal_connect(c->widget, "toggled", G_CALLBACK(onToggled), c);
|
||||||
uiCheckboxOnToggled(c, defaultOnToggled, NULL);
|
uiCheckboxOnToggled(c, defaultOnToggled, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(c, uiCheckbox);
|
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,7 @@ struct uiCombobox {
|
||||||
gulong onSelectedSignal;
|
gulong onSelectedSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiCombobox)
|
||||||
uiCombobox // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO this is triggered when editing an editable combobox's text
|
// TODO this is triggered when editing an editable combobox's text
|
||||||
static void onChanged(GtkComboBox *cbox, gpointer data)
|
static void onChanged(GtkComboBox *cbox, gpointer data)
|
||||||
|
@ -56,7 +54,7 @@ static uiCombobox *finishNewCombobox(GtkWidget *(*newfunc)(void))
|
||||||
{
|
{
|
||||||
uiCombobox *c;
|
uiCombobox *c;
|
||||||
|
|
||||||
c = (uiCombobox *) uiNewControl(uiCombobox);
|
uiUnixNewControl(uiCombobox, c);
|
||||||
|
|
||||||
c->widget = (*newfunc)();
|
c->widget = (*newfunc)();
|
||||||
c->combobox = GTK_COMBO_BOX(c->widget);
|
c->combobox = GTK_COMBO_BOX(c->widget);
|
||||||
|
@ -65,8 +63,6 @@ static uiCombobox *finishNewCombobox(GtkWidget *(*newfunc)(void))
|
||||||
c->onSelectedSignal = g_signal_connect(c->widget, "changed", G_CALLBACK(onChanged), c);
|
c->onSelectedSignal = g_signal_connect(c->widget, "changed", G_CALLBACK(onChanged), c);
|
||||||
uiComboboxOnSelected(c, defaultOnSelected, NULL);
|
uiComboboxOnSelected(c, defaultOnSelected, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(c, uiCombobox);
|
|
||||||
|
|
||||||
return c;
|
return c;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,9 +6,7 @@ struct uiDateTimePicker {
|
||||||
GtkWidget *widget;
|
GtkWidget *widget;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiDateTimePicker)
|
||||||
uiDateTimePicker // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO
|
// TODO
|
||||||
typedef int OSTHING;
|
typedef int OSTHING;
|
||||||
|
@ -22,12 +20,10 @@ uiDateTimePicker *finishNewDateTimePicker(OSTHING OSARG)
|
||||||
{
|
{
|
||||||
uiDateTimePicker *d;
|
uiDateTimePicker *d;
|
||||||
|
|
||||||
d = (uiDateTimePicker *) uiNewControl(uiDateTimePicker);
|
uiUnixNewControl(uiDateTimePicker, d);
|
||||||
|
|
||||||
d->widget = gtk_label_new("TODO uiDateTimePicker not implemented");
|
d->widget = gtk_label_new("TODO uiDateTimePicker not implemented");
|
||||||
|
|
||||||
uiUnixFinishNewControl(d, uiDateTimePicker);
|
|
||||||
|
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,7 @@ struct uiEntry {
|
||||||
gulong onChangedSignal;
|
gulong onChangedSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiEntry)
|
||||||
uiEntry // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onChanged(GtkEditable *editable, gpointer data)
|
static void onChanged(GtkEditable *editable, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -66,7 +64,7 @@ uiEntry *uiNewEntry(void)
|
||||||
{
|
{
|
||||||
uiEntry *e;
|
uiEntry *e;
|
||||||
|
|
||||||
e = (uiEntry *) uiNewControl(uiEntry);
|
uiUnixNewControl(uiEntry, e);
|
||||||
|
|
||||||
e->widget = gtk_entry_new();
|
e->widget = gtk_entry_new();
|
||||||
e->entry = GTK_ENTRY(e->widget);
|
e->entry = GTK_ENTRY(e->widget);
|
||||||
|
@ -75,7 +73,5 @@ uiEntry *uiNewEntry(void)
|
||||||
e->onChangedSignal = g_signal_connect(e->widget, "changed", G_CALLBACK(onChanged), e);
|
e->onChangedSignal = g_signal_connect(e->widget, "changed", G_CALLBACK(onChanged), e);
|
||||||
uiEntryOnChanged(e, defaultOnChanged, NULL);
|
uiEntryOnChanged(e, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(e, uiEntry);
|
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,7 @@ struct uiFontButton {
|
||||||
void *onChangedData;
|
void *onChangedData;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiFontButton)
|
||||||
uiFontButton // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
// TODO NOTE no need to inhibit the signal; font-set is documented as only being sent when the user changes the font
|
// TODO NOTE no need to inhibit the signal; font-set is documented as only being sent when the user changes the font
|
||||||
static void onFontSet(GtkFontButton *button, gpointer data)
|
static void onFontSet(GtkFontButton *button, gpointer data)
|
||||||
|
@ -50,7 +48,7 @@ uiFontButton *uiNewFontButton(void)
|
||||||
{
|
{
|
||||||
uiFontButton *b;
|
uiFontButton *b;
|
||||||
|
|
||||||
b = (uiFontButton *) uiNewControl(uiFontButton);
|
uiUnixNewControl(uiFontButton, b);
|
||||||
|
|
||||||
b->widget = gtk_font_button_new();
|
b->widget = gtk_font_button_new();
|
||||||
b->button = GTK_BUTTON(b->widget);
|
b->button = GTK_BUTTON(b->widget);
|
||||||
|
@ -68,7 +66,5 @@ uiFontButton *uiNewFontButton(void)
|
||||||
g_signal_connect(b->widget, "font-set", G_CALLBACK(onFontSet), b);
|
g_signal_connect(b->widget, "font-set", G_CALLBACK(onFontSet), b);
|
||||||
uiFontButtonOnChanged(b, defaultOnChanged, NULL);
|
uiFontButtonOnChanged(b, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(b, uiFontButton);
|
|
||||||
|
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,9 +8,7 @@ struct uiLabel {
|
||||||
GtkLabel *label;
|
GtkLabel *label;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiLabel)
|
||||||
uiLabel // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
char *uiLabelText(uiLabel *l)
|
char *uiLabelText(uiLabel *l)
|
||||||
{
|
{
|
||||||
|
@ -28,7 +26,7 @@ uiLabel *uiNewLabel(const char *text)
|
||||||
{
|
{
|
||||||
uiLabel *l;
|
uiLabel *l;
|
||||||
|
|
||||||
l = (uiLabel *) uiNewControl(uiLabel);
|
uiUnixNewControl(uiLabel, l);
|
||||||
|
|
||||||
l->widget = gtk_label_new(text);
|
l->widget = gtk_label_new(text);
|
||||||
l->misc = GTK_MISC(l->widget);
|
l->misc = GTK_MISC(l->widget);
|
||||||
|
@ -36,7 +34,5 @@ uiLabel *uiNewLabel(const char *text)
|
||||||
|
|
||||||
gtk_misc_set_alignment(l->misc, 0, 0);
|
gtk_misc_set_alignment(l->misc, 0, 0);
|
||||||
|
|
||||||
uiUnixFinishNewControl(l, uiLabel);
|
|
||||||
|
|
||||||
return l;
|
return l;
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,9 +16,7 @@ struct uiMultilineEntry {
|
||||||
gulong onChangedSignal;
|
gulong onChangedSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiMultilineEntry)
|
||||||
uiMultilineEntry // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onChanged(GtkTextBuffer *textbuf, gpointer data)
|
static void onChanged(GtkTextBuffer *textbuf, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -87,7 +85,7 @@ uiMultilineEntry *uiNewMultilineEntry(void)
|
||||||
{
|
{
|
||||||
uiMultilineEntry *e;
|
uiMultilineEntry *e;
|
||||||
|
|
||||||
e = (uiMultilineEntry *) uiNewControl(uiMultilineEntry);
|
uiUnixNewControl(uiMultilineEntry, e);
|
||||||
|
|
||||||
e->widget = gtk_scrolled_window_new(NULL, NULL);
|
e->widget = gtk_scrolled_window_new(NULL, NULL);
|
||||||
e->scontainer = GTK_CONTAINER(e->widget);
|
e->scontainer = GTK_CONTAINER(e->widget);
|
||||||
|
@ -110,7 +108,5 @@ uiMultilineEntry *uiNewMultilineEntry(void)
|
||||||
e->onChangedSignal = g_signal_connect(e->textbuf, "changed", G_CALLBACK(onChanged), e);
|
e->onChangedSignal = g_signal_connect(e->textbuf, "changed", G_CALLBACK(onChanged), e);
|
||||||
uiMultilineEntryOnChanged(e, defaultOnChanged, NULL);
|
uiMultilineEntryOnChanged(e, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(e, uiMultilineEntry);
|
|
||||||
|
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,9 +7,7 @@ struct uiProgressBar {
|
||||||
GtkProgressBar *pbar;
|
GtkProgressBar *pbar;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiProgressBar)
|
||||||
uiProgressBar // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
void uiProgressBarSetValue(uiProgressBar *p, int value)
|
void uiProgressBarSetValue(uiProgressBar *p, int value)
|
||||||
{
|
{
|
||||||
|
@ -22,12 +20,10 @@ uiProgressBar *uiNewProgressBar(void)
|
||||||
{
|
{
|
||||||
uiProgressBar *p;
|
uiProgressBar *p;
|
||||||
|
|
||||||
p = (uiProgressBar *) uiNewControl(uiProgressBar);
|
uiUnixNewControl(uiProgressBar, p);
|
||||||
|
|
||||||
p->widget = gtk_progress_bar_new();
|
p->widget = gtk_progress_bar_new();
|
||||||
p->pbar = GTK_PROGRESS_BAR(p->widget);
|
p->pbar = GTK_PROGRESS_BAR(p->widget);
|
||||||
|
|
||||||
uiUnixFinishNewControl(p, uiProgressBar);
|
|
||||||
|
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,14 +11,9 @@ struct uiRadioButtons {
|
||||||
GPtrArray *buttons;
|
GPtrArray *buttons;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void onDestroy(uiRadioButtons *);
|
uiUnixControlAllDefaultsExceptDestroy(uiRadioButtons)
|
||||||
|
|
||||||
uiUnixDefineControlWithOnDestroy(
|
static void uiRadioButtonsDestroy(uiControl *c)
|
||||||
uiRadioButtons, // type name
|
|
||||||
onDestroy(this); // on destroy
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onDestroy(uiRadioButtons *r)
|
|
||||||
{
|
{
|
||||||
// TODO
|
// TODO
|
||||||
}
|
}
|
||||||
|
@ -42,7 +37,7 @@ uiRadioButtons *uiNewRadioButtons(void)
|
||||||
{
|
{
|
||||||
uiRadioButtons *r;
|
uiRadioButtons *r;
|
||||||
|
|
||||||
r = (uiRadioButtons *) uiNewControl(uiRadioButtons);
|
uiUnixNewControl(uiRadioButtons, r);
|
||||||
|
|
||||||
r->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
r->widget = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
|
||||||
r->container = GTK_CONTAINER(r->widget);
|
r->container = GTK_CONTAINER(r->widget);
|
||||||
|
@ -50,7 +45,5 @@ uiRadioButtons *uiNewRadioButtons(void)
|
||||||
|
|
||||||
r->buttons = g_ptr_array_new();
|
r->buttons = g_ptr_array_new();
|
||||||
|
|
||||||
uiUnixFinishNewControl(r, uiRadioButtons);
|
|
||||||
|
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,20 +7,16 @@ struct uiSeparator {
|
||||||
GtkSeparator *separator;
|
GtkSeparator *separator;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiSeparator)
|
||||||
uiSeparator // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
uiSeparator *uiNewHorizontalSeparator(void)
|
uiSeparator *uiNewHorizontalSeparator(void)
|
||||||
{
|
{
|
||||||
uiSeparator *s;
|
uiSeparator *s;
|
||||||
|
|
||||||
s = (uiSeparator *) uiNewControl(uiSeparator);
|
uiUnixNewControl(uiSeparator, s);
|
||||||
|
|
||||||
s->widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
|
s->widget = gtk_separator_new(GTK_ORIENTATION_HORIZONTAL);
|
||||||
s->separator = GTK_SEPARATOR(s->widget);
|
s->separator = GTK_SEPARATOR(s->widget);
|
||||||
|
|
||||||
uiUnixFinishNewControl(s, uiSeparator);
|
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,7 @@ struct uiSlider {
|
||||||
gulong onChangedSignal;
|
gulong onChangedSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiSlider)
|
||||||
uiSlider // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onChanged(GtkRange *range, gpointer data)
|
static void onChanged(GtkRange *range, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -50,7 +48,7 @@ uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
||||||
{
|
{
|
||||||
uiSlider *s;
|
uiSlider *s;
|
||||||
|
|
||||||
s = (uiSlider *) uiNewControl(uiSlider);
|
uiUnixNewControl(uiSlider, s);
|
||||||
|
|
||||||
s->widget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, min, max, 1);
|
s->widget = gtk_scale_new_with_range(GTK_ORIENTATION_HORIZONTAL, min, max, 1);
|
||||||
s->range = GTK_RANGE(s->widget);
|
s->range = GTK_RANGE(s->widget);
|
||||||
|
@ -62,7 +60,5 @@ uiSlider *uiNewSlider(intmax_t min, intmax_t max)
|
||||||
s->onChangedSignal = g_signal_connect(s->scale, "value-changed", G_CALLBACK(onChanged), s);
|
s->onChangedSignal = g_signal_connect(s->scale, "value-changed", G_CALLBACK(onChanged), s);
|
||||||
uiSliderOnChanged(s, defaultOnChanged, NULL);
|
uiSliderOnChanged(s, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(s, uiSlider);
|
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
|
@ -11,9 +11,7 @@ struct uiSpinbox {
|
||||||
gulong onChangedSignal;
|
gulong onChangedSignal;
|
||||||
};
|
};
|
||||||
|
|
||||||
uiUnixDefineControl(
|
uiUnixControlAllDefaults(uiSpinbox)
|
||||||
uiSpinbox // type name
|
|
||||||
)
|
|
||||||
|
|
||||||
static void onChanged(GtkSpinButton *sb, gpointer data)
|
static void onChanged(GtkSpinButton *sb, gpointer data)
|
||||||
{
|
{
|
||||||
|
@ -54,7 +52,7 @@ uiSpinbox *uiNewSpinbox(intmax_t min, intmax_t max)
|
||||||
if (min >= max)
|
if (min >= max)
|
||||||
complain("error: min >= max in uiNewSpinbox()");
|
complain("error: min >= max in uiNewSpinbox()");
|
||||||
|
|
||||||
s = (uiSpinbox *) uiNewControl(uiSpinbox);
|
uiUnixNewControl(uiSpinbox, s);
|
||||||
|
|
||||||
s->widget = gtk_spin_button_new_with_range(min, max, 1);
|
s->widget = gtk_spin_button_new_with_range(min, max, 1);
|
||||||
s->entry = GTK_ENTRY(s->widget);
|
s->entry = GTK_ENTRY(s->widget);
|
||||||
|
@ -66,7 +64,5 @@ uiSpinbox *uiNewSpinbox(intmax_t min, intmax_t max)
|
||||||
s->onChangedSignal = g_signal_connect(s->spinButton, "value-changed", G_CALLBACK(onChanged), s);
|
s->onChangedSignal = g_signal_connect(s->spinButton, "value-changed", G_CALLBACK(onChanged), s);
|
||||||
uiSpinboxOnChanged(s, defaultOnChanged, NULL);
|
uiSpinboxOnChanged(s, defaultOnChanged, NULL);
|
||||||
|
|
||||||
uiUnixFinishNewControl(s, uiSpinbox);
|
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue