comparison examples/example-gridmenu/example-gridmenu.c @ 609:d97674d33764

ui: grid menu be more flexible
author David Demelier <markand@malikania.fr>
date Fri, 11 Aug 2023 18:01:28 +0200
parents 2527b000aaa5
children 91ef0df9f501
comparison
equal deleted inserted replaced
608:2527b000aaa5 609:d97674d33764
59 "Double tour" 59 "Double tour"
60 }; 60 };
61 61
62 static struct mlk_style style; 62 static struct mlk_style style;
63 63
64 static struct mlk_frame frame = {
65 .w = 300,
66 .h = 100,
67 .delegate = &mlk_frame_delegate,
68 .style = &mlk_style
69 };
70 static struct mlk_gridmenu menu = { 64 static struct mlk_gridmenu menu = {
71 .nrows = 3, 65 .nrows = 3,
72 .ncols = 2, 66 .ncols = 2,
73 .items = items, 67 .items = items,
74 .itemsz = MLK_UTIL_SIZE(items), 68 .itemsz = MLK_UTIL_SIZE(items),
129 { 123 {
130 (void)st; 124 (void)st;
131 125
132 mlk_painter_set_color(MLK_EXAMPLE_BG); 126 mlk_painter_set_color(MLK_EXAMPLE_BG);
133 mlk_painter_clear(); 127 mlk_painter_clear();
134 mlk_frame_draw(&frame);
135 mlk_gridmenu_draw(&menu); 128 mlk_gridmenu_draw(&menu);
136 mlk_painter_present(); 129 mlk_painter_present();
137 } 130 }
138 131
139 static void 132 static void
144 .update = update, 137 .update = update,
145 .draw = draw, 138 .draw = draw,
146 }; 139 };
147 140
148 mlk_gridmenu_resize(&menu, 0, 0, 300, 100); 141 mlk_gridmenu_resize(&menu, 0, 0, 300, 100);
149
150 mlk_align(MLK_ALIGN_CENTER, &menu.x, &menu.y, menu.w, menu.h, 0, 0, mlk_window.w, mlk_window.h); 142 mlk_align(MLK_ALIGN_CENTER, &menu.x, &menu.y, menu.w, menu.h, 0, 0, mlk_window.w, mlk_window.h);
151 frame.x = menu.x;
152 frame.y = menu.y;
153 143
154 mlk_game_init(); 144 mlk_game_init();
155 mlk_game_push(&state); 145 mlk_game_push(&state);
156 mlk_game_loop(); 146 mlk_game_loop();
157 } 147 }