diff options
author | Bad Diode <bd@badd10de.dev> | 2023-08-22 11:30:47 +0200 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2023-08-22 11:30:47 +0200 |
commit | 8fc5cc7f53ea3874bae5389f489814869d2abd04 (patch) | |
tree | 9d01ef11a0618a6377d07058c2cd704562827bb7 /src/drawing.c | |
parent | c888455af3ea5b9e8d2087a57df104c14ffac09e (diff) | |
download | stepper-8fc5cc7f53ea3874bae5389f489814869d2abd04.tar.gz stepper-8fc5cc7f53ea3874bae5389f489814869d2abd04.zip |
Update right column UI and cursor management
Diffstat (limited to 'src/drawing.c')
-rw-r--r-- | src/drawing.c | 116 |
1 files changed, 69 insertions, 47 deletions
diff --git a/src/drawing.c b/src/drawing.c index dd77803..d24307b 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -162,53 +162,75 @@ draw_trig_cursor(size_t i, u8 clr, bool dither) { | |||
162 | 162 | ||
163 | void | 163 | void |
164 | draw_right_col_cursor(int i, u8 clr) { | 164 | draw_right_col_cursor(int i, u8 clr) { |
165 | // TODO:... | 165 | size_t x0_pos[] = { |
166 | return; | 166 | // Banks. |
167 | size_t x0 = 0; | 167 | BANK_START_X - 7, |
168 | size_t x1 = 0; | 168 | BANK_START_X + 9, |
169 | size_t y = 0; | 169 | BANK_START_X - 7, |
170 | switch (i) { | 170 | BANK_START_X + 9, |
171 | case R_COL_BPM: { | 171 | BANK_START_X - 7, |
172 | x0 = BPM_START_X; | 172 | BANK_START_X + 9, |
173 | x1 = x0 + R_COL_W; | 173 | |
174 | y = BPM_START_Y + BPM_H + 0; | 174 | // Scale. |
175 | } break; | 175 | BANK_START_X - 7, |
176 | case R_COL_STOP: { | 176 | |
177 | x0 = STOP_START_X; | 177 | // BPM. |
178 | x1 = x0 + PLAY_STOP_W; | 178 | BANK_START_X - 7, |
179 | y = STOP_START_Y + PLAY_STOP_H + 2; | 179 | |
180 | } break; | 180 | // Settings. |
181 | case R_COL_PLAY: { | 181 | BANK_START_X - 7, |
182 | x0 = PLAY_START_X; | 182 | |
183 | x1 = x0 + PLAY_STOP_W; | 183 | // Play/stop. |
184 | y = PLAY_START_Y + PLAY_STOP_H + 2; | 184 | BANK_START_X - 7, |
185 | } break; | 185 | BANK_START_X + 9, |
186 | case R_COL_SETTINGS: { | 186 | }; |
187 | x0 = SETTINGS_START_X + 2; | 187 | size_t x1_pos[] = { |
188 | x1 = x0 + R_COL_W - 4; | 188 | // Banks. |
189 | y = SETTINGS_START_Y + PLAY_STOP_H + 2; | 189 | BANK_START_X + 5, |
190 | } break; | 190 | BANK_START_X + 21, |
191 | case R_COL_BANK_A: { | 191 | BANK_START_X + 5, |
192 | x0 = BANK_START_X; | 192 | BANK_START_X + 21, |
193 | x1 = x0 + PAT_W; | 193 | BANK_START_X + 5, |
194 | y = BANK_START_Y + PAT_H + 2; | 194 | BANK_START_X + 21, |
195 | } break; | 195 | |
196 | case R_COL_BANK_B: { | 196 | // Scale. |
197 | x0 = BANK_START_X; | 197 | BANK_START_X + 21, |
198 | x1 = x0 + PAT_W; | 198 | |
199 | y = BANK_START_Y + PAT_H + 2 + 1 * PAT_OFFSET_Y; | 199 | // BPM. |
200 | } break; | 200 | BANK_START_X + 21, |
201 | case R_COL_BANK_C: { | 201 | |
202 | x0 = BANK_START_X; | 202 | // Settings. |
203 | x1 = x0 + PAT_W; | 203 | BANK_START_X + 21, |
204 | y = BANK_START_Y + PAT_H + 2 + 2 * PAT_OFFSET_Y; | 204 | |
205 | } break; | 205 | // Play/stop. |
206 | case R_COL_BANK_D: { | 206 | BANK_START_X + 5, |
207 | x0 = BANK_START_X; | 207 | BANK_START_X + 21, |
208 | x1 = x0 + PAT_W; | 208 | }; |
209 | y = BANK_START_Y + PAT_H + 2 + 3 * PAT_OFFSET_Y; | 209 | size_t y_pos[] = { |
210 | } break; | 210 | // Banks. |
211 | } | 211 | BANK_START_Y + 12, |
212 | BANK_START_Y + 12, | ||
213 | BANK_START_Y + 12 + 18, | ||
214 | BANK_START_Y + 12 + 18, | ||
215 | BANK_START_Y + 12 + 18 * 2, | ||
216 | BANK_START_Y + 12 + 18 * 2, | ||
217 | |||
218 | // Scale. | ||
219 | BANK_START_Y + 78, | ||
220 | |||
221 | // BPM. | ||
222 | BANK_START_Y + 108, | ||
223 | |||
224 | // Settings. | ||
225 | BANK_START_Y + 124, | ||
226 | |||
227 | // Play/stop. | ||
228 | BANK_START_Y + 138, | ||
229 | BANK_START_Y + 138, | ||
230 | }; | ||
231 | size_t x0 = x0_pos[i]; | ||
232 | size_t x1 = x1_pos[i]; | ||
233 | size_t y = y_pos[i]; | ||
212 | draw_line(x0, y, x1, y, clr); | 234 | draw_line(x0, y, x1, y, clr); |
213 | draw_line(x0, y + 1, x1, y + 1, clr); | 235 | draw_line(x0, y + 1, x1, y + 1, clr); |
214 | } | 236 | } |