ChatPlexSDK-BS 1.0.1-v6.2.0
C++ ChatPlex BeatSaber SDK
Loading...
Searching...
No Matches
DefaultCToggle.hpp
1#pragma once
2
3#include "Subs/SubToggleWithCallbacks.hpp"
4#include "../Components/CToggle.hpp"
5#include "../Components/CText.hpp"
6#include "../../Utils/Event.hpp"
7
8#include <UnityEngine/UI/Image.hpp>
9#include <UnityEngine/UI/Button.hpp>
10
12
13 namespace _u
14 {
15 using namespace UnityEngine;
16 using namespace UnityEngine::UI;
17 }
18 namespace _v
19 {
20 using namespace CP_SDK::Utils;
21 }
22
25 {
26 CP_SDK_IL2CPP_INHERIT("CP_SDK.UI.DefaultComponents", DefaultCToggle, Components::CToggle);
27 CP_SDK_IL2CPP_DECLARE_CTOR_CHILD(DefaultCToggle);
28 CP_SDK_IL2CPP_DECLARE_DTOR_MONOBEHAVIOUR_CHILD(DefaultCToggle);
29
30 private:
31 enum AnimationState : uint32_t
32 {
33 Idle = 0 << 0,
34 SwitchingOn = 1 << 0,
35 SwitchingOff = 1 << 1,
36 HighlightingOn = 1 << 2,
37 HighlightingOff = 1 << 3,
38 DisablingOn = 1 << 4,
39 DisablingOff = 1 << 5
40 };
41
42 struct ColorBlock
43 {
44 _u::Color KnobColor;
45 _u::Color BackgroundColor;
46
47 ColorBlock() : KnobColor(_u::Color::get_white()), BackgroundColor(_u::Color::get_white()) {}
48 ColorBlock(_u::Color p_KnobColor, _u::Color p_BackgroundColor) : KnobColor(p_KnobColor), BackgroundColor(p_BackgroundColor) {}
49 };
50
51 private:
55 _v::MonoPtr<_u::Image> m_BackgroundImage;
58 _v::MonoPtr<_u::Image> m_KnobImage;
59 bool m_PreventChange;
60 _v::Event<bool> m_OnChange;
61
62 float m_SwitchAnimationSmooth;
63 float m_HorizontalStretchAmount;
64 float m_VerticalStretchAmount;
65
66 uint32_t m_AnimationState;
67 float m_SwitchAmount;
68 float m_HighlightAmount;
69 float m_DisabledAmount;
70 float m_OriginalKnobWidth;
71 float m_OriginalKnobHeight;
72
73 ColorBlock m_OnColors;
74 ColorBlock m_OffColors;
75 ColorBlock m_OnHighlightedColors;
76 ColorBlock m_OffHighlightedColors;
77 ColorBlock m_DisabledColors;
78
79 public:
82
85
86 public:
89
90 public:
93
94 public:
98 void OnValueChanged_Impl(_v::CActionRef<bool> p_Functor, bool p_Add = true);
99
100 public:
103
104 public:
108 void SetValue_Impl(bool p_Value, bool p_Notify = true);
109
110 private:
113 DECLARE_INSTANCE_METHOD(void, Toggle_onValueChanged, bool p_Value);
116 void Toggle_StateDidChange(Subs::SubToggleWithCallbacks::ESelectionState p_SelectionState);
117
118 private:
121 void LerpPosition(float p_SwitchAmount);
124 void LerpStretch(float p_SwitchAmount);
129 void LerpColors(float p_SwitchAmount, float p_HighlightAmount, float p_DisabledAmount);
135 _u::Color LerpColor(float p_SwitchAmount, float p_HighlightAmount, float p_DisabledAmount, const _v::Delegate<_u::Color(ColorBlock&)>& p_Delegate);
136
137 };
138
139}
140
141CP_SDK_IL2CPP_INHERIT_HELPERS(CP_SDK::UI::DefaultComponents::DefaultCToggle);
DECLARE_INSTANCE_METHOD(void, Start)
Component first frame.
void Init_DefaultCToggle()
On component creation.
void OnValueChanged_Impl(_v::CActionRef< bool > p_Functor, bool p_Add=true)
On value changed event.
void SetValue_Impl(bool p_Value, bool p_Notify=true)
Set value.
Event class helper.
Definition Event.hpp:100
Default generic components implementation.
Various platform utils like Delegate/Action/Function/Event system.
Definition Delegate.hpp:8