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_WIDTH 9 | ||||||
| #define KEY_HEIGHT 12 | #define KEY_HEIGHT 12 | ||||||
| #define KEY_PADDING 1 | #define KEY_PADDING 1 | ||||||
| #define ROW_COUNT 6 | #define ROW_COUNT 7 | ||||||
| #define COLUMN_COUNT 12 | #define COLUMN_COUNT 12 | ||||||
| 
 | 
 | ||||||
| // 0 width items are not drawn, but there value is used
 | // 0 width items are not drawn, but there value is used
 | ||||||
| const HidKeyboardKey hid_keyboard_keyset[ROW_COUNT][COLUMN_COUNT] = { | 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 = "1", .shift_key = "!", .value = HID_KEYBOARD_1}, | ||||||
|         {.width = 1, .icon = NULL, .key = "2", .shift_key = "@", .value = HID_KEYBOARD_2}, |         {.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); |     canvas_set_font(canvas, FontKeyboard); | ||||||
|     // Start shifting the all keys up if on the next row (Scrolling)
 |     // 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++) { |     for(uint8_t y = initY; y < ROW_COUNT; y++) { | ||||||
|         const HidKeyboardKey* keyboardKeyRow = hid_keyboard_keyset[y]; |         const HidKeyboardKey* keyboardKeyRow = hid_keyboard_keyset[y]; | ||||||
|         uint8_t x = 0; |         uint8_t x = 0; | ||||||
| @ -365,7 +384,10 @@ HidKeyboard* hid_keyboard_alloc(Hid* bt_hid) { | |||||||
|     with_view_model( |     with_view_model( | ||||||
|         hid_keyboard->view, |         hid_keyboard->view, | ||||||
|         HidKeyboardModel * model, |         HidKeyboardModel * model, | ||||||
|         { model->transport = bt_hid->transport; }, |         { | ||||||
|  |             model->transport = bt_hid->transport; | ||||||
|  |             model->y = 1; | ||||||
|  |         }, | ||||||
|         true); |         true); | ||||||
| 
 | 
 | ||||||
|     return hid_keyboard; |     return hid_keyboard; | ||||||
|  | |||||||
 nas
						nas