DeskSim v2 0.1
Train simulator prototype created for Lokførerskolen
LoginWidget.h
1// Copyright 2022 Thomas Arinesalingam, John Ole Bjerke, Endre Heksum & Henrik Markengbakken Karlsen . All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include <Components/TextBlock.h>
7#include <Components/EditableTextBox.h>
8#include <Components/Button.h>
9
11
12#include <VaRest.h>
13#include <VaRestSubsystem.h>
14#include <VaRestJsonObject.h>
15#include <VaRestJsonValue.h>
16
17/*
18#include <HTTP/Public/Http.h>
19#include <Json/Public/Json.h>
20#include <JsonUtilities/Public/JsonUtilities.h>
21*/
22
23#include "Blueprint/UserWidget.h"
24#include "LoginWidget.generated.h"
25
26
27
31UCLASS()
32class DESKSIMV2_API ULoginWidget : public UUserWidget
33{
34 GENERATED_BODY()
35
36public:
37
38 ULoginWidget(const FObjectInitializer& ObjectInitializer);
39
40 void NativeOnInitialized() override;
41
42 UFUNCTION()
43 void UpdateInfoText(FString Text);
44
45 UFUNCTION()
46 void OnLoginClicked();
47
48 void CallSignIn();
49
50 UFUNCTION()
51 void SignInCallback(UVaRestRequestJSON* Request);
52
53 void CallUserLogin(FString JWT);
54
55 UFUNCTION()
56 void UserLoginCallback(UVaRestRequestJSON* Request);
57
58 void ReadUserData(UVaRestJsonObject* ResponseObject);
59
60 void SwitchToMainMenu();
61
62 UFUNCTION()
63 void QuitGame();
64
65 // ----------- UI components ------------
66
67 UPROPERTY(EditAnywhere, BluePrintReadWrite, meta = (BindWidget))
68 UEditableTextBox* UsernameField;
69
70 UPROPERTY(EditAnywhere, BluePrintReadWrite, meta = (BindWidget))
71 UEditableTextBox* PasswordField;
72
73 UPROPERTY(EditAnywhere, BluePrintReadWrite, meta = (BindWidget))
74 UButton* LoginButton;
75
76 UPROPERTY(EditAnywhere, BluePrintReadWrite, meta = (BindWidget))
77 UButton* QuitButton;
78
79 UPROPERTY(EditAnywhere, BluePrintReadWrite, meta = (BindWidget))
80 UTextBlock* InfoTextBox;
81
82 // --------------------------------------
83
85 UVaRestSubsystem* RestSubSys;
86
87 // Base url of the api
88 FString ApiBaseUrl;
89
90 // Class reference to Main menu widget
91 UPROPERTY(EditDefaultsOnly, Category = "Login")
92 TSubclassOf<UUserWidget> MainMenuWidgetClass;
93
95 FVaRestCallDelegate SignInDelegate;
96
98 FVaRestCallDelegate UserLoginDelegate;
99
100};
Gameinstance class containing some global info.
Definition: LoginWidget.h:33
UVaRestSubsystem * RestSubSys
VaRest Subsystem reference.
Definition: LoginWidget.h:85