This repository has been archived on 2026-04-25. You can view files and clone it, but cannot push or open issues or pull requests.
FlippyPass/project/ui.c

77 lines
2 KiB
C
Raw Normal View History

2024-08-26 04:20:00 -05:00
// 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;
2024-08-26 23:37:32 -05:00
// Creating a GUI
result->gui = furi_record_open(RECORD_GUI);
2024-08-26 04:20:00 -05:00
// Creating a canvas
result->canvas = view_port_alloc();
view_port_draw_callback_set(result->canvas, ui_draw, result);
2024-08-26 23:37:32 -05:00
gui_add_view_port(result->gui, result->canvas, GuiLayerFullscreen);
// Creating mutex
result->mutex = furi_mutex_alloc(FuriMutexTypeNormal);
if (!result->mutex) {
FURI_LOG_E(TAG, "Failed to create Mutex\r\n");
free(result);
return NULL;
}
// Creating event queue
result->event_queue = furi_message_queue_alloc(8, sizeof(InputEvent));
2024-08-26 04:20:00 -05:00
// Returning the UI Manager
return result;
}
void ui_draw(Canvas* canvas, void* ctx) {
2024-08-26 23:37:32 -05:00
// Showing the Main Menu
ui_p_mainmenu(canvas);
2024-08-26 04:20:00 -05:00
// 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");
2024-08-26 23:37:32 -05:00
}
void ui_delete(uiManager* manager) {
furi_message_queue_free(manager->event_queue);
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);
furi_mutex_free(manager->mutex);
free(manager);
2024-08-26 04:20:00 -05:00
}