GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon Api (#566)

* GUI: Icons and IconsAnimation refactoring. Switch assets to new Icon API.
* Gui: icon and animation draw now do not accept null pointer
* Format Sources
* Fix no debug build
* Furi: stricter checks in memmgr
This commit is contained in:
あく
2021-07-07 11:57:49 +03:00
committed by GitHub
parent 607e873404
commit a7283280ef
82 changed files with 1093 additions and 1053 deletions

View File

@@ -9,6 +9,7 @@
#include <menu/menu_item.h>
#include <gui/gui.h>
#include <gui/icon_animation.h>
#include <gui/view_port.h>
#include <gui/view.h>
#include <gui/view_dispatcher.h>
@@ -32,7 +33,6 @@ struct Power {
View* off_view;
View* disconnect_view;
Icon* battery_icon;
ViewPort* battery_view_port;
Dialog* dialog;
@@ -47,7 +47,7 @@ struct Power {
void power_draw_battery_callback(Canvas* canvas, void* context) {
furi_assert(context);
Power* power = context;
canvas_draw_icon(canvas, 0, 0, power->battery_icon);
canvas_draw_icon(canvas, 0, 0, &I_Battery_26x8);
with_view_model(
power->info_view, (PowerInfoModel * model) {
canvas_draw_box(canvas, 2, 2, (float)model->charge / 100 * 20, 4);
@@ -108,7 +108,7 @@ Power* power_alloc() {
power->cli = furi_record_open("cli");
power_cli_init(power->cli, power);
power->menu = menu_item_alloc_menu("Power", assets_icons_get(A_Power_14));
power->menu = menu_item_alloc_menu("Power", icon_animation_alloc(&A_Power_14));
menu_item_subitem_add(
power->menu, menu_item_alloc_function("Off", NULL, power_menu_off_callback, power));
menu_item_subitem_add(
@@ -143,10 +143,9 @@ Power* power_alloc() {
view_dispatcher_add_view(
power->view_dispatcher, PowerViewDialog, dialog_get_view(power->dialog));
power->battery_icon = assets_icons_get(I_Battery_26x8);
power->battery_view_port = view_port_alloc();
view_port_set_width(power->battery_view_port, icon_get_width(power->battery_icon));
view_port_set_width(power->battery_view_port, icon_get_width(&I_Battery_26x8));
view_port_draw_callback_set(power->battery_view_port, power_draw_battery_callback, power);
return power;
}

View File

@@ -1,9 +1,9 @@
#include "power_views.h"
#include <gui/elements.h>
static void draw_stat(Canvas* canvas, int x, int y, IconName icon, char* val) {
static void draw_stat(Canvas* canvas, int x, int y, const Icon* icon, char* val) {
canvas_draw_frame(canvas, x - 7, y + 7, 30, 13);
canvas_draw_icon_name(canvas, x, y, icon);
canvas_draw_icon(canvas, x, y, icon);
canvas_set_color(canvas, ColorWhite);
canvas_draw_box(canvas, x - 4, y + 16, 24, 6);
canvas_set_color(canvas, ColorBlack);
@@ -18,15 +18,15 @@ static void draw_battery(Canvas* canvas, PowerInfoModel* data, int x, int y) {
int32_t drain_current = -data->current_gauge * 1000;
uint32_t charge_current = data->current_gauge * 1000;
// battery
canvas_draw_icon_name(canvas, x, y, I_BatteryBody_52x28);
canvas_draw_icon(canvas, x, y, &I_BatteryBody_52x28);
if(charge_current > 0) {
canvas_draw_icon_name(canvas, x + 16, y + 7, I_FaceCharging_29x14);
canvas_draw_icon(canvas, x + 16, y + 7, &I_FaceCharging_29x14);
} else if(drain_current > 100) {
canvas_draw_icon_name(canvas, x + 16, y + 7, I_FaceConfused_29x14);
canvas_draw_icon(canvas, x + 16, y + 7, &I_FaceConfused_29x14);
} else if(data->charge < 10) {
canvas_draw_icon_name(canvas, x + 16, y + 7, I_FaceNopower_29x14);
canvas_draw_icon(canvas, x + 16, y + 7, &I_FaceNopower_29x14);
} else {
canvas_draw_icon_name(canvas, x + 16, y + 7, I_FaceNormal_29x14);
canvas_draw_icon(canvas, x + 16, y + 7, &I_FaceNormal_29x14);
}
//bubble
@@ -99,10 +99,10 @@ void power_info_draw_callback(Canvas* canvas, void* context) {
(uint32_t)(data->voltage_gauge * 10) % 10);
snprintf(health, sizeof(health), "%d%s", data->health, "%");
draw_stat(canvas, 8, 42, I_Battery_16x16, batt_level);
draw_stat(canvas, 40, 42, I_Temperature_16x16, temperature);
draw_stat(canvas, 72, 42, I_Voltage_16x16, voltage);
draw_stat(canvas, 104, 42, I_Health_16x16, health);
draw_stat(canvas, 8, 42, &I_Battery_16x16, batt_level);
draw_stat(canvas, 40, 42, &I_Temperature_16x16, temperature);
draw_stat(canvas, 72, 42, &I_Voltage_16x16, voltage);
draw_stat(canvas, 104, 42, &I_Health_16x16, health);
}
void power_off_draw_callback(Canvas* canvas, void* context) {