LeviLamina
Loading...
Searching...
No Matches
EduShareLinkScreenController.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated inclusion list
6#include "mc/client/gui/screens/controllers/EduShareLinkItem.h"
7#include "mc/client/gui/screens/controllers/EduShareMethodType.h"
8#include "mc/client/gui/screens/controllers/EduShareUriType.h"
9#include "mc/client/gui/screens/controllers/MainMenuScreenController.h"
10#include "mc/options/EduSharedUriResource.h"
11
12// auto generated forward declare list
13// clang-format off
14class LibraryItem;
16namespace Json { class Value; }
17// clang-format on
18
20public:
21 // EduShareLinkScreenController inner types declare
22 // clang-format off
24 // clang-format on
25
26 // EduShareLinkScreenController inner types define
27 enum class UriResourceValidationStatus : int {
28 Empty = 0,
29 Invalid = 1,
30 Valid = 2,
31 };
32
33 enum class ScreenState : int {
34 None = 0,
35 Simple = 1,
36 Teams = 2,
37 AddResource = 3,
38 };
39
41 public:
42 // member variables
43 // NOLINTBEGIN
44 ::ll::TypedStorage<1, 1, bool> mShareLinkIgnored;
45 ::ll::TypedStorage<1, 1, bool> mShareToTeams;
46 ::ll::TypedStorage<1, 1, bool> mCanAssignResources;
47 ::ll::TypedStorage<1, 1, bool> mIsEducator;
48 // NOLINTEND
49 };
50
51public:
52 // member variables
53 // NOLINTBEGIN
54 ::ll::TypedStorage<1, 4, ::EduShareLinkScreenController::EduShareLinkCapabilities> mCapabilities;
55 ::ll::TypedStorage<8, 32, ::std::string> mSourceScreen;
56 ::ll::TypedStorage<8, 32, ::std::string> mSourcePrefix;
57 ::ll::TypedStorage<4, 4, ::EduShareLinkScreenController::ScreenState> mScreenState;
58 ::ll::TypedStorage<8, 104, ::EduShareLinkItem> mItem;
59 ::ll::TypedStorage<8, 72, ::std::optional<::EduSharedUriResource>> mOriginalAdditionalUriResource;
60 ::ll::TypedStorage<8, 72, ::std::optional<::EduSharedUriResource>> mAdditionalUriResource;
61 ::ll::TypedStorage<8, 64, ::EduSharedUriResource> mEditAdditionalUriResource;
62 ::ll::TypedStorage<4, 4, ::EduShareLinkScreenController::UriResourceValidationStatus> mUriResourceValidationStatus;
63 ::ll::TypedStorage<8, 32, ::std::string> mAdditionalUriResourceUriErrorMessage;
64 // NOLINTEND
65
66public:
67 // prevent constructor by default
68 EduShareLinkScreenController();
69
70public:
71 // virtual functions
72 // NOLINTBEGIN
73 virtual void addStaticScreenVars(::Json::Value& globalVars) /*override*/;
74 // NOLINTEND
75
76public:
77 // member functions
78 // NOLINTBEGIN
79 MCAPI EduShareLinkScreenController(
80 ::std::shared_ptr<::MainMenuScreenModel> model,
81 ::LibraryItem const& item,
82 ::std::optional<::EduSharedUriResource> resource
83 );
84
85 MCAPI ::std::string _appendAdditionalResources(::std::string const& url);
86
87 MCAPI void _clearAdditionalUriResource();
88
89 MCAPI void _closeActiveScreen();
90
91 MCAPI ::std::string _getResourceAddedText() const;
92
93 MCAPI ::std::string _getShareButtonText() const;
94
95 MCAPI ::std::string _getTeamsAdvancedShareTitle() const;
96
97 MCAPI ::std::string _getTeamsBodyText() const;
98
99 MCAPI void _openScreen(::EduShareLinkScreenController::ScreenState state);
100
101 MCAPI void _registerAddResourcesHandlers();
102
103 MCAPI void _registerBindings();
104
105 MCAPI void _registerEventHandlers();
106
107 MCAPI void _registerShareDialogHandlers(::std::string const& copyUri);
108
109 MCAPI void _registerShareTeamsHandlers();
110
111 MCAPI void _registerSimpleShareMenuHandlers();
112
113 MCAPI void _screenTTS(::std::string const& title, ::std::string const& contents, ::std::string const& extra);
114
115 MCAPI void
116 _sendNotification(::EduShareUriType shareType, ::EduShareMethodType methodType, ::std::string const& toastMessage);
117 // NOLINTEND
118
119public:
120 // constructor thunks
121 // NOLINTBEGIN
122 MCAPI void* $ctor(
123 ::std::shared_ptr<::MainMenuScreenModel> model,
124 ::LibraryItem const& item,
125 ::std::optional<::EduSharedUriResource> resource
126 );
127 // NOLINTEND
128
129public:
130 // virtual function thunks
131 // NOLINTBEGIN
132 MCAPI void $addStaticScreenVars(::Json::Value& globalVars);
133 // NOLINTEND
134
135public:
136 // vftables
137 // NOLINTBEGIN
139
140 MCNAPI static void** $vftableForScreenController();
141 // NOLINTEND
142};
Definition EduShareLinkScreenController.h:5
static MCAPI void ** $vftableForEnableNonOwnerReferences()
static MCAPI void ** $vftableForScreenController()
Definition Value.h:16
Definition LibraryItem.h:5
Definition MainMenuScreenController.h:5
Definition MainMenuScreenModel.h:5
Definition EduShareLinkScreenController.h:17