static void _show_bar_page(int row) { cur_row = row; cp->num_bars = num_disp_bars(); memset(cp->pctvalue, 0, sizeof(cp->pctvalue)); int view_height = (cp->type == MONITOR_RAWINPUT) ? RAW_HEIGHT // can only show 3 rows: (12 + 5) x 3 : CHAN_HEIGHT; // can only show 4 rows: (8 + 5) x 4 GUI_CreateScrollable(&gui->scrollable, SCROLLABLE_X, HEADER_HEIGHT, LCD_WIDTH-SCROLLABLE_X, LCD_HEIGHT - HEADER_HEIGHT, view_height, (cp->num_bars + 1)/2, row_cb, getobj_cb, NULL, NULL); GUI_CreateLabelBox(&gui->page, LCD_WIDTH -ARROW_W, 0, ARROW_W, HEADER_HEIGHT, &DEFAULT_FONT, _page_cb, NULL, NULL); }
static void _show_bar_page() { int num_bars = num_disp_bars(); //printf("Show bar page nbars: %d, bars per row: %d\n", num_bars, NUM_BARS_PER_ROW); int num_rows = 1; if (num_bars > 2 * (NUM_BARS_PER_ROW + 1)) { num_rows = num_bars / NUM_BARS_PER_ROW + 1; num_bars -= cur_row * NUM_BARS_PER_ROW; if (num_bars > 2 * NUM_BARS_PER_ROW) num_bars = 2 * NUM_BARS_PER_ROW; } cp->num_bars = num_bars; //printf("Calculated num rows: %d, num bars: %d, cur row: %d\n", num_rows, num_bars, cur_row); GUI_CreateScrollable(&gui->scrollable, 0, 32, LCD_WIDTH, LCD_HEIGHT-32, LCD_HEIGHT - 32, num_rows, row_cb, NULL, NULL, NULL); }