cepheid

An Aurora 4X clone
Log | Files | Refs | README

commit f81c5daedf72c92b6b24431fd77199e188ba3c19
parent e20070ba652f9ca8435f336bc47d701e44e42bc5
Author: hhvn <dev@hhvn.uk>
Date:   Wed,  1 Feb 2023 08:24:36 +0000

Change FormElem.type to int, then cast as enum when needed

Diffstat:
Msrc/gui.c | 19+++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)

diff --git a/src/gui.c b/src/gui.c @@ -569,7 +569,7 @@ gui_form(int x, int y, int w, int h, Form *form) { for (i = 0, lx = lw = -1, cy = y, sub = NULL; form->elems[i].type != FORM_END_TYPE && i < FORM_MAX; i++) { elem = &form->elems[i]; - switch ((int)elem->type) { + switch (elem->type) { case FORM_SUBFORM_TYPE: if (sub) cy += gui_form_sub_end(x, cy, w); @@ -614,7 +614,7 @@ gui_form(int x, int y, int w, int h, Form *form) { else tw = 0; - switch (elem->type) { + switch ((enum GuiElements)elem->type) { case GUI_INPUT: gui_input(lx + tw, cy, lw - tw, elem->elem); break; @@ -625,7 +625,7 @@ gui_form(int x, int y, int w, int h, Form *form) { gui_dropdown(lx + tw, cy, lw - tw, elem->elem); break; default: - error(1, "unexpected GUI element type"); + error(1, "unexpected GUI element type: %d\n", elem->type); } if (sub) { @@ -653,10 +653,10 @@ gui_form_filled(Form *form) { for (i = 0; i < FORM_MAX && form->elems[i].type != FORM_END_TYPE; i++) { elem = &form->elems[i]; - if (!elem->required) + if (!elem->required || elem->type < 0) continue; - switch (elem->type) { + switch ((enum GuiElements)elem->type) { case GUI_INPUT: in = elem->elem; if (!in->str[0]) @@ -670,7 +670,7 @@ gui_form_filled(Form *form) { return 0; break; default: - error(1, "unexpected GUI element type"); + error(1, "unexpected GUI element type: %d\n", elem->type); } } @@ -688,7 +688,10 @@ gui_form_clear(Form *form) { for (i = 0; i < FORM_MAX && form->elems[i].type != FORM_END_TYPE; i++) { elem = &form->elems[i]; - switch (elem->type) { + if (elem->type < 0) + continue; + + switch ((enum GuiElements)elem->type) { case GUI_INPUT: in = elem->elem; gui_input_clear(in); @@ -706,7 +709,7 @@ gui_form_clear(Form *form) { drop->sel = drop->def - DROPDOWN_DEFAULT_OFF; break; default: - error(1, "unexpected GUI element type"); + error(1, "unexpected GUI element type: %d\n", elem->type); } } }