Space Plunder
Loading...
Searching...
No Matches
MenuSystemWidget.h
Go to the documentation of this file.
1// Fill out your copyright notice in the Description page of Project Settings.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Blueprint/UserWidget.h"
7#include "Components/PanelWidget.h"
8#include "Data/MenuData.h"
11#include "MenuSystemWidget.generated.h"
12
13DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMenuBackButtonSelected, const bool, bOpenConfimation);
14
15
16
17UCLASS()
18class MENUSYSTEM_API UMenuSystemWidget : public UBaseActivatableWidget
19{
20 GENERATED_BODY()
21public:
22
23 UPROPERTY(BlueprintAssignable, Category="Menu System")
24 FOnMenuBackButtonSelected OnMenuBackButtonSelected;
25
26 explicit UMenuSystemWidget(const FObjectInitializer& ObjectInitializer);
27
28 virtual bool Initialize() override;
29 virtual void NativeConstruct() override;
30
31 virtual bool NativeOnHandleBackAction() override;
32
33
34 void SetMenuInterface(IMenuSystem* Interface);
35 void Setup();
36
37 UFUNCTION(BlueprintCallable, Category="Menu System")
38 virtual void OpenConfirmationMessage(const FModalData& ModalData);
39
40 UFUNCTION(BlueprintCallable, Category="Menu System")
41 virtual void SetServerList(const TArray<FServerRow>& ServerInfo);
42
43 UFUNCTION(BlueprintCallable, Category="Menu System|Options")
44 void SetOwnerWidget(UUserWidget* Owner){OwnerWidget = Owner;};
45 UFUNCTION(BlueprintCallable, Category="Menu System|Options")
46 UUserWidget* GetOwnerWidget() const {return OwnerWidget;};
47
48 UFUNCTION(BlueprintNativeEvent, BlueprintCallable, Category="Menu System")
49 void WidgetVisibilityChanged(ESlateVisibility SlateVisibility);
50
51 UFUNCTION(BlueprintCallable, Category="Menu System")
52 bool GetIsOnlineGame() const;
53 UFUNCTION(BlueprintCallable, Category="Menu System")
54 bool GetIsPublicMatch() const;
55 UFUNCTION(BlueprintCallable, Category="Menu System")
56 virtual bool GetDebuggingMode() const;
57
58 UFUNCTION(BlueprintCallable, Category="EOS")
59 virtual FString GetPlayerUserName() const;
60 UFUNCTION(BlueprintCallable, Category="EOS")
61 virtual bool GetIsPlayerLoggedIn() const;
62 UFUNCTION(BlueprintCallable, Category="EOS")
63 virtual FString GetCurrentSessionName() const;
64 UFUNCTION(BlueprintCallable, Category="EOS")
65 virtual EOnlineSubsystem GetOnlineSubsystem() const;
66
67
68protected:
69 IMenuSystem* MenuInterface = nullptr;
70 class IModalInterface * ModalInterface = nullptr;
71
72
73
74 UPROPERTY(BlueprintReadWrite, Category="Menu System")
75 bool bIsController = false;
76 UPROPERTY(BlueprintReadWrite, Category="Menu System")
77 bool bIsKeyboard = false;
78 UPROPERTY(BlueprintReadWrite, Category="Menu System")
79 bool bMouse = false;
80
81
82 UFUNCTION()
83 virtual void ModalButtonSelected(const int32 Index);
84 UFUNCTION(BlueprintImplementableEvent, Category="Menu System")
85 void OnModalButtonSelectedEvent(const int32 Index);
86 UFUNCTION()
87 virtual void ModalClosed();
88 UFUNCTION(BlueprintImplementableEvent, Category="Menu System")
89 void OnModalClosedEvent();
90
91 UFUNCTION(BlueprintCallable, Category="Menu System")
92 class UModalMenuSystemWidget* GetCurrentModal() const {return Modal;};
93
94 void SetModalSlot(UPanelWidget* PanelWidget){ModalSlot = PanelWidget;};
95 void SetNotificationSlot(UPanelWidget* PanelWidget){NotificationSlot = PanelWidget;};
96
97
98private:
99
100 UPROPERTY()
101 UUserWidget* OwnerWidget = nullptr;
102
103 UPROPERTY()
104 class UPanelWidget* ModalSlot = nullptr;
105 UPROPERTY()
106 class UPanelWidget* NotificationSlot = nullptr;
107
108 UPROPERTY()
109 class UModalMenuSystemWidget* Modal = nullptr;
110};
UCLASS(Blueprintable, BlueprintType, ClassGroup=(BucciGames), meta=(BlueprintSpawnableComponent)) class CHATSYSTEM_API UChatSystemComponent
Definition ChatSystemComponent.h:13
EOnlineSubsystem
Definition MenuData.h:49
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnMenuBackButtonSelected, const bool, bOpenConfimation)
Definition MenuSystem.h:19
Definition ModalInterface.h:21
Definition BaseActivatableWidget.h:17
Definition MenuSystemWidget.h:19
void SetModalSlot(UPanelWidget *PanelWidget)
Definition MenuSystemWidget.h:94
void SetNotificationSlot(UPanelWidget *PanelWidget)
Definition MenuSystemWidget.h:95
Definition ModalMenuSystemWidget.h:16
Definition MenuData.h:266
Definition MenuData.h:90