Converted the basic GTK+ controls. Now for the containers.

This commit is contained in:
Pietro Gagliardi 2016-04-25 20:00:25 -04:00
parent 85ee2e93dd
commit 01912877ce
13 changed files with 27 additions and 82 deletions

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }

View File

@ -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;
} }