vkmEngine 1.0.0
A C++ game engine · vkmengine.com
Loading...
Searching...
No Matches
ui_scroll.h
1#pragma once
2
3#include <glm/glm.hpp>
4
5#include "core/reflect.h"
6
7namespace Vkm::Engine {
8
18struct UIScroll {
24 glm::vec2 offset = {0.0f, 0.0f};
25
27 float wheelStep = 60.0f;
28
34 glm::vec2 contentSize = {0.0f, 0.0f};
35
37 glm::vec2 viewSize = {0.0f, 0.0f};
38
44 glm::vec2 range() const { return glm::max(contentSize - viewSize, glm::vec2(0.0f)); }
45};
46
47} // namespace Vkm::Engine
48
49VKM_REFLECT_BEGIN(::Vkm::Engine::UIScroll)
50 VKM_F(offset)
51 VKM_F(wheelStep)
52VKM_REFLECT_END()
Makes an element's children scroll inside it, and clips them to it.
Definition ui_scroll.h:18
float wheelStep
Reference pixels the content moves per wheel notch.
Definition ui_scroll.h:27
glm::vec2 viewSize
This element's resolved size, in reference pixels.
Definition ui_scroll.h:37
glm::vec2 range() const
How far the content can travel on each axis, never negative; offset's clamp.
Definition ui_scroll.h:44
glm::vec2 offset
How far the content has scrolled, in canvas reference pixels.
Definition ui_scroll.h:24
glm::vec2 contentSize
Extent of the content laid out inside, in reference pixels; resolved, not authored.
Definition ui_scroll.h:34