ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
HMUIUIUtils.hpp
1#pragma once
2
3#include "../../CP_SDK/Utils/Il2cpp.hpp"
4#include "../../CP_SDK/Utils/MonoPtr.hpp"
5
6#include <GlobalNamespace/MainFlowCoordinator.hpp>
7#include <HMUI/FlowCoordinator.hpp>
8#include <HMUI/ViewController.hpp>
9#include <System/Type.hpp>
10#include <UnityEngine/Canvas.hpp>
11#include <VRUIControls/PhysicsRaycasterWithCache.hpp>
12
13namespace CP_SDK_BS::UI {
14
15 namespace _u
16 {
17 using namespace GlobalNamespace;
18 using namespace UnityEngine;
19 using namespace VRUIControls;
20 }
21
24 {
25 CP_SDK_NO_DEF_CTORS(HMUIUIUtils);
26
27 private:
28 static CP_SDK::Utils::MonoPtr<_u::MainFlowCoordinator> m_MainFlowCoordinator;
29 static CP_SDK::Utils::MonoPtr<_u::Canvas> m_CanvasTemplate;
31
32 public:
33 static _u::MainFlowCoordinator* MainFlowCoordinator();
34
35 public:
38 template<class t_Base> requires(std::is_assignable_v<HMUI::FlowCoordinator*&, t_Base>)
39 static t_Base CreateFlowCoordinator()
40 {
41 return reinterpret_cast<t_Base>(CreateFlowCoordinator(csTypeOf(t_Base)));
42 }
45 static HMUI::FlowCoordinator* CreateFlowCoordinator(System::Type* p_Type);
46
49 template<class t_Base> requires(std::is_assignable_v<HMUI::ViewController*&, t_Base>)
50 static t_Base CreateViewController()
51 {
52 return reinterpret_cast<t_Base>(CreateViewController(csTypeOf(t_Base)));
53 }
56 static HMUI::ViewController* CreateViewController(System::Type* p_Type);
57
58 };
59
60}
View controller utils.
static HMUI::ViewController * CreateViewController(System::Type *p_Type)
Create a view controller.
static t_Base CreateViewController()
Create a view controller.
static t_Base CreateFlowCoordinator()
Create a flow coordinator.
static HMUI::FlowCoordinator * CreateFlowCoordinator(System::Type *p_Type)
Create a flow coordinator.
BeatSaber specific UI compoenents and utilities.