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:
@@ -101,11 +101,11 @@ static void button_menu_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
ButtonMenuItemArray_it_t it;
|
||||
|
||||
if(active_screen > 0) {
|
||||
canvas_draw_icon_name(canvas, 28, 1, I_IrdaArrowUp_4x8);
|
||||
canvas_draw_icon(canvas, 28, 1, &I_IrdaArrowUp_4x8);
|
||||
}
|
||||
|
||||
if(max_screen > active_screen) {
|
||||
canvas_draw_icon_name(canvas, 28, 123, I_IrdaArrowDown_4x8);
|
||||
canvas_draw_icon(canvas, 28, 123, &I_IrdaArrowDown_4x8);
|
||||
}
|
||||
|
||||
canvas_draw_str_aligned(canvas, 32, 10, AlignCenter, AlignCenter, model->header);
|
||||
|
@@ -22,8 +22,8 @@ LIST_DEF(LabelList, LabelElement, M_POD_OPLIST)
|
||||
typedef struct {
|
||||
uint16_t x;
|
||||
uint16_t y;
|
||||
IconName name;
|
||||
IconName name_selected;
|
||||
const Icon* name;
|
||||
const Icon* name_selected;
|
||||
} IconElement;
|
||||
|
||||
typedef struct ButtonItem {
|
||||
@@ -158,8 +158,8 @@ void button_panel_add_item(
|
||||
uint16_t matrix_place_y,
|
||||
uint16_t x,
|
||||
uint16_t y,
|
||||
IconName icon_name,
|
||||
IconName icon_name_selected,
|
||||
const Icon* icon_name,
|
||||
const Icon* icon_name_selected,
|
||||
ButtonItemCallback callback,
|
||||
void* callback_context) {
|
||||
furi_assert(button_panel);
|
||||
@@ -199,11 +199,11 @@ static void button_panel_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
for(size_t x = 0; x < model->reserve_x; ++x) {
|
||||
for(size_t y = 0; y < model->reserve_y; ++y) {
|
||||
ButtonItem* button_item = *button_panel_get_item(model, x, y);
|
||||
IconName icon_name = button_item->icon.name;
|
||||
const Icon* icon_name = button_item->icon.name;
|
||||
if((model->selected_item_x == x) && (model->selected_item_y == y)) {
|
||||
icon_name = button_item->icon.name_selected;
|
||||
}
|
||||
canvas_draw_icon_name(canvas, button_item->icon.x, button_item->icon.y, icon_name);
|
||||
canvas_draw_icon(canvas, button_item->icon.x, button_item->icon.y, icon_name);
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -70,8 +70,8 @@ void button_panel_add_item(
|
||||
uint16_t matrix_place_y,
|
||||
uint16_t x,
|
||||
uint16_t y,
|
||||
IconName icon_name,
|
||||
IconName icon_name_selected,
|
||||
const Icon* icon_name,
|
||||
const Icon* icon_name_selected,
|
||||
ButtonItemCallback callback,
|
||||
void* callback_context);
|
||||
|
||||
|
@@ -155,8 +155,8 @@ static void byte_input_draw_input(Canvas* canvas, ByteInputModel* model) {
|
||||
|
||||
elements_slightly_rounded_frame(canvas, 6, 14, 116, 15);
|
||||
|
||||
canvas_draw_icon_name(canvas, 2, 19, I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon_name(canvas, 123, 19, I_ButtonRightSmall_3x5);
|
||||
canvas_draw_icon(canvas, 2, 19, &I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon(canvas, 123, 19, &I_ButtonRightSmall_3x5);
|
||||
|
||||
for(uint8_t i = model->first_visible_byte;
|
||||
i < model->first_visible_byte + MIN(model->bytes_count, max_drawable_bytes);
|
||||
@@ -222,11 +222,11 @@ static void byte_input_draw_input(Canvas* canvas, ByteInputModel* model) {
|
||||
}
|
||||
|
||||
if(model->bytes_count - model->first_visible_byte > max_drawable_bytes) {
|
||||
canvas_draw_icon_name(canvas, 123, 21, I_ButtonRightSmall_3x5);
|
||||
canvas_draw_icon(canvas, 123, 21, &I_ButtonRightSmall_3x5);
|
||||
}
|
||||
|
||||
if(model->first_visible_byte > 0) {
|
||||
canvas_draw_icon_name(canvas, 1, 21, I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon(canvas, 1, 21, &I_ButtonLeftSmall_3x5);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -244,8 +244,8 @@ static void byte_input_draw_input_selected(Canvas* canvas, ByteInputModel* model
|
||||
canvas_invert_color(canvas);
|
||||
|
||||
elements_slightly_rounded_frame(canvas, 6, 14, 115, 15);
|
||||
canvas_draw_icon_name(canvas, 2, 19, I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon_name(canvas, 122, 19, I_ButtonRightSmall_3x5);
|
||||
canvas_draw_icon(canvas, 2, 19, &I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon(canvas, 122, 19, &I_ButtonRightSmall_3x5);
|
||||
|
||||
for(uint8_t i = model->first_visible_byte;
|
||||
i < model->first_visible_byte + MIN(model->bytes_count, max_drawable_bytes);
|
||||
@@ -281,11 +281,11 @@ static void byte_input_draw_input_selected(Canvas* canvas, ByteInputModel* model
|
||||
}
|
||||
|
||||
if(model->bytes_count - model->first_visible_byte > max_drawable_bytes) {
|
||||
canvas_draw_icon_name(canvas, 123, 21, I_ButtonRightSmall_3x5);
|
||||
canvas_draw_icon(canvas, 123, 21, &I_ButtonRightSmall_3x5);
|
||||
}
|
||||
|
||||
if(model->first_visible_byte > 0) {
|
||||
canvas_draw_icon_name(canvas, 1, 21, I_ButtonLeftSmall_3x5);
|
||||
canvas_draw_icon(canvas, 1, 21, &I_ButtonLeftSmall_3x5);
|
||||
}
|
||||
|
||||
canvas_invert_color(canvas);
|
||||
@@ -542,32 +542,32 @@ static void byte_input_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
if(keys[column].value == enter_symbol) {
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeySaveSelected_24x11);
|
||||
&I_KeySaveSelected_24x11);
|
||||
} else {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeySave_24x11);
|
||||
&I_KeySave_24x11);
|
||||
}
|
||||
} else if(keys[column].value == backspace_symbol) {
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeyBackspaceSelected_16x9);
|
||||
&I_KeyBackspaceSelected_16x9);
|
||||
} else {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeyBackspace_16x9);
|
||||
&I_KeyBackspace_16x9);
|
||||
}
|
||||
} else {
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
|
@@ -19,7 +19,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
int8_t x;
|
||||
int8_t y;
|
||||
IconName name;
|
||||
const Icon* icon;
|
||||
} IconElement;
|
||||
|
||||
typedef struct {
|
||||
@@ -39,8 +39,8 @@ static void dialog_ex_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
canvas_clear(canvas);
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
|
||||
if(model->icon.name != I_Empty_1x1) {
|
||||
canvas_draw_icon_name(canvas, model->icon.x, model->icon.y, model->icon.name);
|
||||
if(model->icon.icon != NULL) {
|
||||
canvas_draw_icon(canvas, model->icon.x, model->icon.y, model->icon.icon);
|
||||
}
|
||||
|
||||
// Draw header
|
||||
@@ -136,7 +136,7 @@ DialogEx* dialog_ex_alloc() {
|
||||
|
||||
model->icon.x = 0;
|
||||
model->icon.y = 0;
|
||||
model->icon.name = I_Empty_1x1;
|
||||
model->icon.icon = NULL;
|
||||
|
||||
model->left_text = NULL;
|
||||
model->center_text = NULL;
|
||||
@@ -206,13 +206,13 @@ void dialog_ex_set_text(
|
||||
});
|
||||
}
|
||||
|
||||
void dialog_ex_set_icon(DialogEx* dialog_ex, uint8_t x, uint8_t y, IconName name) {
|
||||
void dialog_ex_set_icon(DialogEx* dialog_ex, uint8_t x, uint8_t y, const Icon* icon) {
|
||||
furi_assert(dialog_ex);
|
||||
with_view_model(
|
||||
dialog_ex->view, (DialogExModel * model) {
|
||||
model->icon.x = x;
|
||||
model->icon.y = y;
|
||||
model->icon.name = name;
|
||||
model->icon.icon = icon;
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
@@ -84,7 +84,7 @@ void dialog_ex_set_text(
|
||||
* @param x, y - icon position
|
||||
* @param name - icon to be shown
|
||||
*/
|
||||
void dialog_ex_set_icon(DialogEx* dialog_ex, uint8_t x, uint8_t y, IconName name);
|
||||
void dialog_ex_set_icon(DialogEx* dialog_ex, uint8_t x, uint8_t y, const Icon* icon);
|
||||
|
||||
/* Set left button text
|
||||
* If text is null, left button will not be rendered and processed
|
||||
|
@@ -23,7 +23,7 @@ typedef struct {
|
||||
typedef struct {
|
||||
uint8_t x;
|
||||
uint8_t y;
|
||||
IconName name;
|
||||
const Icon* icon;
|
||||
} IconElement;
|
||||
|
||||
typedef struct {
|
||||
@@ -39,8 +39,8 @@ static void popup_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
canvas_clear(canvas);
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
|
||||
if(model->icon.name != I_Empty_1x1) {
|
||||
canvas_draw_icon_name(canvas, model->icon.x, model->icon.y, model->icon.name);
|
||||
if(model->icon.icon != NULL) {
|
||||
canvas_draw_icon(canvas, model->icon.x, model->icon.y, model->icon.icon);
|
||||
}
|
||||
|
||||
// Draw header
|
||||
@@ -138,7 +138,7 @@ Popup* popup_alloc() {
|
||||
|
||||
model->icon.x = 0;
|
||||
model->icon.y = 0;
|
||||
model->icon.name = I_Empty_1x1;
|
||||
model->icon.icon = NULL;
|
||||
return true;
|
||||
});
|
||||
return popup;
|
||||
@@ -204,13 +204,13 @@ void popup_set_text(
|
||||
});
|
||||
}
|
||||
|
||||
void popup_set_icon(Popup* popup, uint8_t x, uint8_t y, IconName name) {
|
||||
void popup_set_icon(Popup* popup, uint8_t x, uint8_t y, const Icon* icon) {
|
||||
furi_assert(popup);
|
||||
with_view_model(
|
||||
popup->view, (PopupModel * model) {
|
||||
model->icon.x = x;
|
||||
model->icon.y = y;
|
||||
model->icon.name = name;
|
||||
model->icon.icon = icon;
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
@@ -77,7 +77,7 @@ void popup_set_text(
|
||||
* @param x, y - icon position
|
||||
* @param name - icon to be shown
|
||||
*/
|
||||
void popup_set_icon(Popup* popup, uint8_t x, uint8_t y, IconName name);
|
||||
void popup_set_icon(Popup* popup, uint8_t x, uint8_t y, const Icon* icon);
|
||||
|
||||
/* Set popup timeout
|
||||
* @param popup - Popup instance
|
||||
|
@@ -173,32 +173,32 @@ static void text_input_view_draw_callback(Canvas* canvas, void* _model) {
|
||||
if(keys[column].text == ENTER_KEY) {
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeySaveSelected_24x11);
|
||||
&I_KeySaveSelected_24x11);
|
||||
} else {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeySave_24x11);
|
||||
&I_KeySave_24x11);
|
||||
}
|
||||
} else if(keys[column].text == BACKSPACE_KEY) {
|
||||
canvas_set_color(canvas, ColorBlack);
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeyBackspaceSelected_16x9);
|
||||
&I_KeyBackspaceSelected_16x9);
|
||||
} else {
|
||||
canvas_draw_icon_name(
|
||||
canvas_draw_icon(
|
||||
canvas,
|
||||
keyboard_origin_x + keys[column].x,
|
||||
keyboard_origin_y + keys[column].y,
|
||||
I_KeyBackspace_16x9);
|
||||
&I_KeyBackspace_16x9);
|
||||
}
|
||||
} else {
|
||||
if(model->selected_row == row && model->selected_column == column) {
|
||||
|
Reference in New Issue
Block a user