Add the ability to turn pages in infrared (#2271)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							parent
							
								
									75e9de12b0
								
							
						
					
					
						commit
						073fb3861a
					
				| @ -178,6 +178,47 @@ static void button_menu_process_down(ButtonMenu* button_menu) { | ||||
|         true); | ||||
| } | ||||
| 
 | ||||
| static void button_menu_process_right(ButtonMenu* button_menu) { | ||||
|     furi_assert(button_menu); | ||||
| 
 | ||||
|     with_view_model( | ||||
|         button_menu->view, | ||||
|         ButtonMenuModel * model, | ||||
|         { | ||||
|             if(ButtonMenuItemArray_size(model->items) > BUTTONS_PER_SCREEN) { | ||||
|                 size_t position_candidate = model->position + BUTTONS_PER_SCREEN; | ||||
|                 position_candidate -= position_candidate % BUTTONS_PER_SCREEN; | ||||
|                 if(position_candidate < (ButtonMenuItemArray_size(model->items))) { | ||||
|                     model->position = position_candidate; | ||||
|                 } else { | ||||
|                     model->position = 0; | ||||
|                 } | ||||
|             } | ||||
|         }, | ||||
|         true); | ||||
| } | ||||
| 
 | ||||
| static void button_menu_process_left(ButtonMenu* button_menu) { | ||||
|     furi_assert(button_menu); | ||||
| 
 | ||||
|     with_view_model( | ||||
|         button_menu->view, | ||||
|         ButtonMenuModel * model, | ||||
|         { | ||||
|             if(ButtonMenuItemArray_size(model->items) > BUTTONS_PER_SCREEN) { | ||||
|                 size_t position_candidate; | ||||
|                 if(model->position < BUTTONS_PER_SCREEN) { | ||||
|                     position_candidate = (ButtonMenuItemArray_size(model->items) - 1); | ||||
|                 } else { | ||||
|                     position_candidate = model->position - BUTTONS_PER_SCREEN; | ||||
|                 }; | ||||
|                 position_candidate -= position_candidate % BUTTONS_PER_SCREEN; | ||||
|                 model->position = position_candidate; | ||||
|             } | ||||
|         }, | ||||
|         true); | ||||
| } | ||||
| 
 | ||||
| static void button_menu_process_ok(ButtonMenu* button_menu, InputType type) { | ||||
|     furi_assert(button_menu); | ||||
| 
 | ||||
| @ -239,6 +280,14 @@ static bool button_menu_view_input_callback(InputEvent* event, void* context) { | ||||
|             consumed = true; | ||||
|             button_menu_process_down(button_menu); | ||||
|             break; | ||||
|         case InputKeyRight: | ||||
|             consumed = true; | ||||
|             button_menu_process_right(button_menu); | ||||
|             break; | ||||
|         case InputKeyLeft: | ||||
|             consumed = true; | ||||
|             button_menu_process_left(button_menu); | ||||
|             break; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 gid9798
						gid9798