1#pragma once
2
3#include <basis/seadTypes.h>
4
5namespace agl {
6class DrawContext;
7}
8
9namespace nn::ui2d {
10class DrawInfo;
11}
12
13namespace al {
14class EffectSystem;
15class ExecuteDirector;
16class FontHolder;
17class LayoutSystem;
18
19class LayoutKit {
20public:
21 LayoutKit(FontHolder*);
22 ~LayoutKit();
23
24 void createCameraParamForIcon();
25 void createExecuteDirector(s32);
26 void createEffectSystem();
27 void endInit();
28 void update();
29 void draw(const char*) const;
30 void drawList(const char*, const char*) const;
31 void setLayoutSystem(LayoutSystem*);
32 void setDrawContext(agl::DrawContext*);
33
34 void setEffectSystem(EffectSystem* effectSystem) { mEffectSystem = effectSystem; }
35
36 ExecuteDirector* getExecuteDirector() const { return mExecuteDirector; }
37
38 EffectSystem* getEffectSystem() const { return mEffectSystem; }
39
40 nn::ui2d::DrawInfo* getDrawInfo() const { return mDrawInfo; }
41
42private:
43 FontHolder* mFontHolder;
44 ExecuteDirector* mExecuteDirector;
45 EffectSystem* mEffectSystem;
46 LayoutSystem* mLayoutSystem;
47 agl::DrawContext* mDrawContext;
48 nn::ui2d::DrawInfo* mDrawInfo;
49};
50
51static_assert(sizeof(LayoutKit) == 0x30);
52
53} // namespace al
54