189
189
190
190
cell_width = WIDTH // config ["width" ]
191
191
cell_height = HEIGHT // config ["height" ]
192
+ page_size = config ["width" ] * config ["height" ]
192
193
193
194
default_icon_bmp , default_icon_palette = adafruit_imageload .load ("launcher_assets/default_icon.bmp" )
194
195
default_icon_palette .make_transparent (0 )
@@ -325,13 +326,13 @@ def _unhide_cell_group(cell_group):
325
326
326
327
327
328
def display_page (page_index ):
328
- max_pages = math .ceil (len (apps ) / 6 )
329
+ max_pages = math .ceil (len (apps ) / page_size )
329
330
page_txt .text = f"{ page_index + 1 } /{ max_pages } "
330
331
331
- for grid_index in range (6 ):
332
+ for grid_index in range (page_size ):
332
333
grid_pos = (grid_index % config ["width" ], grid_index // config ["width" ])
333
334
try :
334
- cur_app = apps [grid_index + (page_index * 6 )]
335
+ cur_app = apps [grid_index + (page_index * page_size )]
335
336
except IndexError :
336
337
try :
337
338
cell_group = menu_grid .get_content (grid_pos )
@@ -380,7 +381,7 @@ def display_page(page_index):
380
381
scaled_group .append (left_tg )
381
382
scaled_group .append (right_tg )
382
383
383
- if len (apps ) <= 6 :
384
+ if len (apps ) <= page_size :
384
385
right_tg .hidden = True
385
386
left_tg .hidden = True
386
387
@@ -438,7 +439,7 @@ def change_selected(new_selected):
438
439
439
440
def page_right ():
440
441
global cur_page
441
- if cur_page < math .ceil (len (apps ) / 6 ) - 1 :
442
+ if cur_page < math .ceil (len (apps ) / page_size ) - 1 :
442
443
cur_page += 1
443
444
display_page (cur_page )
444
445
@@ -455,7 +456,7 @@ def handle_key_press(key):
455
456
# up key
456
457
if key == "\x1b [A" :
457
458
if isinstance (selected , tuple ):
458
- change_selected ((selected [0 ], (selected [1 ] - 1 ) % 2 ))
459
+ change_selected ((selected [0 ], (selected [1 ] - 1 ) % config [ "height" ] ))
459
460
elif selected is left_tg :
460
461
change_selected ((0 , 0 ))
461
462
elif selected is right_tg :
@@ -465,7 +466,7 @@ def handle_key_press(key):
465
466
# down key
466
467
elif key == "\x1b [B" :
467
468
if isinstance (selected , tuple ):
468
- change_selected ((selected [0 ], (selected [1 ] + 1 ) % 2 ))
469
+ change_selected ((selected [0 ], (selected [1 ] + 1 ) % config [ "height" ] ))
469
470
elif selected is left_tg :
470
471
change_selected ((0 , 1 ))
471
472
elif selected is right_tg :
@@ -480,7 +481,7 @@ def handle_key_press(key):
480
481
elif not left_tg .hidden :
481
482
change_selected (left_tg )
482
483
else :
483
- change_selected (((selected [0 ] - 1 ) % 3 , selected [1 ]))
484
+ change_selected (((selected [0 ] - 1 ) % config [ "width" ] , selected [1 ]))
484
485
elif selected is left_tg :
485
486
change_selected (right_tg )
486
487
elif selected is right_tg :
@@ -494,15 +495,15 @@ def handle_key_press(key):
494
495
elif not right_tg .hidden :
495
496
change_selected (right_tg )
496
497
else :
497
- change_selected (((selected [0 ] + 1 ) % 3 , selected [1 ]))
498
+ change_selected (((selected [0 ] + 1 ) % config [ "width" ] , selected [1 ]))
498
499
elif selected is left_tg :
499
500
change_selected ((0 , 0 ))
500
501
elif selected is right_tg :
501
502
change_selected (left_tg )
502
503
503
504
elif key == "\n " :
504
505
if isinstance (selected , tuple ):
505
- index = (selected [1 ] * 3 + selected [0 ]) + (cur_page * 6 )
506
+ index = (selected [1 ] * config [ "width" ] + selected [0 ]) + (cur_page * page_size )
506
507
if index >= len (apps ):
507
508
index = None
508
509
print ("go!" )
@@ -512,20 +513,20 @@ def handle_key_press(key):
512
513
page_right ()
513
514
elif key == "e" :
514
515
if isinstance (selected , tuple ):
515
- editor_index = (selected [1 ] * 3 + selected [0 ]) + (cur_page * 6 )
516
+ editor_index = (selected [1 ] * config [ "width" ] + selected [0 ]) + (cur_page * page_size )
516
517
if editor_index >= len (apps ):
517
518
editor_index = None
518
519
519
520
print ("go!" )
520
521
elif key in "123456789" :
521
522
if key != "9" :
522
523
requested_page = int (key )
523
- max_page = math .ceil (len (apps ) / 6 )
524
+ max_page = math .ceil (len (apps ) / page_size )
524
525
if requested_page <= max_page :
525
526
cur_page = requested_page - 1
526
527
display_page (requested_page - 1 )
527
528
else : # key == 9
528
- max_page = math .ceil (len (apps ) / 6 )
529
+ max_page = math .ceil (len (apps ) / page_size )
529
530
cur_page = max_page - 1
530
531
display_page (max_page - 1 )
531
532
else :
@@ -568,7 +569,7 @@ def handle_key_press(key):
568
569
print ("left click" )
569
570
clicked_cell = menu_grid .which_cell_contains ((mouse_tg .x , mouse_tg .y ))
570
571
if clicked_cell is not None :
571
- index = clicked_cell [1 ] * config ["width" ] + clicked_cell [0 ]
572
+ index = ( clicked_cell [1 ] * config ["width" ] + clicked_cell [0 ]) + ( cur_page * page_size )
572
573
573
574
if right_tg .contains ((mouse_tg .x , mouse_tg .y , 0 )):
574
575
page_right ()
0 commit comments