Space Plunder
Loading...
Searching...
No Matches
UButtonPromptWidget Class Reference

User widget representing a button prompt for It provides functionality for displaying a button icon, a progress bar, and handling button events. More...

#include <ButtonPromptWidget.h>

Inheritance diagram for UButtonPromptWidget:

Public Member Functions

 UButtonPromptWidget (const FObjectInitializer &ObjectInitializer)
 
void StartButtonProgress (const float Time)
 
void ButtonProgress ()
 
void StopButtonProgress ()
 
float GetButtonProgress () const
 
void SetAvailable (const bool bValue=true)
 
void SetHasProgress (const bool bValue)
 
bool GetHasProgress () const
 
void SetInputAction (UInputAction *Action)
 
void SetInputActionFromTable (const FName &Name)
 
void SetShowText (const bool bValue)
 
void SetSizeValue (const float Value)
 
void SetSize (const ESize Value)
 

Public Attributes

FOnButtonPressed OnButtonPressed
 
class UMaterialInstance * ProgressBar = nullptr
 
float Progress = 0.0f
 
float ProgressTickTime = 0.01f
 
float ProgressIncrementRate = 1.0f
 
bool bUseInputAction = false
 
bool bUseDataTable = false
 
bool bShowText = false
 
bool bKeepProgressSize = false
 

Protected Member Functions

virtual bool Initialize () override
 
virtual void NativePreConstruct () override
 
virtual void NativeConstruct () override
 

Protected Attributes

bool bHasProgressBar = false
 
float SizeValue = 52.0f
 
ESize Size = ESize::Medium
 
float DefaultSize = 52.0f
 
UInputAction * InputAction = nullptr
 
class UDataTable * InputActionDT
 
FDataTableRowHandle InputActionRow
 
class UCommonActionWidget * ButtonIconAction = nullptr
 
class UImage * ProgressBarImage = nullptr
 
class UTextBlock * PromptText = nullptr
 
class USizeBox * SizeContainer = nullptr
 
bool bAvailable = true
 
UMaterialInstanceDynamic * DynamicMaterial = nullptr
 

Private Member Functions

void SetProgressBarMaterial ()
 

Private Attributes

FTimerHandle ProgressTimerHandle
 

Detailed Description

User widget representing a button prompt for It provides functionality for displaying a button icon, a progress bar, and handling button events.

The button prompt widget can be set to be available or unavailable, depending on the state of the When the button is pressed, the OnButtonPressed event is broadcasted.

Note
This class requires the API (BaseHelpers) to be defined in order to be used as an API class.
See also
UUserWidget
Note
FINISHED

Constructor & Destructor Documentation

◆ UButtonPromptWidget()

UButtonPromptWidget::UButtonPromptWidget ( const FObjectInitializer & ObjectInitializer)
explicit
16 :Super(ObjectInitializer)
17{
18 InputActionDT = LoadObject<UDataTable>(nullptr, TEXT("/CommonUIStyle/Data/DT_InputAction"));
19 if(InputActionDT != nullptr)
20 {
21 InputActionRow.DataTable = InputActionDT;
22 }
23}
FDataTableRowHandle InputActionRow
Definition ButtonPromptWidget.h:109
class UDataTable * InputActionDT
Definition ButtonPromptWidget.h:107

Member Function Documentation

◆ ButtonProgress()

void UButtonPromptWidget::ButtonProgress ( )

◆ GetButtonProgress()

float UButtonPromptWidget::GetButtonProgress ( ) const
inline
49{return Progress;};
float Progress
Definition ButtonPromptWidget.h:76

◆ GetHasProgress()

bool UButtonPromptWidget::GetHasProgress ( ) const
inline
57{return bHasProgressBar;};
bool bHasProgressBar
Definition ButtonPromptWidget.h:96

◆ Initialize()

bool UButtonPromptWidget::Initialize ( )
overrideprotectedvirtual
26{
27 const bool Success = Super::Initialize();
28 if(!Success) return false;
29 if (!ensure(ProgressBarImage != nullptr)) return false;
30 if (!ensure(ButtonIconAction != nullptr)) return false;
31 if (!ensure(SizeContainer != nullptr)) return false;
32 if (!ensure(PromptText != nullptr)) return false;
33 return true;
34}
class USizeBox * SizeContainer
Definition ButtonPromptWidget.h:119
class UTextBlock * PromptText
Definition ButtonPromptWidget.h:117
class UImage * ProgressBarImage
Definition ButtonPromptWidget.h:115
class UCommonActionWidget * ButtonIconAction
Definition ButtonPromptWidget.h:113

◆ NativeConstruct()

void UButtonPromptWidget::NativeConstruct ( )
overrideprotectedvirtual
53{
54 Super::NativeConstruct();
57 {
59 }
61 {
63 }
66}
bool bUseDataTable
Definition ButtonPromptWidget.h:85
bool bShowText
Definition ButtonPromptWidget.h:87
void SetInputActionFromTable(const FName &Name)
Definition ButtonPromptWidget.cpp:118
void SetProgressBarMaterial()
Definition ButtonPromptWidget.cpp:68
UInputAction * InputAction
Definition ButtonPromptWidget.h:105
ESize Size
Definition ButtonPromptWidget.h:100
void SetInputAction(UInputAction *Action)
Definition ButtonPromptWidget.cpp:104
void SetSize(const ESize Value)
Definition ButtonPromptWidget.cpp:156
bool bUseInputAction
Definition ButtonPromptWidget.h:83
void SetShowText(const bool bValue)
Definition ButtonPromptWidget.cpp:130

◆ NativePreConstruct()

void UButtonPromptWidget::NativePreConstruct ( )
overrideprotectedvirtual
37{
38 Super::NativePreConstruct();
41 {
43 }
45 {
47 }
50}

◆ SetAvailable()

void UButtonPromptWidget::SetAvailable ( const bool bValue = true)
94{
95 bAvailable = bValue;
96}
bool bAvailable
Definition ButtonPromptWidget.h:122

◆ SetHasProgress()

void UButtonPromptWidget::SetHasProgress ( const bool bValue)
99{
100 bHasProgressBar = bValue;
102}

◆ SetInputAction()

void UButtonPromptWidget::SetInputAction ( UInputAction * Action)
105{
106 if(Action == nullptr)
107 {
108 return;
109 }
110 if(ButtonIconAction == nullptr){return;}
112 if(InputAction != nullptr)
113 {
114 ButtonIconAction->SetEnhancedInputAction(InputAction);
115 }
116}

◆ SetInputActionFromTable()

void UButtonPromptWidget::SetInputActionFromTable ( const FName & Name)
119{
120 if(ButtonIconAction == nullptr){return;}
121 if(InputActionDT != nullptr)
122 {
123 InputActionRow.DataTable = InputActionDT;
124 InputActionRow.RowName = Name;
125 if(InputActionRow.IsNull()){return;}
126 ButtonIconAction->SetInputAction(InputActionRow);
127 }
128}

◆ SetProgressBarMaterial()

void UButtonPromptWidget::SetProgressBarMaterial ( )
private
69{
70 if(ProgressBarImage != nullptr)
71 {
72 if(bHasProgressBar && ProgressBar != nullptr)
73 {
74 DynamicMaterial = UKismetMaterialLibrary::CreateDynamicMaterialInstance(GetWorld(), ProgressBar);
75 if(DynamicMaterial == nullptr){return;}
76 ProgressBarImage->SetVisibility(ESlateVisibility::Visible);
77 ProgressBarImage->SetBrushFromMaterial(DynamicMaterial);
78 }
79 else
80 {
82 {
83 ProgressBarImage->SetVisibility(ESlateVisibility::Hidden);
84 }
85 else
86 {
87 ProgressBarImage->SetVisibility(ESlateVisibility::Collapsed);
88 }
89 }
90 }
91}
bool bKeepProgressSize
Definition ButtonPromptWidget.h:89
UMaterialInstanceDynamic * DynamicMaterial
Definition ButtonPromptWidget.h:124
class UMaterialInstance * ProgressBar
Definition ButtonPromptWidget.h:73

◆ SetShowText()

void UButtonPromptWidget::SetShowText ( const bool bValue)
131{
132 bShowText = bValue;
133 if(PromptText == nullptr){return;}
134 if(ButtonIconAction != nullptr)
135 {
136 PromptText->SetText(ButtonIconAction->GetDisplayText());
137 }
138 if(bShowText)
139 {
140 PromptText->SetVisibility(ESlateVisibility::Visible);
141 }
142 else
143 {
144 PromptText->SetVisibility(ESlateVisibility::Collapsed);
145 }
146}

◆ SetSize()

void UButtonPromptWidget::SetSize ( const ESize Value)
157{
158 // float Multiplier = 1.0f;
159 Size = Value;
160 switch (Size) {
162 SetSizeValue(DefaultSize / 1.75f); // 29
163 break;
164 case ESize::Small:
165 SetSizeValue(DefaultSize / 1.5f); // 34
166 break;
168 SetSizeValue(DefaultSize / 1.25f); // 41
169 break;
170 case ESize::Medium:
172 break;
174 SetSizeValue(DefaultSize * 1.25f); // 65
175 break;
176 case ESize::Large:
177 SetSizeValue(DefaultSize * 1.5f); // 78
178 break;
180 SetSizeValue(DefaultSize * 1.75); // 91
181 break;
182 }
183 // SetSizeValue(DefaultSize * Multiplier);
184}
@ ExtraLarge
@ MediumLarge
@ SmallMedium
@ ExtraSmall
float DefaultSize
Definition ButtonPromptWidget.h:102
void SetSizeValue(const float Value)
Definition ButtonPromptWidget.cpp:148

◆ SetSizeValue()

void UButtonPromptWidget::SetSizeValue ( const float Value)
149{
150 SizeValue = Value;
151 if(SizeContainer == nullptr){return;}
152 SizeContainer->SetHeightOverride(Value);
153 SizeContainer->SetWidthOverride(Value);
154}
float SizeValue
Definition ButtonPromptWidget.h:98

◆ StartButtonProgress()

void UButtonPromptWidget::StartButtonProgress ( const float Time)

◆ StopButtonProgress()

void UButtonPromptWidget::StopButtonProgress ( )

Member Data Documentation

◆ bAvailable

bool UButtonPromptWidget::bAvailable = true
protected

◆ bHasProgressBar

bool UButtonPromptWidget::bHasProgressBar = false
protected

◆ bKeepProgressSize

bool UButtonPromptWidget::bKeepProgressSize = false

◆ bShowText

bool UButtonPromptWidget::bShowText = false

◆ bUseDataTable

bool UButtonPromptWidget::bUseDataTable = false

◆ bUseInputAction

bool UButtonPromptWidget::bUseInputAction = false

◆ ButtonIconAction

class UCommonActionWidget* UButtonPromptWidget::ButtonIconAction = nullptr
protected

◆ DefaultSize

float UButtonPromptWidget::DefaultSize = 52.0f
protected

◆ DynamicMaterial

UMaterialInstanceDynamic* UButtonPromptWidget::DynamicMaterial = nullptr
protected

◆ InputAction

UInputAction* UButtonPromptWidget::InputAction = nullptr
protected

◆ InputActionDT

class UDataTable* UButtonPromptWidget::InputActionDT
protected

◆ InputActionRow

FDataTableRowHandle UButtonPromptWidget::InputActionRow
protected

◆ OnButtonPressed

FOnButtonPressed UButtonPromptWidget::OnButtonPressed

◆ Progress

float UButtonPromptWidget::Progress = 0.0f

◆ ProgressBar

class UMaterialInstance* UButtonPromptWidget::ProgressBar = nullptr

◆ ProgressBarImage

class UImage* UButtonPromptWidget::ProgressBarImage = nullptr
protected

◆ ProgressIncrementRate

float UButtonPromptWidget::ProgressIncrementRate = 1.0f

◆ ProgressTickTime

float UButtonPromptWidget::ProgressTickTime = 0.01f

◆ ProgressTimerHandle

FTimerHandle UButtonPromptWidget::ProgressTimerHandle
private

◆ PromptText

class UTextBlock* UButtonPromptWidget::PromptText = nullptr
protected

◆ Size

ESize UButtonPromptWidget::Size = ESize::Medium
protected

◆ SizeContainer

class USizeBox* UButtonPromptWidget::SizeContainer = nullptr
protected

◆ SizeValue

float UButtonPromptWidget::SizeValue = 52.0f
protected

The documentation for this class was generated from the following files: