mirror of
https://github.com/Ralim/IronOS.git
synced 2025-02-26 07:53:55 +00:00
Fixing import loop
This commit is contained in:
@@ -1,4 +1,8 @@
|
||||
#include "UI.h"
|
||||
void ui_render_screen(Screen_t *screen, ScreenContext_t *context) {
|
||||
// Basically switch out the handlers
|
||||
#include "OLED.hpp"
|
||||
void ui_render_screen(screenLayout_t *screen, ScreenContext_t *context) {
|
||||
// Walk the struct associated to the screen, calling render for each element of the screen
|
||||
// Then start OLED refresh
|
||||
|
||||
OLED::refresh();
|
||||
}
|
||||
@@ -1,37 +1,7 @@
|
||||
#pragma once
|
||||
#include "UI_Layouts.h"
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum {
|
||||
SimplifiedHome, // Basic home
|
||||
SimplifiedHomeWarning, // Home with temp warning
|
||||
DetailedHome, // Detailed home view
|
||||
DetailedHomeWarning, // Home with temp warning
|
||||
DebugMenu, // Debugging metrics
|
||||
settingsCategory, // Settings category with icon
|
||||
SettingsEntryBool, // Tickbox setting
|
||||
SettingsEntry3Number, // Settings adjust with 3 number digits
|
||||
SettingsEntry2Number, // Settings adjust with 2 number digits
|
||||
SettingsEntry1Number, // Settings adjust with 2 number digits
|
||||
SettingsEntry1Text, // Setting with single text char for state
|
||||
ScrollingText, // Scrolling large text (warnings, help text)
|
||||
SolderingMode, // Basic soldering mode
|
||||
DetailedSolderingMode, // Detailed soldering mode
|
||||
NumberAdjust, // Number adjust of number with <> either side
|
||||
} screenLayout_t;
|
||||
|
||||
typedef void (*render_prep_fn)();
|
||||
typedef void (*tick_fn)();
|
||||
typedef void (*button_handler_fn)();
|
||||
|
||||
typedef struct {
|
||||
// on_enter
|
||||
// on_exit
|
||||
tick_fn tick;
|
||||
render_prep_fn render_prepare;
|
||||
screenLayout_t layout; // Render layout used
|
||||
button_handler_fn handle_button;
|
||||
} Screen_t;
|
||||
|
||||
typedef union {
|
||||
int32_t i32;
|
||||
void *ptr;
|
||||
@@ -42,4 +12,5 @@ typedef struct {
|
||||
} ScreenContext_t;
|
||||
|
||||
//
|
||||
void ui_render_screen(Screen_t *screen, ScreenContext_t *context);
|
||||
void ui_render_screen(screenLayout_t *screen, ScreenContext_t *context);
|
||||
void ui_render_element(const ElementTypes_t element, const ElementSettings_t *settings, screen_arg_t *args);
|
||||
@@ -1,6 +1,7 @@
|
||||
#include "UI_Elements.h"
|
||||
#include "FontUtils.h"
|
||||
#include "OLED.hpp"
|
||||
#include "UI.h"
|
||||
void render_Text(const ElementSettings_t *settings, screen_arg_t *args);
|
||||
void render_Number(const ElementSettings_t *settings, screen_arg_t *args);
|
||||
void render_Image(const ElementSettings_t *settings, screen_arg_t *args);
|
||||
@@ -54,7 +55,7 @@ void render_Number(const ElementSettings_t *settings, screen_arg_t *args) {
|
||||
}
|
||||
void render_Image(const ElementSettings_t *settings, screen_arg_t *args) {
|
||||
// arg is a pointer to the raw image data to display
|
||||
OLED::drawArea(settings->position.x, settings->position.y, settings->size.w, settings->size.h, (uint8_t *)args->ptr)
|
||||
OLED::drawArea(settings->position.x, settings->position.y, settings->size.w, settings->size.h, (uint8_t *)args->ptr);
|
||||
}
|
||||
void render_PowerSource(const ElementSettings_t *settings, screen_arg_t *args) {
|
||||
//
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
#include "UI.h"
|
||||
#include <stdint.h>
|
||||
|
||||
typedef enum {
|
||||
Text, // Basic text splat, using re-encoded strings
|
||||
Number, // Draws numbers using best size for the height (always one line)
|
||||
@@ -23,5 +24,3 @@ typedef struct {
|
||||
} size;
|
||||
|
||||
} ElementSettings_t;
|
||||
|
||||
void ui_render_element(const ElementTypes_t element,const ElementSettings_t * settings, screen_arg_t *args);
|
||||
26
source/UI/UI_Layouts.h
Normal file
26
source/UI/UI_Layouts.h
Normal file
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
#include "UI_Elements.h"
|
||||
typedef enum {
|
||||
SimplifiedHome, // Basic home
|
||||
SimplifiedHomeWarning, // Home with temp warning
|
||||
DetailedHome, // Detailed home view
|
||||
DetailedHomeWarning, // Home with temp warning
|
||||
DebugView, // Debugging metrics
|
||||
settingsCategory, // Settings category with icon
|
||||
SettingsEntryBool, // Tickbox setting
|
||||
SettingsEntry3Number, // Settings adjust with 3 number digits
|
||||
SettingsEntry2Number, // Settings adjust with 2 number digits
|
||||
SettingsEntry1Number, // Settings adjust with 2 number digits
|
||||
SettingsEntry1Text, // Setting with single text char for state
|
||||
ScrollingText, // Scrolling large text (warnings, help text)
|
||||
SolderingMode, // Basic soldering mode
|
||||
DetailedSolderingMode, // Detailed soldering mode
|
||||
NumberAdjust, // Number adjust of number with <> either side
|
||||
} screenLayout_t;
|
||||
|
||||
typedef struct {
|
||||
struct {
|
||||
ElementTypes_t elementType;
|
||||
ElementSettings_t elementSettings;
|
||||
} elements[5];
|
||||
} ScreenLayoutRecord_t;
|
||||
15
source/UI/UI_Screens.h
Normal file
15
source/UI/UI_Screens.h
Normal file
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
#include "UI_Layouts.h"
|
||||
|
||||
typedef void (*render_prep_fn)();
|
||||
typedef void (*tick_fn)();
|
||||
typedef void (*button_handler_fn)();
|
||||
|
||||
typedef struct {
|
||||
// on_enter
|
||||
// on_exit
|
||||
tick_fn tick;
|
||||
render_prep_fn render_prepare;
|
||||
screenLayout_t layout; // Render layout used
|
||||
button_handler_fn handle_button;
|
||||
} Screen_t;
|
||||
@@ -1,5 +1,5 @@
|
||||
layouts:
|
||||
simplifiedHome:
|
||||
SimplifiedHome:
|
||||
mirrorOnRotate: true
|
||||
elements:
|
||||
- type: image
|
||||
|
||||
Reference in New Issue
Block a user