# Stage 2

- reAdd Text Shorting
- make SpriteSheet part of SmartCtor
- Add Some Gaussian Blur func (not functional for now)
-  Add Image Indexing functions and Reverse32 for (RGBA -> ABGR)
- Add Transparency flag to Keyboard and Fix its Render Prder
- Add UI7 Alignment API
  - Incldes PushAlignment (One way Alignment, JoinAlign, etc)
- Make Setter for Scroll Offset public
- Make Getter for ScrollMod Public
- Add a Check if Menu is duing an animated scroll
- Add FindMenu to Context for Modifications after Context::EndMenu
- Fix Major Issue in Lithium InBox Function
- Fix TextAlignRight and Add PerLine Text Shorting
- Fix Screen being unused in Performance Overlay
- Add Beta Slider Dragging
- Dont Handle Inputs for Objects when scrolling
- Add a MainArea to Not Handle Inputs outside of it
- Simplefied some logic

- TODO:
  - Write TextWrap Function
  - Add PerLine text Align
  - Track and Fix a lot of UI7 Bugs such as Alignment Issues etc
This commit is contained in:
2025-02-17 22:20:30 +01:00
parent ca26189f52
commit cbdb15e0de
22 changed files with 379 additions and 41 deletions

View File

@ -59,9 +59,12 @@ class Menu : public SmartCtor<Menu> {
void Separator();
void SeparatorText(const std::string& label);
void Join();
/// @brief Horizontal Center Joined objects
void JoinOpHzCenter();
void AfterAlignCenter();
void JoinAlign(UI7Align a);
void AfterAlign(UI7Align a);
void NextAlign(UI7Align a) { tmpalign = a; }
void PushAlignment(UI7Align a) { alignment = a; }
void PopAlignment() { alignment = UI7Align_Default; }
static vec2 AlignPos(vec2 pos, vec2 size, vec4 view, UI7Align a);
/// API for Custom Objects
bool HandleScrolling(vec2& pos, const vec2& size);
@ -89,12 +92,15 @@ class Menu : public SmartCtor<Menu> {
vec4 MainArea() const { return main_area; }
void MainArea(const vec4& v) { main_area = v; }
vec2 ScrollOffset() const { return scrolling_off; }
void ScrollOffset(const vec2& v) { scrolling_off = v; }
vec2 ScrollMod() const { return scroll_mod; }
void ScrollTo(vec2 pos) {
scroll_anim.From(scrolling_off)
.To(pos)
.In(1.f)
.As(scroll_anim.EaseInOutSine);
}
bool IsAnimatedScroll() { return !scroll_anim.IsFinished(); }
/// Objects API
Container::Ref ObjectPush(Container::Ref obj);
@ -124,10 +130,17 @@ class Menu : public SmartCtor<Menu> {
vec2 SameLineCursor() const { return slcursor; }
void SameLineCursor(const vec2& v) { slcursor = v; }
void ViewArea(const vec4& v) { view_area = v; }
void ScrollOffset(const vec2& v) { scrolling_off = v; }
vec2 ScrollMod() const { return scroll_mod; }
void ScrollMod(const vec2& v) { scroll_mod = v; }
UI7Align GetAlignment() {
if (tmpalign) {
auto t = tmpalign;
tmpalign = 0;
return t;
}
return alignment;
}
/// Internal Processing
void Update(float delta);
@ -135,6 +148,8 @@ class Menu : public SmartCtor<Menu> {
friend class Context;
/// Data
UI7Align alignment = UI7Align_Default;
UI7Align tmpalign = 0;
UI7MenuFlags flags = 0;
u32 id;
std::string name;