void gg_bin_init(gg_bin_t *bin, gg_widget_t *child) { gg_container_init((gg_container_t *) bin); bin->set_size = gg_bin_set_size; bin->set_focus_pos = gg_bin_set_focus_pos; bin->input = gg_bin_input; bin->id = gg_bin_get_class_id(); bin->enabled = child->enabled; gg_container_append(GG_CONTAINER(bin), child); }
0.0f, 0.0f, 0.5f, 1.0f }; static gg_colour_t col_grey = { 0.5f, 0.5f, 0.5f, 1.0f }; static gg_colour_t col_grey2 = { 0.25f, 0.25f, 0.25f, 1.0f }; gg_class_id gg_dialog_get_class_id() { GG_CHILD(gg_bin_get_class_id()) } static TAILQ_HEAD(dialogs_head, gg_dialog) dialogs = TAILQ_HEAD_INITIALIZER(dialogs); static TAILQ_HEAD(closed_dialogs_head, gg_dialog) closed_dialogs = TAILQ_HEAD_INITIALIZER(closed_dialogs); void gg_dialog_cleanup() { while (!TAILQ_EMPTY(&closed_dialogs)) { gg_dialog_t *dialog = TAILQ_FIRST(&closed_dialogs); TAILQ_REMOVE(&closed_dialogs, dialog, entries); dialog->destroy(GG_WIDGET(dialog)); } }