[FL-1110] Status bar height fix (#403)
* fix statusbar height and main screen views, added multiline text framed func * replace char* arguments with const char* * small prettify * move pointer increment to end of loop
This commit is contained in:
		
							parent
							
								
									33a461e97b
								
							
						
					
					
						commit
						5cd73ac97b
					
				| @ -12,48 +12,46 @@ void dolphin_view_first_start_draw(Canvas* canvas, void* model) { | |||||||
|     canvas_clear(canvas); |     canvas_clear(canvas); | ||||||
|     canvas_set_color(canvas, ColorBlack); |     canvas_set_color(canvas, ColorBlack); | ||||||
|     canvas_set_font(canvas, FontSecondary); |     canvas_set_font(canvas, FontSecondary); | ||||||
|     uint8_t font_height = canvas_current_font_height(canvas); |  | ||||||
|     uint8_t width = canvas_width(canvas); |     uint8_t width = canvas_width(canvas); | ||||||
|     uint8_t height = canvas_height(canvas); |     uint8_t height = canvas_height(canvas); | ||||||
|     if(m->page == 0) { |     if(m->page == 0) { | ||||||
|         canvas_draw_icon_name(canvas, 0, height - 53, I_DolphinFirstStart0_70x53); |         canvas_draw_icon_name(canvas, 0, height - 48, I_DolphinFirstStart0_70x53); | ||||||
|         elements_multiline_text(canvas, 75, 20, "Hey m8,\npress > to\ncontinue"); |         elements_multiline_text_framed(canvas, 75, 20, "Hey m8,\npress > to\ncontinue"); | ||||||
|         elements_frame(canvas, 72, 20 - font_height, width - 70 - 4, font_height * 3 + 4); |  | ||||||
|     } else if(m->page == 1) { |     } else if(m->page == 1) { | ||||||
|         canvas_draw_icon_name(canvas, 0, height - 53, I_DolphinFirstStart1_59x53); |         canvas_draw_icon_name(canvas, 0, height - 48, I_DolphinFirstStart1_59x53); | ||||||
|         elements_multiline_text(canvas, 64, 20, "First Of All,\n...      >"); |         elements_multiline_text_framed(canvas, 64, 20, "First Of All,\n...      >"); | ||||||
|         elements_frame(canvas, 61, 20 - font_height, width - 59 - 4, font_height * 2 + 4); |  | ||||||
|     } else if(m->page == 2) { |     } else if(m->page == 2) { | ||||||
|         canvas_draw_icon_name(canvas, 0, height - 51, I_DolphinFirstStart2_59x51); |         canvas_draw_icon_name(canvas, 0, height - 48, I_DolphinFirstStart2_59x51); | ||||||
|         elements_multiline_text(canvas, 64, 20, "Thank you\nfor your\nsupport! >"); |         elements_multiline_text_framed(canvas, 64, 20, "Thank you\nfor your\nsupport! >"); | ||||||
|         elements_frame(canvas, 61, 20 - font_height, width - 59 - 4, font_height * 3 + 4); |  | ||||||
|     } else if(m->page == 3) { |     } else if(m->page == 3) { | ||||||
|         canvas_draw_icon_name(canvas, width - 57, height - 48, I_DolphinFirstStart3_57x48); |         canvas_draw_icon_name(canvas, width - 57, height - 48, I_DolphinFirstStart3_57x48); | ||||||
|         elements_multiline_text(canvas, 5, 20, "Kickstarter\ncampaign\nwas INSANE! >"); |         elements_multiline_text_framed(canvas, 0, 20, "Kickstarter\ncampaign\nwas INSANE! >"); | ||||||
|         elements_frame(canvas, 2, 20 - font_height, width - 57 - 4, font_height * 3 + 4); |  | ||||||
|     } else if(m->page == 4) { |     } else if(m->page == 4) { | ||||||
|         canvas_draw_icon_name(canvas, width - 67, height - 53, I_DolphinFirstStart4_67x53); |         canvas_draw_icon_name(canvas, width - 67, height - 50, I_DolphinFirstStart4_67x53); | ||||||
|         elements_multiline_text(canvas, 5, 10, "Now\nallow me\nto introduce\nmyself >"); |         elements_multiline_text_framed(canvas, 0, 17, "Now\nallow me\nto introduce\nmyself >"); | ||||||
|         elements_frame(canvas, 2, 10 - font_height, width - 67 - 4, font_height * 4 + 4); |  | ||||||
|     } else if(m->page == 5) { |     } else if(m->page == 5) { | ||||||
|         canvas_draw_icon_name(canvas, 0, height - 53, I_DolphinFirstStart5_45x53); |         char buf[64]; | ||||||
|         elements_multiline_text( |         snprintf( | ||||||
|             canvas, 50, 20, "I am Flipper,\ncyberdolphin\nliving in your\npocket >"); |             buf, | ||||||
|         elements_frame(canvas, 47, 20 - font_height, width - 45 - 4, font_height * 4 + 4); |             64, | ||||||
|  |             "%s %s%s", | ||||||
|  |             "I am", | ||||||
|  |             api_hal_version_get_name_ptr(), | ||||||
|  |             ",\ncyberdolphin\nliving in your\npocket >"); | ||||||
|  |         canvas_draw_icon_name(canvas, 0, height - 48, I_DolphinFirstStart5_45x53); | ||||||
|  |         elements_multiline_text_framed(canvas, 60, 17, buf); | ||||||
|     } else if(m->page == 6) { |     } else if(m->page == 6) { | ||||||
|         canvas_draw_icon_name(canvas, 0, height - 54, I_DolphinFirstStart6_58x54); |         canvas_draw_icon_name(canvas, 0, height - 48, I_DolphinFirstStart6_58x54); | ||||||
|         elements_multiline_text( |         elements_multiline_text_framed( | ||||||
|             canvas, 63, 20, "I can grow\n smart'n'cool\nif you use me\noften >"); |             canvas, 63, 17, "I can grow\nsmart'n'cool\nif you use me\noften >"); | ||||||
|         elements_frame(canvas, 60, 20 - font_height, width - 58 - 4, font_height * 4 + 4); |  | ||||||
|     } else if(m->page == 7) { |     } else if(m->page == 7) { | ||||||
|         canvas_draw_icon_name(canvas, width - 61, height - 51, I_DolphinFirstStart7_61x51); |         canvas_draw_icon_name(canvas, width - 61, height - 48, I_DolphinFirstStart7_61x51); | ||||||
|         elements_multiline_text(canvas, 5, 10, "As long as\nyou read, write\nand emulate >"); |         elements_multiline_text_framed( | ||||||
|         elements_frame(canvas, 2, 10 - font_height, width - 54 - 4, font_height * 3 + 4); |             canvas, 0, 17, "As long as\nyou read, write\nand emulate >"); | ||||||
|     } else if(m->page == 8) { |     } else if(m->page == 8) { | ||||||
|         canvas_draw_icon_name(canvas, width - 56, height - 51, I_DolphinFirstStart8_56x51); |         canvas_draw_icon_name(canvas, width - 56, height - 48, I_DolphinFirstStart8_56x51); | ||||||
|         elements_multiline_text( |         elements_multiline_text_framed( | ||||||
|             canvas, 5, 10, "You can check\nmy level and\nmood in the\nPassport menu"); |             canvas, 0, 17, "You can check\nmy level and\nmood in the\nPassport menu"); | ||||||
|         elements_frame(canvas, 2, 10 - font_height, width - 56 - 4, font_height * 4 + 4); |  | ||||||
|     } |     } | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| @ -143,13 +141,13 @@ void dolphin_view_hw_mismatch_draw(Canvas* canvas, void* model) { | |||||||
|     canvas_clear(canvas); |     canvas_clear(canvas); | ||||||
|     canvas_set_color(canvas, ColorBlack); |     canvas_set_color(canvas, ColorBlack); | ||||||
|     canvas_set_font(canvas, FontPrimary); |     canvas_set_font(canvas, FontPrimary); | ||||||
|     canvas_draw_str(canvas, 2, 10, "!!!! HW Mismatch !!!!"); |     canvas_draw_str(canvas, 2, 15, "!!!! HW Mismatch !!!!"); | ||||||
| 
 | 
 | ||||||
|     char buffer[64]; |     char buffer[64]; | ||||||
|     canvas_set_font(canvas, FontSecondary); |     canvas_set_font(canvas, FontSecondary); | ||||||
|     snprintf(buffer, 64, "HW target: F%d", api_hal_version_get_hw_target()); |     snprintf(buffer, 64, "HW target: F%d", api_hal_version_get_hw_target()); | ||||||
|     canvas_draw_str(canvas, 5, 22, buffer); |     canvas_draw_str(canvas, 5, 27, buffer); | ||||||
|     canvas_draw_str(canvas, 5, 32, "FW target: " TARGET); |     canvas_draw_str(canvas, 5, 37, "FW target: " TARGET); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| uint32_t dolphin_view_idle_back(void* context) { | uint32_t dolphin_view_idle_back(void* context) { | ||||||
|  | |||||||
| @ -171,14 +171,14 @@ void elements_multiline_text_aligned( | |||||||
|     string_clear(str); |     string_clear(str); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| void elements_multiline_text(Canvas* canvas, uint8_t x, uint8_t y, char* text) { | void elements_multiline_text(Canvas* canvas, uint8_t x, uint8_t y, const char* text) { | ||||||
|     furi_assert(canvas); |     furi_assert(canvas); | ||||||
|     furi_assert(text); |     furi_assert(text); | ||||||
| 
 | 
 | ||||||
|     uint8_t font_height = canvas_current_font_height(canvas); |     uint8_t font_height = canvas_current_font_height(canvas); | ||||||
|     string_t str; |     string_t str; | ||||||
|     string_init(str); |     string_init(str); | ||||||
|     char* start = text; |     const char* start = text; | ||||||
|     char* end; |     char* end; | ||||||
|     do { |     do { | ||||||
|         end = strchr(start, '\n'); |         end = strchr(start, '\n'); | ||||||
| @ -194,6 +194,31 @@ void elements_multiline_text(Canvas* canvas, uint8_t x, uint8_t y, char* text) { | |||||||
|     string_clear(str); |     string_clear(str); | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | void elements_multiline_text_framed(Canvas* canvas, uint8_t x, uint8_t y, const char* text) { | ||||||
|  |     furi_assert(canvas); | ||||||
|  |     furi_assert(text); | ||||||
|  | 
 | ||||||
|  |     uint8_t font_y = canvas_current_font_height(canvas); | ||||||
|  |     uint16_t str_width = canvas_string_width(canvas, text); | ||||||
|  |     // count \n's
 | ||||||
|  |     uint8_t lines = 1; | ||||||
|  |     const char* t = text; | ||||||
|  |     while(*t != '\0') { | ||||||
|  |         if(*t == '\n') { | ||||||
|  |             lines++; | ||||||
|  |             uint16_t temp_width = canvas_string_width(canvas, t + 1); | ||||||
|  |             str_width = temp_width > str_width ? temp_width : str_width; | ||||||
|  |         } | ||||||
|  |         t++; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     canvas_set_color(canvas, ColorWhite); | ||||||
|  |     canvas_draw_box(canvas, x, y - font_y, str_width + 8, font_y * lines + 6); | ||||||
|  |     canvas_set_color(canvas, ColorBlack); | ||||||
|  |     elements_multiline_text(canvas, x + 4, y + 1, text); | ||||||
|  |     elements_frame(canvas, x, y - font_y, str_width + 8, font_y * lines + 6); | ||||||
|  | } | ||||||
|  | 
 | ||||||
| void elements_slightly_rounded_frame( | void elements_slightly_rounded_frame( | ||||||
|     Canvas* canvas, |     Canvas* canvas, | ||||||
|     uint8_t x, |     uint8_t x, | ||||||
|  | |||||||
| @ -59,7 +59,14 @@ void elements_multiline_text_aligned( | |||||||
|  * @param x, y - top left corner coordinates |  * @param x, y - top left corner coordinates | ||||||
|  * @param text - string (possible multiline) |  * @param text - string (possible multiline) | ||||||
|  */ |  */ | ||||||
| void elements_multiline_text(Canvas* canvas, uint8_t x, uint8_t y, char* text); | void elements_multiline_text(Canvas* canvas, uint8_t x, uint8_t y, const char* text); | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  * Draw framed multiline text | ||||||
|  |  * @param x, y - top left corner coordinates | ||||||
|  |  * @param text - string (possible multiline) | ||||||
|  |  */ | ||||||
|  | void elements_multiline_text_framed(Canvas* canvas, uint8_t x, uint8_t y, const char* text); | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * Draw slightly rounded frame |  * Draw slightly rounded frame | ||||||
|  | |||||||
| @ -18,7 +18,7 @@ | |||||||
| #define GUI_STATUS_BAR_X 0 | #define GUI_STATUS_BAR_X 0 | ||||||
| #define GUI_STATUS_BAR_Y 0 | #define GUI_STATUS_BAR_Y 0 | ||||||
| #define GUI_STATUS_BAR_WIDTH GUI_DISPLAY_WIDTH | #define GUI_STATUS_BAR_WIDTH GUI_DISPLAY_WIDTH | ||||||
| #define GUI_STATUS_BAR_HEIGHT 8 | #define GUI_STATUS_BAR_HEIGHT 13 | ||||||
| 
 | 
 | ||||||
| #define GUI_MAIN_X 0 | #define GUI_MAIN_X 0 | ||||||
| #define GUI_MAIN_Y 9 | #define GUI_MAIN_Y 9 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 its your bedtime
						its your bedtime