TachyonUI 0.1.0
High-performance UI for building tools.
Loading...
Searching...
No Matches
gui_layout_engine.h
Go to the documentation of this file.
1#pragma once
2
3namespace tachyon
4{
7
9 class ElementStorage;
10 class OSWindowManager;
11 class ITextSystem;
12
27 {
28 public:
29 explicit LayoutEngine(ITextSystem& textSystem,
30 ScrollManagement& scrollManagement) noexcept
31 : m_textSystem(textSystem)
32 , m_scrollManagement(scrollManagement)
33 {
34 }
35
37 void Layout(OSWindowManager& osWindowManager, ElementStorage& storage);
38
39 private:
40 ITextSystem& m_textSystem;
41 ScrollManagement& m_scrollManagement;
42
43 void HorizontalSizingPass(ElementStorage& storage);
44 void VerticalSizingPass(ElementStorage& storage);
45 void HorizontalPositioningPass(OSWindowManager& osWindowManager, ElementStorage& storage);
46 void VerticalPositioningPass(OSWindowManager& osWindowManager, ElementStorage& storage);
47 };
48
49}
50
The frame's element tree.
Definition gui_element_storage.h:100
Text and icon registration, measurement, rendering and editing.
Definition gui_text_system.h:178
void Layout(OSWindowManager &osWindowManager, ElementStorage &storage)
Lays out every element in storage; call after EndConstruction.
LayoutEngine(ITextSystem &textSystem, ScrollManagement &scrollManagement) noexcept
Definition gui_layout_engine.h:29
Keeps the OS windows (through an IWindowBackend) and their window contexts for the GUI's window eleme...
Definition gui_os_window_manager.h:61
Scroll containers' offsets (pixels), kept across frames by ID behind handles.
Definition gui_scroll_management.h:33
Definition gui_logging.h:24