Created Navigation Systems
This commit is contained in:
parent
9836198e38
commit
1a536861c3
3 changed files with 109 additions and 35 deletions
|
@ -1,5 +1,6 @@
|
|||
// Libraries
|
||||
#include <furi.h>
|
||||
|
||||
#include "ui.h"
|
||||
|
||||
// Entry Point
|
||||
|
@ -13,8 +14,14 @@ int32_t flippypass_app(void* p) {
|
|||
// Drawwing the UI
|
||||
while(ui->running) {
|
||||
// Do we want to quit?
|
||||
if (ui->input == Back) {
|
||||
if (ui->press_used
|
||||
&& ui->input == Back) {
|
||||
if(ui->page == 0) {
|
||||
ui->running = false;
|
||||
} else {
|
||||
ui->press_used = false;
|
||||
ui->page = 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Updating canvas
|
||||
|
|
82
project/ui.c
82
project/ui.c
|
@ -8,8 +8,12 @@ uiManager* ui_create() {
|
|||
|
||||
// Defining basic variables
|
||||
result->running = true;
|
||||
result->selection = 0;
|
||||
result->page = 0;
|
||||
|
||||
result->press_avail = true;
|
||||
result->press_used = false;
|
||||
|
||||
// Creating a GUI
|
||||
result->gui = furi_record_open(RECORD_GUI);
|
||||
|
||||
|
@ -28,6 +32,11 @@ void ui_input(InputEvent* event, void* ctx) {
|
|||
uiManager* manager = (uiManager*)ctx;
|
||||
|
||||
// Getting input
|
||||
if (event->type == InputTypePress
|
||||
&& manager->press_avail) {
|
||||
manager->press_avail = false;
|
||||
manager->press_used = true;
|
||||
|
||||
switch(event->key) {
|
||||
case InputKeyUp:
|
||||
manager->input = Up;
|
||||
|
@ -50,39 +59,90 @@ void ui_input(InputEvent* event, void* ctx) {
|
|||
default:
|
||||
break;
|
||||
}
|
||||
} else if (event->type == InputTypeRelease) {
|
||||
manager->press_avail = true;
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
case 0: // Main Menu
|
||||
ui_p_mainmenu(canvas, manager);
|
||||
break;
|
||||
case 1: // About Me
|
||||
ui_p_about(canvas);
|
||||
break;
|
||||
}
|
||||
}
|
||||
void ui_p_mainmenu(Canvas* canvas) {
|
||||
void ui_p_mainmenu(Canvas* canvas, uiManager* manager) {
|
||||
// Menu Options
|
||||
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, 25, "View Passwords");
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 22, 23, "View Passwords");
|
||||
canvas_draw_str(canvas, 22, 35, "View Archive");
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 22, 41, "Create Password");
|
||||
canvas_draw_str(canvas, 22, 45, "Create Password");
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 22, 51, "About");
|
||||
canvas_draw_str(canvas, 22, 55, "About");
|
||||
|
||||
// Cursor
|
||||
if(manager->press_used) {
|
||||
// We used a press
|
||||
manager->press_used = false;
|
||||
|
||||
// Reacting
|
||||
switch (manager->input){
|
||||
case Up:
|
||||
manager->selection--;
|
||||
break;
|
||||
case Down:
|
||||
manager->selection++;
|
||||
break;
|
||||
case Ok:
|
||||
|
||||
switch(manager->selection) {
|
||||
case 3: // About Me
|
||||
manager->page = 1;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
// Min & Max
|
||||
if (manager->selection > 3) {
|
||||
manager->selection = 0;
|
||||
} else if (manager->selection < 0) {
|
||||
manager->selection = 3;
|
||||
}
|
||||
}
|
||||
|
||||
// Placing the spot at the cursor
|
||||
canvas_draw_box(canvas, 15, 20 + (manager->selection * 10), 2, 2);
|
||||
}
|
||||
void ui_p_about(Canvas* canvas) {
|
||||
canvas_set_font(canvas, FontPrimary);
|
||||
canvas_draw_str(canvas, 2, 11, "FlippyPass");
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 22, 32, "View Archive");
|
||||
canvas_draw_str(canvas, 3, 23, "A really easy to use Password");
|
||||
|
||||
canvas_set_font(canvas, FontSecondary);
|
||||
canvas_draw_str(canvas, 3, 32, "Manager for the Flipper-Zero.");
|
||||
}
|
||||
|
||||
void ui_delete(uiManager* manager) {
|
||||
|
|
|
@ -5,6 +5,8 @@
|
|||
// Libraries
|
||||
#include <furi.h>
|
||||
#include <gui/gui.h>
|
||||
#include <gui/icon.h>
|
||||
|
||||
#include "app.h"
|
||||
|
||||
// Structures
|
||||
|
@ -21,8 +23,12 @@ typedef struct {
|
|||
Back
|
||||
} input;
|
||||
|
||||
int selection;
|
||||
int page;
|
||||
|
||||
bool running;
|
||||
bool press_used;
|
||||
bool press_avail;
|
||||
} uiManager;
|
||||
|
||||
// Constructors
|
||||
|
@ -32,7 +38,8 @@ uiManager* ui_create();
|
|||
void ui_input(InputEvent* event, void* ctx);
|
||||
|
||||
void ui_draw(Canvas* canvas, void* ctx);
|
||||
void ui_p_mainmenu(Canvas* canvas);
|
||||
void ui_p_mainmenu(Canvas* canvas, uiManager* manager);
|
||||
void ui_p_about(Canvas* canvas);
|
||||
|
||||
void ui_delete(uiManager* manager);
|
||||
|
||||
|
|
Loading…
Reference in a new issue