# Changes 0.2.8

- Fix Flickering problem in StaticText api
- Fix Lagacy and Container HandleScrolling InBox checks
- Add IO Flags define for future
- Implement Single Object Dragging API by IO Context
- Add TreeNodes
- Use ioMenuPadding and ItemSpace
- Add StyleEditorMenu
- Rework ContainerApi to take functions from IO and add an Update function template for Updating internal values if required
- Use new DragApi for MenuCollabse, MenuDragging, MenuResize, SliderDragging and TreeNodes Open/Close
- Add Helper Defines for Metrics Menu [INTERNAL]
- Add TimeTrace as Tree to Metrics as well as other new Data
- Add GetRawObject to StaticText for custom rendering like ui7
- Add DrawlistRegestry to correctly render Menus in their own layer ranges
This commit is contained in:
2025-03-08 13:52:11 +01:00
parent e282d0ec7e
commit 09b1937a8d
22 changed files with 536 additions and 266 deletions

View File

@ -37,7 +37,7 @@ SOFTWARE.
* Major Minor Patch Build
* 0x01010000 -> 1.1.0-0
*/
#define UI7_VERSION 0x00020702
#define UI7_VERSION 0x00020800
namespace PD {
namespace UI7 {
@ -57,14 +57,7 @@ class Context : public SmartCtor<Context> {
*/
Context(LI::Renderer::Ref ren, Hid::Ref hid) {
/// Set the Internal References
this->ren = ren;
this->inp = hid;
io = IO::New(hid);
/// Init Theme and Front / Back Drawlists
theme = Theme::New();
back = DrawList::New(ren);
front = DrawList::New(ren);
s_delta = TimeStats::New(60);
io = IO::New(hid, ren);
}
~Context() = default;
@ -97,14 +90,14 @@ class Context : public SmartCtor<Context> {
* Get Theme reference
* @return Reference to the base Theme of the context
*/
Theme::Ref GetTheme() { return theme; }
Theme::Ref GetTheme() { return io->Theme; }
/**
*Directly return a Color by using the
* ctx->ThemeColor(UI7Color_Text) for example
* @param clr The Input UI7 Color
* @return The 32bit color value
*/
u32 ThemeColor(UI7Color clr) const { return theme->Get(clr); }
u32 ThemeColor(UI7Color clr) const { return io->Theme->Get(clr); }
/**
* Update Context (Render menus)
@ -115,9 +108,9 @@ class Context : public SmartCtor<Context> {
// Expose DrawLists
/** Background DrawList Reference */
DrawList::Ref BackList() { return back; }
DrawList::Ref BackList() { return io->Back; }
/** Foreground DrawList Reference */
DrawList::Ref FrontList() { return front; }
DrawList::Ref FrontList() { return io->Front; }
/**
* Set the Root Layer of the Menu
@ -138,41 +131,16 @@ class Context : public SmartCtor<Context> {
/** Metrics */
void MetricsMenu();
/** Style Editor Menu (Includes Theme Editor) */
void StyleEditor();
private:
// Used in Overlays
int root_layer = 0;
// Linked Renderer
LI::Renderer::Ref ren;
// Input Driver Reference
Hid::Ref inp;
// Delta time
float delta;
// Context Run Time
float time;
/// @brief Last Time [unused ?]
float last;
// In Menu [unused ?]
bool in_menu;
// Is Debugging [unused ?]
bool debugging;
// Map of The Menus by ID
std::unordered_map<u32, Menu::Ref> menus;
std::vector<u32> amenus; ///< Active ones
Menu::Ref current; ///< Current Menu
// Debug Drawlist
DrawList::Ref debug;
// Foreground Drawlist
DrawList::Ref front;
// Background Drawlist
DrawList::Ref back;
// Active Theme
Theme::Ref theme;
// Metrics
// Deltatime Average
TimeStats::Ref s_delta;
// IO
IO::Ref io;
};