From 8fc5cc7f53ea3874bae5389f489814869d2abd04 Mon Sep 17 00:00:00 2001 From: Bad Diode Date: Tue, 22 Aug 2023 11:30:47 +0200 Subject: Update right column UI and cursor management --- src/drawing.c | 116 ++++++++++++++++++++++++++++++++++------------------------ 1 file changed, 69 insertions(+), 47 deletions(-) (limited to 'src/drawing.c') 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) { void draw_right_col_cursor(int i, u8 clr) { - // TODO:... - return; - size_t x0 = 0; - size_t x1 = 0; - size_t y = 0; - switch (i) { - case R_COL_BPM: { - x0 = BPM_START_X; - x1 = x0 + R_COL_W; - y = BPM_START_Y + BPM_H + 0; - } break; - case R_COL_STOP: { - x0 = STOP_START_X; - x1 = x0 + PLAY_STOP_W; - y = STOP_START_Y + PLAY_STOP_H + 2; - } break; - case R_COL_PLAY: { - x0 = PLAY_START_X; - x1 = x0 + PLAY_STOP_W; - y = PLAY_START_Y + PLAY_STOP_H + 2; - } break; - case R_COL_SETTINGS: { - x0 = SETTINGS_START_X + 2; - x1 = x0 + R_COL_W - 4; - y = SETTINGS_START_Y + PLAY_STOP_H + 2; - } break; - case R_COL_BANK_A: { - x0 = BANK_START_X; - x1 = x0 + PAT_W; - y = BANK_START_Y + PAT_H + 2; - } break; - case R_COL_BANK_B: { - x0 = BANK_START_X; - x1 = x0 + PAT_W; - y = BANK_START_Y + PAT_H + 2 + 1 * PAT_OFFSET_Y; - } break; - case R_COL_BANK_C: { - x0 = BANK_START_X; - x1 = x0 + PAT_W; - y = BANK_START_Y + PAT_H + 2 + 2 * PAT_OFFSET_Y; - } break; - case R_COL_BANK_D: { - x0 = BANK_START_X; - x1 = x0 + PAT_W; - y = BANK_START_Y + PAT_H + 2 + 3 * PAT_OFFSET_Y; - } break; - } + size_t x0_pos[] = { + // Banks. + BANK_START_X - 7, + BANK_START_X + 9, + BANK_START_X - 7, + BANK_START_X + 9, + BANK_START_X - 7, + BANK_START_X + 9, + + // Scale. + BANK_START_X - 7, + + // BPM. + BANK_START_X - 7, + + // Settings. + BANK_START_X - 7, + + // Play/stop. + BANK_START_X - 7, + BANK_START_X + 9, + }; + size_t x1_pos[] = { + // Banks. + BANK_START_X + 5, + BANK_START_X + 21, + BANK_START_X + 5, + BANK_START_X + 21, + BANK_START_X + 5, + BANK_START_X + 21, + + // Scale. + BANK_START_X + 21, + + // BPM. + BANK_START_X + 21, + + // Settings. + BANK_START_X + 21, + + // Play/stop. + BANK_START_X + 5, + BANK_START_X + 21, + }; + size_t y_pos[] = { + // Banks. + BANK_START_Y + 12, + BANK_START_Y + 12, + BANK_START_Y + 12 + 18, + BANK_START_Y + 12 + 18, + BANK_START_Y + 12 + 18 * 2, + BANK_START_Y + 12 + 18 * 2, + + // Scale. + BANK_START_Y + 78, + + // BPM. + BANK_START_Y + 108, + + // Settings. + BANK_START_Y + 124, + + // Play/stop. + BANK_START_Y + 138, + BANK_START_Y + 138, + }; + size_t x0 = x0_pos[i]; + size_t x1 = x1_pos[i]; + size_t y = y_pos[i]; draw_line(x0, y, x1, y, clr); draw_line(x0, y + 1, x1, y + 1, clr); } -- cgit v1.2.1