Created a basic UI system (UNTESTED)

This commit is contained in:
Maddox Werts 2024-08-26 05:20:00 -04:00
parent e36d75c4fa
commit b7873a34c6
3 changed files with 89 additions and 0 deletions

View file

@ -1,10 +1,26 @@
// Libraries // Libraries
#include <furi.h> #include <furi.h>
#include "ui.h"
// Entry Point // Entry Point
int32_t flippypass_app(void* p) { int32_t flippypass_app(void* p) {
// Not using P Parameter // Not using P Parameter
UNUSED(p); UNUSED(p);
// Creating the UI struct
uiManager* ui = ui_create();
// Timer
int alive_timer = 0;
// Drawwing the UI
while(ui->running) {
// Updating canvas
view_port_update(ui->canvas);
alive_timer += 1;
if (alive_timer > 10000000) {ui->running = false; break;}
}
// Exit App // Exit App
return 0; return 0;

49
project/ui.c Normal file
View file

@ -0,0 +1,49 @@
// 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 canvas
result->canvas = view_port_alloc();
view_port_draw_callback_set(result->canvas, ui_draw, result);
// Returning the UI Manager
return result;
}
void ui_draw(Canvas* canvas, void* ctx) {
// 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");
}

24
project/ui.h Normal file
View file

@ -0,0 +1,24 @@
// Define once
#ifndef H_UI
#define H_UI
// Libraries
#include <furi.h>
#include <gui/gui.h>
// Structures
typedef struct {
ViewPort* canvas;
int page;
bool running;
} uiManager;
// Constructors
uiManager* ui_create();
// Functions
void ui_draw(Canvas* canvas, void* ctx);
void ui_p_mainmenu(Canvas* canvas);
#endif