94 lines
No EOL
2.3 KiB
C
94 lines
No EOL
2.3 KiB
C
// Header
|
|
#include "ui.h"
|
|
|
|
// Functions
|
|
uiManager* ui_create() {
|
|
// Creating the UI Manager
|
|
uiManager* result = malloc(sizeof(uiManager));
|
|
|
|
// Defining basic variables
|
|
result->running = true;
|
|
result->page = 0;
|
|
|
|
// Creating a GUI
|
|
result->gui = furi_record_open(RECORD_GUI);
|
|
|
|
// Creating a canvas
|
|
result->canvas = view_port_alloc();
|
|
view_port_draw_callback_set(result->canvas, ui_draw, result);
|
|
view_port_input_callback_set(result->canvas, ui_input, result);
|
|
gui_add_view_port(result->gui, result->canvas, GuiLayerFullscreen);
|
|
|
|
// Returning the UI Manager
|
|
return result;
|
|
}
|
|
|
|
void ui_input(InputEvent* event, void* ctx) {
|
|
// Turning the context back into the UI Manager
|
|
uiManager* manager = (uiManager*)ctx;
|
|
|
|
// Getting input
|
|
switch(event->key) {
|
|
case InputKeyUp:
|
|
manager->input = Up;
|
|
break;
|
|
case InputKeyDown:
|
|
manager->input = Down;
|
|
break;
|
|
case InputKeyLeft:
|
|
manager->input = Left;
|
|
break;
|
|
case InputKeyRight:
|
|
manager->input = Right;
|
|
break;
|
|
case InputKeyOk:
|
|
manager->input = Ok;
|
|
break;
|
|
case InputKeyBack:
|
|
manager->input = Back;
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
void ui_draw(Canvas* canvas, void* ctx) {
|
|
// Showing the Main Menu
|
|
ui_p_mainmenu(canvas);
|
|
|
|
// Context into Result
|
|
uiManager* manager = (uiManager*)ctx;
|
|
|
|
// Switching page
|
|
switch(manager->page){
|
|
case 0:
|
|
ui_p_mainmenu(canvas);
|
|
break;
|
|
}
|
|
}
|
|
void ui_p_mainmenu(Canvas* canvas) {
|
|
canvas_set_font(canvas, FontPrimary);
|
|
canvas_draw_str(canvas, 2, 11, "FlippyPass");
|
|
|
|
//canvas_draw_icon(canvas, 15, 16, &I_ButtonRight_4x7);
|
|
|
|
canvas_set_font(canvas, FontSecondary);
|
|
canvas_draw_str(canvas, 22, 23, "View Passwords");
|
|
|
|
canvas_set_font(canvas, FontSecondary);
|
|
canvas_draw_str(canvas, 22, 41, "Create Password");
|
|
|
|
canvas_set_font(canvas, FontSecondary);
|
|
canvas_draw_str(canvas, 22, 51, "About");
|
|
|
|
canvas_set_font(canvas, FontSecondary);
|
|
canvas_draw_str(canvas, 22, 32, "View Archive");
|
|
}
|
|
|
|
void ui_delete(uiManager* manager) {
|
|
view_port_enabled_set(manager->canvas, false);
|
|
gui_remove_view_port(manager->gui, manager->canvas);
|
|
view_port_free(manager->canvas);
|
|
furi_record_close(RECORD_GUI);
|
|
free(manager);
|
|
} |