From df989848c5eaf39beea3ad608de5166cb729d56c Mon Sep 17 00:00:00 2001 From: cancel Date: Fri, 14 Dec 2018 08:06:34 +0900 Subject: [PATCH] Add fancier meter drawing --- tui_main.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/tui_main.c b/tui_main.c index b2dadba..68a6495 100644 --- a/tui_main.c +++ b/tui_main.c @@ -393,16 +393,17 @@ void print_meter(WINDOW* win, float meter_level) { segs = 0; else if (segs > Segments) segs = Segments; - char buffer[Segments + 1]; + chtype buffer[Segments]; int i = 0; for (; i < segs; ++i) { - buffer[i] = '|'; + // buffer[i] = ' ' | A_DIM | fg_bg(C_natural, C_white); + // buffer[i] = (i == 0 ? ACS_LTEE : ACS_PLUS) | A_DIM; + buffer[i] = (i % 2 ? ACS_PLUS : ACS_HLINE) | A_REVERSE; } for (; i < Segments; ++i) { - buffer[i] = '-'; + buffer[i] = ACS_HLINE | A_DIM; } - buffer[i] = '\0'; - wprintw(win, buffer); + waddchnstr(win, buffer, Segments); } void draw_hud(WINDOW* win, int win_y, int win_x, int height, int width, @@ -416,7 +417,6 @@ void draw_hud(WINDOW* win, int win_y, int win_x, int height, int width, wprintw(win, "%dx%d\t%d/%d\t%df\t%d\t", (int)field_w, (int)field_h, (int)ruler_spacing_x, (int)ruler_spacing_y, (int)tick_num, (int)bpm); print_meter(win, meter_level); - wclrtoeol(win); wmove(win, win_y + 1, win_x); wprintw(win, "%d,%d\t%d:%d\tcell\t", (int)ged_cursor->x, (int)ged_cursor->y, (int)ged_cursor->w, (int)ged_cursor->h); @@ -440,7 +440,6 @@ void draw_hud(WINDOW* win, int win_y, int win_x, int height, int width, } wattrset(win, A_normal); wprintw(win, "\t%s", filename); - wclrtoeol(win); } void draw_glyphs_grid(WINDOW* win, int draw_y, int draw_x, int draw_h, @@ -924,7 +923,7 @@ void ged_do_stuff(Ged* a) { a->oevent_list.buffer, count); } } - a->meter_level += (float)count * 0.5f; + a->meter_level += (float)count * 0.2f; a->meter_level = float_clamp(a->meter_level, 0.0f, 1.0f); // note for future: sustained note deadlines may have changed due to note // on. will need to update stored deadline in memory if