#include "base.h" const U32 DROPDOWN_TITLE_OFFSET = 15; void gui_dropdown_draw_fn( void* p ) { GUI_DROPDOWN* drop = (GUI_DROPDOWN*)p; I32 x = gui_relx( drop ); I32 y = gui_rely( drop ); CLR col = gui_is_fg_window( drop )? ui_clr.border : ui_clr.border_inactive; gui_draw_frect( x, y, drop->w, drop->h, col ); gui_draw_frect( x+1, y+1, drop->w-2, drop->h-2, ui_clr.bg_sec ); I32 middle = x + drop->w/2; I32 middle_y = y + drop->h/2 - 7; gui_draw_str( middle, middle_y, ALIGN_C, FNT_JPN12, ui_clr.txt, drop->name ); } void gui_dropdown_input_fn( void* p ) { } GUI_DROPDOWN* gui_dropdown( I32 x, I32 y, I32 w, I32 h, const char* title, LIST* list, I32* pval ) { if( !gui_check_target() ) return 0; GUI_DROPDOWN* dropdown = new GUI_DROPDOWN; dropdown->x = x; dropdown->y = y; dropdown->w = w; dropdown->h = h; dropdown->xbound = w; dropdown->ybound = h + DROPDOWN_TITLE_OFFSET; dropdown->cb = 0; dropdown->pval = pval; dropdown->plist = list; dropdown->draw_fn = gui_dropdown_draw_fn; dropdown->input_fn = gui_dropdown_input_fn; strcpy( dropdown->name, title ); dropdown->parent = gui_get_view(); gui_get_view()->children.push( dropdown ); return dropdown; }