// 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); }