Mercurial > molko
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 } |