28class UrUIRecordsBrowser:
public ToyMaker::SimObjectAspect<UrUIRecordsBrowser> {
34 UrUIRecordsBrowser(): ToyMaker::SimObjectAspect<UrUIRecordsBrowser>{0} {}
35 inline static std::string getSimObjectAspectTypeName() {
return "UrUIRecordsBrowser"; }
36 static std::shared_ptr<BaseSimObjectAspect> create(
const nlohmann::json& jsonAspectProperties);
37 std::shared_ptr<BaseSimObjectAspect> clone()
const override;
40 void loadScene(
const std::string& sceneResourceName);
43 Mode mMode { Mode::BROWSE };
45 std::vector<GameRecord> mFetchedRecords {};
47 void refreshRecords();
48 void onButtonClicked(
const std::string& button);
49 void onActivated()
override;
51 bool hasPage(uint32_t page)
const;
52 void openPage(uint32_t page);
54 void openDetailedRecord(uint32_t entry);
55 void closeDetailedRecord();
57 bool onCancel(
const ToyMaker::ActionData& actionData,
const ToyMaker::ActionDefinition& actionDefinition);
59 std::weak_ptr<ToyMaker::FixedActionBinding> handleCancel { declareFixedActionBinding(
60 "General",
"Cancel", [
this](
const ToyMaker::ActionData& actionData,
const ToyMaker::ActionDefinition& actionDefinition) {
61 return this->onCancel(actionData, actionDefinition);
64 std::weak_ptr<ToyMaker::FixedActionBinding> handlerLeftRelease {
65 declareFixedActionBinding(
66 "UI",
"Untap", [
this](
const ToyMaker::ActionData& actionData,
const ToyMaker::ActionDefinition& actionDefinition) {
67 return this->onCancel(actionData, actionDefinition);
72 ToyMaker::SignalObserver<const std::string&> mObserveButtonClicked {
73 *
this,
"ButtonClickedObserved",
74 [
this](
const std::string& button) { this->onButtonClicked(button); }