ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
UISystem.hpp
1#pragma once
2
3#include "UIIl2cpp.hpp"
4#include "FactoryInterfaces/IColorInputFactory.hpp"
5#include "FactoryInterfaces/IDropdownFactory.hpp"
6#include "FactoryInterfaces/IFLayoutFactory.hpp"
7#include "FactoryInterfaces/IFloatingPanelFactory.hpp"
8#include "FactoryInterfaces/IGLayoutFactory.hpp"
9#include "FactoryInterfaces/IHLayoutFactory.hpp"
10#include "FactoryInterfaces/IIconButtonFactory.hpp"
11#include "FactoryInterfaces/IImageFactory.hpp"
12#include "FactoryInterfaces/IPrimaryButtonFactory.hpp"
13#include "FactoryInterfaces/ISecondaryButtonFactory.hpp"
14#include "FactoryInterfaces/ISliderFactory.hpp"
15#include "FactoryInterfaces/ITabControlFactory.hpp"
16#include "FactoryInterfaces/ITextFactory.hpp"
17#include "FactoryInterfaces/ITextInputFactory.hpp"
18#include "FactoryInterfaces/ITextSegmentedControlFactory.hpp"
19#include "FactoryInterfaces/IToggleFactory.hpp"
20#include "FactoryInterfaces/IVLayoutFactory.hpp"
21#include "FactoryInterfaces/IVScrollViewFactory.hpp"
22#include "FactoryInterfaces/IVVListFactory.hpp"
23#include "../Unity/EnhancedImage.hpp"
24
25#include <UnityEngine/Color.hpp>
26#include <UnityEngine/Material.hpp>
27#include <UnityEngine/Sprite.hpp>
28#include <UnityEngine/Vector4.hpp>
29#include <UnityEngine/CanvasGroup.hpp>
30#include <TMPro/TextMeshProUGUI.hpp>
31#include <stdint.h>
32
33namespace CP_SDK::UI {
34
35 namespace _u
36 {
37 using namespace System;
38 using namespace TMPro;
39 using namespace UnityEngine;
40 }
41 namespace _v
42 {
43 using namespace CP_SDK::Utils;
44 }
45
48 {
49 CP_SDK_NO_DEF_CTORS(UISystem);
50
51 private:
52 static Unity::EnhancedImage::Ptr m_LoadingAnimation;
53
54 private:
55 static _v::MonoPtr<_u::Sprite> m_UIButtonSprite;
56 static _v::MonoPtr<_u::Sprite> m_UIColorPickerFBGSprite;
57 static _v::MonoPtr<_u::Sprite> m_UIColorPickerHBGSprite;
58 static _v::MonoPtr<_u::Sprite> m_UIColorPickerSBGSprite;
59 static _v::MonoPtr<_u::Sprite> m_UIColorPickerVBGSprite;
60 static _v::MonoPtr<_u::Sprite> m_UIDownArrowSprite;
61 static _v::MonoPtr<_u::Sprite> m_UIIconGear;
62 static _v::MonoPtr<_u::Sprite> m_UIIconLocked;
63 static _v::MonoPtr<_u::Sprite> m_UIIconUnlocked;
64 static _v::MonoPtr<_u::Sprite> m_UIRectBGSprite;
65 static _v::MonoPtr<_u::Sprite> m_UIRoundBGSprite;
66 static _v::MonoPtr<_u::Sprite> m_UIRoundRectLeftBGSprite;
67 static _v::MonoPtr<_u::Sprite> m_UIRoundRectRightBGSprite;
68 static _v::MonoPtr<_u::Sprite> m_UIRoundSmoothFrameSprite;
69 static _v::MonoPtr<_u::Sprite> m_UISliderBGSprite;
70 static _v::MonoPtr<_u::Sprite> m_UISliderHandleSprite;
71
72 public:
73 static std::shared_ptr<FactoryInterfaces::IColorInputFactory> ColorInputFactory;
74 static std::shared_ptr<FactoryInterfaces::IDropdownFactory> DropdownFactory;
75 static std::shared_ptr<FactoryInterfaces::IFLayoutFactory> FLayoutFactory;
76 static std::shared_ptr<FactoryInterfaces::IFloatingPanelFactory> FloatingPanelFactory;
77 static std::shared_ptr<FactoryInterfaces::IGLayoutFactory> GLayoutFactory;
78 static std::shared_ptr<FactoryInterfaces::IHLayoutFactory> HLayoutFactory;
79 static std::shared_ptr<FactoryInterfaces::IIconButtonFactory> IconButtonFactory;
80 static std::shared_ptr<FactoryInterfaces::IImageFactory> ImageFactory;
81 static std::shared_ptr<FactoryInterfaces::IPrimaryButtonFactory> PrimaryButtonFactory;
82 static std::shared_ptr<FactoryInterfaces::ISecondaryButtonFactory> SecondaryButtonFactory;
83 static std::shared_ptr<FactoryInterfaces::ISliderFactory> SliderFactory;
84 static std::shared_ptr<FactoryInterfaces::ITabControlFactory> TabControlFactory;
85 static std::shared_ptr<FactoryInterfaces::ITextFactory> TextFactory;
86 static std::shared_ptr<FactoryInterfaces::ITextInputFactory> TextInputFactory;
87 static std::shared_ptr<FactoryInterfaces::ITextSegmentedControlFactory> TextSegmentedControlFactory;
88 static std::shared_ptr<FactoryInterfaces::IToggleFactory> ToggleFactory;
89 static std::shared_ptr<FactoryInterfaces::IVLayoutFactory> VLayoutFactory;
90 static std::shared_ptr<FactoryInterfaces::IVScrollViewFactory> VScrollViewFactory;
91 static std::shared_ptr<FactoryInterfaces::IVVListFactory> VVListFactory;
92
93 public:
94 static int UILayer;
95 static float FontScale;
96
97 static _u::Color DefaultBGColor;
98 static _u::Color NavigationBarBGColor;
99 static _u::Color PrimaryColor;
100 static _u::Color SecondaryColor;
101 static _u::Color TitleBlockBGColor;
102 static _u::Color ModalBGColor;
103 static _u::Color ListBGColor;
104 static _u::Color KeyboardTextBGColor;
105 static _u::Color TooltipBGColor;
106
107 static _u::Color TextColor;
108
109 public:
110 static SafePtr<_u::Type> Override_UnityComponent_Image;
111 static SafePtr<_u::Type> Override_UnityComponent_TextMeshProUGUI;
112
113 public:
114 static _v::Func<_u::TMP_FontAsset*> Override_GetUIFont;
115 static _v::Func<_u::Material*> Override_GetUIFontSharedMaterial;
116 static _v::Func<_u::Material*> Override_GetUIMaterial;
117 static _v::Action<_u::MonoBehaviour*> Override_OnClick;
118
119 public:
120 static _v::Action<IScreen*> OnScreenCreated;
121
122 public:
123 static void Init();
124 static void Destroy();
125
126 public:
127 static Unity::EnhancedImage::Ptr& GetLoadingAnimation();
128
129 public:
130 static UIFieldRefDel<_u::Sprite> GetUIButtonSprite;
131 static UIFieldRefDel<_u::Sprite> GetUIColorPickerFBGSprite;
132 static UIFieldRefDel<_u::Sprite> GetUIColorPickerHBGSprite;
133 static UIFieldRefDel<_u::Sprite> GetUIColorPickerSBGSprite;
134 static UIFieldRefDel<_u::Sprite> GetUIColorPickerVBGSprite;
135 static UIFieldRefDel<_u::Sprite> GetUIDownArrowSprite;
136 static UIFieldRefDel<_u::Sprite> GetUIIconGearSprite;
137 static UIFieldRefDel<_u::Sprite> GetUIIconLockedSprite;
138 static UIFieldRefDel<_u::Sprite> GetUIIconUnlockedSprite;
139 static UIFieldRefDel<_u::Sprite> GetUIRectBGSprite;
140 static UIFieldRefDel<_u::Sprite> GetUIRoundBGSprite;
141 static UIFieldRefDel<_u::Sprite> GetUIRoundRectLeftBGSprite;
142 static UIFieldRefDel<_u::Sprite> GetUIRoundRectRightBGSprite;
143 static UIFieldRefDel<_u::Sprite> GetUIRoundSmoothFrameSprite;
144 static UIFieldRefDel<_u::Sprite> GetUISliderBGSprite;
145 static UIFieldRefDel<_u::Sprite> GetUISliderHandleSprite;
146
147 public:
148 template<class t_ViewController> requires(std::is_assignable_v<IViewController*&, t_ViewController>)
149 static t_ViewController CreateViewController()
150 {
151 return reinterpret_cast<t_ViewController>(_CreateViewController(reinterpret_cast<_u::Type*>(csTypeOf(t_ViewController))));
152 }
153 static IViewController* _CreateViewController(_u::Type* p_Type);
154
155 public:
156 template<class t_ViewController> requires(std::is_assignable_v<IViewController*&, t_ViewController*>)
157 static void DestroyUI(_v::MonoPtr<t_ViewController>* p_View)
158 {
159 _DestroyUI(reinterpret_cast<_v::MonoPtr<IViewController>*>(p_View));
160 }
161 static void _DestroyUI(_v::MonoPtr<IViewController>* p_View);
162 static void DestroyUI(_v::MonoPtr<Components::CFloatingPanel>* p_Panel);
163 template<class t_ViewController> requires(std::is_assignable_v<IViewController*&, t_ViewController*>)
164 static void DestroyUI(_v::MonoPtr<Components::CFloatingPanel>* p_Panel, _v::MonoPtr<t_ViewController>* p_View)
165 {
166 _DestroyUI(p_Panel, reinterpret_cast<_v::MonoPtr<IViewController>*>(p_View));
167 }
168 static void _DestroyUI(_v::MonoPtr<Components::CFloatingPanel>* p_Panel, _v::MonoPtr<IViewController>* p_View);
169
170 private:
171 static UIFieldRef<_u::Sprite> GetXSprite(UIFieldRef<_u::Sprite> p_Sprite, ::Array<uint8_t>* p_Data, _u::Vector4 p_Borders);
172
173 };
174
175}
IViewController interface.
UI system main class.
Definition UISystem.hpp:48
Delegate helper class.
Definition Delegate.hpp:123
User interface components, views, flow coordinator, builders and factories.
Various platform utils like Delegate/Action/Function/Event system.
Definition Delegate.hpp:8