Merge pull request #46 from relic-se/mouse-click-index
Some checks failed
Validate Build / validate-build (push) Has been cancelled
Some checks failed
Validate Build / validate-build (push) Has been cancelled
Mouse click index page bug fix
This commit is contained in:
commit
631d270860
1 changed files with 15 additions and 14 deletions
29
src/code.py
29
src/code.py
|
|
@ -189,6 +189,7 @@ config = {
|
||||||
|
|
||||||
cell_width = WIDTH // config["width"]
|
cell_width = WIDTH // config["width"]
|
||||||
cell_height = HEIGHT // config["height"]
|
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_bmp, default_icon_palette = adafruit_imageload.load("launcher_assets/default_icon.bmp")
|
||||||
default_icon_palette.make_transparent(0)
|
default_icon_palette.make_transparent(0)
|
||||||
|
|
@ -325,13 +326,13 @@ def _unhide_cell_group(cell_group):
|
||||||
|
|
||||||
|
|
||||||
def display_page(page_index):
|
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}"
|
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"])
|
grid_pos = (grid_index % config["width"], grid_index // config["width"])
|
||||||
try:
|
try:
|
||||||
cur_app = apps[grid_index + (page_index * 6)]
|
cur_app = apps[grid_index + (page_index * page_size)]
|
||||||
except IndexError:
|
except IndexError:
|
||||||
try:
|
try:
|
||||||
cell_group = menu_grid.get_content(grid_pos)
|
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(left_tg)
|
||||||
scaled_group.append(right_tg)
|
scaled_group.append(right_tg)
|
||||||
|
|
||||||
if len(apps) <= 6:
|
if len(apps) <= page_size:
|
||||||
right_tg.hidden = True
|
right_tg.hidden = True
|
||||||
left_tg.hidden = True
|
left_tg.hidden = True
|
||||||
|
|
||||||
|
|
@ -438,7 +439,7 @@ change_selected((0, 0))
|
||||||
|
|
||||||
def page_right():
|
def page_right():
|
||||||
global cur_page
|
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
|
cur_page += 1
|
||||||
display_page(cur_page)
|
display_page(cur_page)
|
||||||
|
|
||||||
|
|
@ -455,7 +456,7 @@ def handle_key_press(key):
|
||||||
# up key
|
# up key
|
||||||
if key == "\x1b[A":
|
if key == "\x1b[A":
|
||||||
if isinstance(selected, tuple):
|
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:
|
elif selected is left_tg:
|
||||||
change_selected((0, 0))
|
change_selected((0, 0))
|
||||||
elif selected is right_tg:
|
elif selected is right_tg:
|
||||||
|
|
@ -465,7 +466,7 @@ def handle_key_press(key):
|
||||||
# down key
|
# down key
|
||||||
elif key == "\x1b[B":
|
elif key == "\x1b[B":
|
||||||
if isinstance(selected, tuple):
|
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:
|
elif selected is left_tg:
|
||||||
change_selected((0, 1))
|
change_selected((0, 1))
|
||||||
elif selected is right_tg:
|
elif selected is right_tg:
|
||||||
|
|
@ -480,7 +481,7 @@ def handle_key_press(key):
|
||||||
elif not left_tg.hidden:
|
elif not left_tg.hidden:
|
||||||
change_selected(left_tg)
|
change_selected(left_tg)
|
||||||
else:
|
else:
|
||||||
change_selected(((selected[0] - 1) % 3, selected[1]))
|
change_selected(((selected[0] - 1) % config["width"], selected[1]))
|
||||||
elif selected is left_tg:
|
elif selected is left_tg:
|
||||||
change_selected(right_tg)
|
change_selected(right_tg)
|
||||||
elif selected is right_tg:
|
elif selected is right_tg:
|
||||||
|
|
@ -494,7 +495,7 @@ def handle_key_press(key):
|
||||||
elif not right_tg.hidden:
|
elif not right_tg.hidden:
|
||||||
change_selected(right_tg)
|
change_selected(right_tg)
|
||||||
else:
|
else:
|
||||||
change_selected(((selected[0] + 1) % 3, selected[1]))
|
change_selected(((selected[0] + 1) % config["width"], selected[1]))
|
||||||
elif selected is left_tg:
|
elif selected is left_tg:
|
||||||
change_selected((0, 0))
|
change_selected((0, 0))
|
||||||
elif selected is right_tg:
|
elif selected is right_tg:
|
||||||
|
|
@ -502,7 +503,7 @@ def handle_key_press(key):
|
||||||
|
|
||||||
elif key == "\n":
|
elif key == "\n":
|
||||||
if isinstance(selected, tuple):
|
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):
|
if index >= len(apps):
|
||||||
index = None
|
index = None
|
||||||
print("go!")
|
print("go!")
|
||||||
|
|
@ -512,7 +513,7 @@ def handle_key_press(key):
|
||||||
page_right()
|
page_right()
|
||||||
elif key == "e":
|
elif key == "e":
|
||||||
if isinstance(selected, tuple):
|
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):
|
if editor_index >= len(apps):
|
||||||
editor_index = None
|
editor_index = None
|
||||||
|
|
||||||
|
|
@ -520,12 +521,12 @@ def handle_key_press(key):
|
||||||
elif key in "123456789":
|
elif key in "123456789":
|
||||||
if key != "9":
|
if key != "9":
|
||||||
requested_page = int(key)
|
requested_page = int(key)
|
||||||
max_page = math.ceil(len(apps) / 6)
|
max_page = math.ceil(len(apps) / page_size)
|
||||||
if requested_page <= max_page:
|
if requested_page <= max_page:
|
||||||
cur_page = requested_page - 1
|
cur_page = requested_page - 1
|
||||||
display_page(requested_page-1)
|
display_page(requested_page-1)
|
||||||
else: # key == 9
|
else: # key == 9
|
||||||
max_page = math.ceil(len(apps) / 6)
|
max_page = math.ceil(len(apps) / page_size)
|
||||||
cur_page = max_page - 1
|
cur_page = max_page - 1
|
||||||
display_page(max_page - 1)
|
display_page(max_page - 1)
|
||||||
else:
|
else:
|
||||||
|
|
@ -568,7 +569,7 @@ while True:
|
||||||
print("left click")
|
print("left click")
|
||||||
clicked_cell = menu_grid.which_cell_contains((mouse_tg.x, mouse_tg.y))
|
clicked_cell = menu_grid.which_cell_contains((mouse_tg.x, mouse_tg.y))
|
||||||
if clicked_cell is not None:
|
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)):
|
if right_tg.contains((mouse_tg.x, mouse_tg.y, 0)):
|
||||||
page_right()
|
page_right()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue