/** * Draw single object based on its type */ static void SDLGui_DrawObj(const SGOBJ *dlg, int i) { switch (dlg[i].type) { case SGBOX: SDLGui_DrawBox(dlg, i); break; case SGTEXT: SDLGui_DrawText(dlg, i); break; case SGEDITFIELD: SDLGui_DrawEditField(dlg, i); break; case SGBUTTON: SDLGui_DrawButton(dlg, i); break; case SGRADIOBUT: SDLGui_DrawRadioButton(dlg, i); break; case SGCHECKBOX: SDLGui_DrawCheckBox(dlg, i); break; case SGPOPUP: SDLGui_DrawPopupButton(dlg, i); break; case SGSCROLLBAR: SDLGui_DrawScrollbar(dlg, i); break; } }
/** * Draw a whole dialog. */ void SDLGui_DrawDialog(const SGOBJ *dlg) { int i; for (i = 0; dlg[i].type != -1; i++) { switch (dlg[i].type) { case SGBOX: SDLGui_DrawBox(dlg, i); break; case SGTEXT: SDLGui_DrawText(dlg, i); break; case SGEDITFIELD: SDLGui_DrawEditField(dlg, i); break; case SGBUTTON: SDLGui_DrawButton(dlg, i); break; case SGRADIOBUT: SDLGui_DrawRadioButton(dlg, i); break; case SGCHECKBOX: SDLGui_DrawCheckBox(dlg, i); break; case SGPOPUP: SDLGui_DrawPopupButton(dlg, i); break; case SGSCROLLBAR: SDLGui_DrawScrollbar(dlg, i); break; } } SDL_UpdateRect(pSdlGuiScrn, 0,0,0,0); }
/* Draw or erase cursor. */ void SDLGui_DrawCursor(SGOBJ *dlg, cursor_state *cursor) { if (cursor->object != -1) { SDL_Rect coord; int cursorc; SDLGui_DrawEditField(dlg, cursor->object); if (cursor->blink_state) cursorc = blackc; else cursorc = greyc; SDLGui_ObjCoord(dlg, cursor->object, &coord); coord.x += (cursor->position * fontwidth); coord.w = 1; SDL_FillRect(sdlscrn, &coord, SDLGui_MapColor(cursorc)); SDLGui_RefreshObj(dlg, cursor->object); } }
/** * Draw a whole dialog. */ void SDLGui_DrawDialog(const SGOBJ *dlg) { int32_t i; memset(bmp, 0, sizeof(bmp)); for (i = 0; dlg[i].type != -1; i++) { switch (dlg[i].type) { case SGBOX: SDLGui_DrawBox(dlg, i); break; case SGTEXT: SDLGui_DrawText(dlg, i); break; case SGEDITFIELD: SDLGui_DrawEditField(dlg, i); break; case SGBUTTON: SDLGui_DrawButton(dlg, i); break; case SGRADIOBUT: SDLGui_DrawRadioButton(dlg, i); break; case SGCHECKBOX: SDLGui_DrawCheckBox(dlg, i); break; case SGPOPUP: SDLGui_DrawPopupButton(dlg, i); break; case SGSCROLLBAR: SDLGui_DrawScrollbar(dlg, i); break; } } }
/* Draw an object. */ void SDLGui_DrawObject(SGOBJ *dlg, int objnum) { switch (dlg[objnum].type) { case SGBOX: SDLGui_DrawBox(dlg, objnum); break; case SGTEXT: SDLGui_DrawText(dlg, objnum); break; case SGEDITFIELD: SDLGui_DrawEditField(dlg, objnum); break; case SGBUTTON: SDLGui_DrawButton(dlg, objnum); break; case SGCHECKBOX: SDLGui_DrawCheckBox(dlg, objnum); break; case SGPOPUP: SDLGui_DrawPopupButton(dlg, objnum); break; } }