Migrated the various controls to the new GTK+ destruction method. Just a few more small changes to make...
This commit is contained in:
parent
f0055e948b
commit
38b118f033
|
@ -21,9 +21,9 @@ static void defaultOnClicked(uiButton *b, void *data)
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
static void onDestroy(GtkWidget *widget, gpointer data)
|
static void onDestroy(uiControl *c)
|
||||||
{
|
{
|
||||||
struct button *b = (struct button *) data;
|
struct button *b = (struct button *) c;
|
||||||
|
|
||||||
uiFree(b);
|
uiFree(b);
|
||||||
}
|
}
|
||||||
|
@ -57,15 +57,13 @@ uiButton *uiNewButton(const char *text)
|
||||||
b = uiNew(struct button);
|
b = uiNew(struct button);
|
||||||
|
|
||||||
uiUnixNewControl(uiControl(b), GTK_TYPE_BUTTON,
|
uiUnixNewControl(uiControl(b), GTK_TYPE_BUTTON,
|
||||||
FALSE, FALSE,
|
FALSE, FALSE, onDestroy,
|
||||||
"label", text,
|
"label", text,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
b->widget = WIDGET(b);
|
b->widget = WIDGET(b);
|
||||||
b->button = GTK_BUTTON(b->widget);
|
b->button = GTK_BUTTON(b->widget);
|
||||||
|
|
||||||
g_signal_connect(b->widget, "destroy", G_CALLBACK(onDestroy), b);
|
|
||||||
|
|
||||||
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
g_signal_connect(b->widget, "clicked", G_CALLBACK(onClicked), b);
|
||||||
b->onClicked = defaultOnClicked;
|
b->onClicked = defaultOnClicked;
|
||||||
|
|
||||||
|
|
|
@ -24,9 +24,9 @@ static void defaultOnToggled(uiCheckbox *c, void *data)
|
||||||
// do nothing
|
// do nothing
|
||||||
}
|
}
|
||||||
|
|
||||||
static void onDestroy(GtkWidget *widget, gpointer data)
|
static void onDestroy(uiControl *cc)
|
||||||
{
|
{
|
||||||
struct checkbox *c = (struct checkbox *) data;
|
struct checkbox *c = (struct checkbox *) cc;
|
||||||
|
|
||||||
uiFree(c);
|
uiFree(c);
|
||||||
}
|
}
|
||||||
|
@ -81,7 +81,7 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
||||||
c = uiNew(struct checkbox);
|
c = uiNew(struct checkbox);
|
||||||
|
|
||||||
uiUnixNewControl(uiControl(c), GTK_TYPE_CHECK_BUTTON,
|
uiUnixNewControl(uiControl(c), GTK_TYPE_CHECK_BUTTON,
|
||||||
FALSE, FALSE,
|
FALSE, FALSE, onDestroy,
|
||||||
"label", text,
|
"label", text,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
|
@ -90,8 +90,6 @@ uiCheckbox *uiNewCheckbox(const char *text)
|
||||||
c->toggleButton = GTK_TOGGLE_BUTTON(c->widget);
|
c->toggleButton = GTK_TOGGLE_BUTTON(c->widget);
|
||||||
c->checkButton = GTK_CHECK_BUTTON(c->widget);
|
c->checkButton = GTK_CHECK_BUTTON(c->widget);
|
||||||
|
|
||||||
g_signal_connect(c->widget, "destroy", G_CALLBACK(onDestroy), c);
|
|
||||||
|
|
||||||
c->onToggledSignal = g_signal_connect(c->widget, "toggled", G_CALLBACK(onToggled), c);
|
c->onToggledSignal = g_signal_connect(c->widget, "toggled", G_CALLBACK(onToggled), c);
|
||||||
c->onToggled = defaultOnToggled;
|
c->onToggled = defaultOnToggled;
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ struct entry {
|
||||||
GtkEntry *entry;
|
GtkEntry *entry;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void onDestroy(GtkWidget *widget, gpointer data)
|
static void onDestroy(uiControl *c)
|
||||||
{
|
{
|
||||||
struct entry *e = (struct entry *) data;
|
struct entry *e = (struct entry *) c;
|
||||||
|
|
||||||
uiFree(e);
|
uiFree(e);
|
||||||
}
|
}
|
||||||
|
@ -35,14 +35,12 @@ uiEntry *uiNewEntry(void)
|
||||||
e = uiNew(struct entry);
|
e = uiNew(struct entry);
|
||||||
|
|
||||||
uiUnixNewControl(uiControl(e), GTK_TYPE_ENTRY,
|
uiUnixNewControl(uiControl(e), GTK_TYPE_ENTRY,
|
||||||
FALSE, FALSE,
|
FALSE, FALSE, onDestroy,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
e->widget = WIDGET(e);
|
e->widget = WIDGET(e);
|
||||||
e->entry = GTK_ENTRY(e->widget);
|
e->entry = GTK_ENTRY(e->widget);
|
||||||
|
|
||||||
g_signal_connect(e->widget, "destroy", G_CALLBACK(onDestroy), e);
|
|
||||||
|
|
||||||
uiEntry(e)->Text = entryText;
|
uiEntry(e)->Text = entryText;
|
||||||
uiEntry(e)->SetText = entrySetText;
|
uiEntry(e)->SetText = entrySetText;
|
||||||
|
|
||||||
|
|
|
@ -7,9 +7,9 @@ struct label {
|
||||||
GtkLabel *label;
|
GtkLabel *label;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void onDestroy(GtkWidget *widget, gpointer data)
|
static void onDestroy(uiControl *c)
|
||||||
{
|
{
|
||||||
struct label *l = (struct label *) data;
|
struct label *l = (struct label *) c;
|
||||||
|
|
||||||
uiFree(l);
|
uiFree(l);
|
||||||
}
|
}
|
||||||
|
@ -36,7 +36,7 @@ uiLabel *uiNewLabel(const char *text)
|
||||||
l = uiNew(struct label);
|
l = uiNew(struct label);
|
||||||
|
|
||||||
uiUnixNewControl(uiControl(l), GTK_TYPE_LABEL,
|
uiUnixNewControl(uiControl(l), GTK_TYPE_LABEL,
|
||||||
FALSE, FALSE,
|
FALSE, FALSE, onDestroy,
|
||||||
"label", text,
|
"label", text,
|
||||||
"xalign", 0.0, // note: must be a float constant, otherwise the ... will turn it into an int and we get segfaults on some platforms (thanks ebassi in irc.gimp.net/#gtk+)
|
"xalign", 0.0, // note: must be a float constant, otherwise the ... will turn it into an int and we get segfaults on some platforms (thanks ebassi in irc.gimp.net/#gtk+)
|
||||||
// TODO yalign 0?
|
// TODO yalign 0?
|
||||||
|
@ -45,8 +45,6 @@ uiLabel *uiNewLabel(const char *text)
|
||||||
l->widget = WIDGET(l);
|
l->widget = WIDGET(l);
|
||||||
l->label = GTK_LABEL(l->widget);
|
l->label = GTK_LABEL(l->widget);
|
||||||
|
|
||||||
g_signal_connect(l->widget, "destroy", G_CALLBACK(onDestroy), l);
|
|
||||||
|
|
||||||
uiLabel(l)->Text = labelText;
|
uiLabel(l)->Text = labelText;
|
||||||
uiLabel(l)->SetText = labelSetText;
|
uiLabel(l)->SetText = labelSetText;
|
||||||
|
|
||||||
|
|
|
@ -11,9 +11,9 @@ struct tab {
|
||||||
uintmax_t cap;
|
uintmax_t cap;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void onDestroy(GtkWidget *widget, gpointer data)
|
static void onDestroy(uiControl *c)
|
||||||
{
|
{
|
||||||
struct tab *t = (struct tab *) data;
|
struct tab *t = (struct tab *) c;
|
||||||
|
|
||||||
uiFree(t->pages);
|
uiFree(t->pages);
|
||||||
uiFree(t);
|
uiFree(t);
|
||||||
|
@ -66,15 +66,13 @@ uiTab *uiNewTab(void)
|
||||||
t = uiNew(struct tab);
|
t = uiNew(struct tab);
|
||||||
|
|
||||||
uiUnixNewControl(uiControl(t), GTK_TYPE_NOTEBOOK,
|
uiUnixNewControl(uiControl(t), GTK_TYPE_NOTEBOOK,
|
||||||
FALSE, FALSE,
|
FALSE, FALSE, onDestroy,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
t->widget = WIDGET(t);
|
t->widget = WIDGET(t);
|
||||||
t->container = GTK_CONTAINER(t->widget);
|
t->container = GTK_CONTAINER(t->widget);
|
||||||
t->notebook = GTK_NOTEBOOK(t->widget);
|
t->notebook = GTK_NOTEBOOK(t->widget);
|
||||||
|
|
||||||
g_signal_connect(t->widget, "destroy", G_CALLBACK(onDestroy), t);
|
|
||||||
|
|
||||||
uiTab(t)->AddPage = tabAddPage;
|
uiTab(t)->AddPage = tabAddPage;
|
||||||
uiTab(t)->DeletePage = tabDeletePage;
|
uiTab(t)->DeletePage = tabDeletePage;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue