diff --git a/src/code.py b/src/code.py index 8059b07..8d1b0ed 100644 --- a/src/code.py +++ b/src/code.py @@ -189,6 +189,7 @@ config = { cell_width = WIDTH // config["width"] cell_height = HEIGHT // config["height"] +page_size = config["width"] * config["height"] default_icon_bmp, default_icon_palette = adafruit_imageload.load("launcher_assets/default_icon.bmp") default_icon_palette.make_transparent(0) @@ -325,13 +326,13 @@ def _unhide_cell_group(cell_group): def display_page(page_index): - max_pages = math.ceil(len(apps) / 6) + max_pages = math.ceil(len(apps) / page_size) page_txt.text = f"{page_index + 1}/{max_pages}" - for grid_index in range(6): + for grid_index in range(page_size): grid_pos = (grid_index % config["width"], grid_index // config["width"]) try: - cur_app = apps[grid_index + (page_index * 6)] + cur_app = apps[grid_index + (page_index * page_size)] except IndexError: try: cell_group = menu_grid.get_content(grid_pos) @@ -380,7 +381,7 @@ original_arrow_btn_color = left_palette[2] scaled_group.append(left_tg) scaled_group.append(right_tg) -if len(apps) <= 6: +if len(apps) <= page_size: right_tg.hidden = True left_tg.hidden = True @@ -438,7 +439,7 @@ change_selected((0, 0)) def page_right(): global cur_page - if cur_page < math.ceil(len(apps) / 6) - 1: + if cur_page < math.ceil(len(apps) / page_size) - 1: cur_page += 1 display_page(cur_page) @@ -455,7 +456,7 @@ def handle_key_press(key): # up key if key == "\x1b[A": if isinstance(selected, tuple): - change_selected((selected[0], (selected[1] - 1) % 2)) + change_selected((selected[0], (selected[1] - 1) % config["height"])) elif selected is left_tg: change_selected((0, 0)) elif selected is right_tg: @@ -465,7 +466,7 @@ def handle_key_press(key): # down key elif key == "\x1b[B": if isinstance(selected, tuple): - change_selected((selected[0], (selected[1] + 1) % 2)) + change_selected((selected[0], (selected[1] + 1) % config["height"])) elif selected is left_tg: change_selected((0, 1)) elif selected is right_tg: @@ -480,7 +481,7 @@ def handle_key_press(key): elif not left_tg.hidden: change_selected(left_tg) else: - change_selected(((selected[0] - 1) % 3, selected[1])) + change_selected(((selected[0] - 1) % config["width"], selected[1])) elif selected is left_tg: change_selected(right_tg) elif selected is right_tg: @@ -494,7 +495,7 @@ def handle_key_press(key): elif not right_tg.hidden: change_selected(right_tg) else: - change_selected(((selected[0] + 1) % 3, selected[1])) + change_selected(((selected[0] + 1) % config["width"], selected[1])) elif selected is left_tg: change_selected((0, 0)) elif selected is right_tg: @@ -502,7 +503,7 @@ def handle_key_press(key): elif key == "\n": if isinstance(selected, tuple): - index = (selected[1] * 3 + selected[0]) + (cur_page * 6) + index = (selected[1] * config["width"] + selected[0]) + (cur_page * page_size) if index >= len(apps): index = None print("go!") @@ -512,7 +513,7 @@ def handle_key_press(key): page_right() elif key == "e": if isinstance(selected, tuple): - editor_index = (selected[1] * 3 + selected[0]) + (cur_page * 6) + editor_index = (selected[1] * config["width"] + selected[0]) + (cur_page * page_size) if editor_index >= len(apps): editor_index = None @@ -520,12 +521,12 @@ def handle_key_press(key): elif key in "123456789": if key != "9": requested_page = int(key) - max_page = math.ceil(len(apps) / 6) + max_page = math.ceil(len(apps) / page_size) if requested_page <= max_page: cur_page = requested_page - 1 display_page(requested_page-1) else: # key == 9 - max_page = math.ceil(len(apps) / 6) + max_page = math.ceil(len(apps) / page_size) cur_page = max_page - 1 display_page(max_page - 1) else: @@ -568,7 +569,7 @@ while True: print("left click") clicked_cell = menu_grid.which_cell_contains((mouse_tg.x, mouse_tg.y)) if clicked_cell is not None: - index = clicked_cell[1] * config["width"] + clicked_cell[0] + index = (clicked_cell[1] * config["width"] + clicked_cell[0]) + (cur_page * page_size) if right_tg.contains((mouse_tg.x, mouse_tg.y, 0)): page_right()