AleX83Xpert/add f keys to keyboard layout (#2362)
* Assets: png images for F1..F12 keys: Will be used for HID keyboard layout * HID KEYBOARD F1..F12 keys were added - a new row with functional keys was added - logic for displaying the keyboard layout was improved * HidApp: hid functional keys by default Co-authored-by: あく <alleteam@gmail.com>
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF10_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 172 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF11_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 173 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF12_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 180 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF1_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 177 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF2_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 179 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF3_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 178 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF4_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 177 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF5_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 178 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF6_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 177 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF7_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 176 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF8_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 176 B | 
							
								
								
									
										
											BIN
										
									
								
								applications/plugins/hid_app/assets/ButtonF9_5x8.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 179 B | 
| @ -46,11 +46,25 @@ typedef struct { | ||||
| #define KEY_WIDTH 9 | ||||
| #define KEY_HEIGHT 12 | ||||
| #define KEY_PADDING 1 | ||||
| #define ROW_COUNT 6 | ||||
| #define ROW_COUNT 7 | ||||
| #define COLUMN_COUNT 12 | ||||
| 
 | ||||
| // 0 width items are not drawn, but there value is used
 | ||||
| const HidKeyboardKey hid_keyboard_keyset[ROW_COUNT][COLUMN_COUNT] = { | ||||
|     { | ||||
|         {.width = 1, .icon = &I_ButtonF1_5x8, .value = HID_KEYBOARD_F1}, | ||||
|         {.width = 1, .icon = &I_ButtonF2_5x8, .value = HID_KEYBOARD_F2}, | ||||
|         {.width = 1, .icon = &I_ButtonF3_5x8, .value = HID_KEYBOARD_F3}, | ||||
|         {.width = 1, .icon = &I_ButtonF4_5x8, .value = HID_KEYBOARD_F4}, | ||||
|         {.width = 1, .icon = &I_ButtonF5_5x8, .value = HID_KEYBOARD_F5}, | ||||
|         {.width = 1, .icon = &I_ButtonF6_5x8, .value = HID_KEYBOARD_F6}, | ||||
|         {.width = 1, .icon = &I_ButtonF7_5x8, .value = HID_KEYBOARD_F7}, | ||||
|         {.width = 1, .icon = &I_ButtonF8_5x8, .value = HID_KEYBOARD_F8}, | ||||
|         {.width = 1, .icon = &I_ButtonF9_5x8, .value = HID_KEYBOARD_F9}, | ||||
|         {.width = 1, .icon = &I_ButtonF10_5x8, .value = HID_KEYBOARD_F10}, | ||||
|         {.width = 1, .icon = &I_ButtonF11_5x8, .value = HID_KEYBOARD_F11}, | ||||
|         {.width = 1, .icon = &I_ButtonF12_5x8, .value = HID_KEYBOARD_F12}, | ||||
|     }, | ||||
|     { | ||||
|         {.width = 1, .icon = NULL, .key = "1", .shift_key = "!", .value = HID_KEYBOARD_1}, | ||||
|         {.width = 1, .icon = NULL, .key = "2", .shift_key = "@", .value = HID_KEYBOARD_2}, | ||||
| @ -224,7 +238,12 @@ static void hid_keyboard_draw_callback(Canvas* canvas, void* context) { | ||||
| 
 | ||||
|     canvas_set_font(canvas, FontKeyboard); | ||||
|     // Start shifting the all keys up if on the next row (Scrolling)
 | ||||
|     uint8_t initY = model->y - 4 > 0 ? model->y - 4 : 0; | ||||
|     uint8_t initY = model->y == 0 ? 0 : 1; | ||||
| 
 | ||||
|     if(model->y > 5) { | ||||
|         initY = model->y - 4; | ||||
|     } | ||||
| 
 | ||||
|     for(uint8_t y = initY; y < ROW_COUNT; y++) { | ||||
|         const HidKeyboardKey* keyboardKeyRow = hid_keyboard_keyset[y]; | ||||
|         uint8_t x = 0; | ||||
| @ -365,7 +384,10 @@ HidKeyboard* hid_keyboard_alloc(Hid* bt_hid) { | ||||
|     with_view_model( | ||||
|         hid_keyboard->view, | ||||
|         HidKeyboardModel * model, | ||||
|         { model->transport = bt_hid->transport; }, | ||||
|         { | ||||
|             model->transport = bt_hid->transport; | ||||
|             model->y = 1; | ||||
|         }, | ||||
|         true); | ||||
| 
 | ||||
|     return hid_keyboard; | ||||
|  | ||||
 nas
						nas