Live Config
Loading...
Searching...
No Matches
SLiveConfigPropertyCombo.h
1// Copyright (c) 2026 Nicholas Arthur
2// Licensed under the MIT License
3
4#pragma once
5
6#include "CoreMinimal.h"
7#include "SLiveConfigPropertyPin.h"
8#include "Widgets/SCompoundWidget.h"
9
16class SLiveConfigPropertyCombo : public SCompoundWidget
17{
18 SLATE_DECLARE_WIDGET(SLiveConfigPropertyCombo, SCompoundWidget);
19
20public:
22 DECLARE_DELEGATE_OneParam(FOnPropertyChanged, FLiveConfigProperty)
23
24 SLATE_BEGIN_ARGS(SLiveConfigPropertyCombo) { }
25 SLATE_ARGUMENT(bool, ReadOnly)
26
27 SLATE_ATTRIBUTE(FLiveConfigProperty, Property)
28 SLATE_ATTRIBUTE(TOptional<ELiveConfigPropertyType>, FilterType)
29 SLATE_ATTRIBUTE(UScriptStruct*, StructFilter)
30
31 SLATE_EVENT(FOnPropertyChanged, OnPropertyChanged)
32
33 SLATE_END_ARGS()
34
35
36 void Construct(const FArguments& InArgs);
37 virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
38 virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
39protected:
40 bool ShowClearButton() const;
41 void OnPropertySelected(FLiveConfigProperty Property);
42
43 TSharedRef<SWidget> OnGetMenuContent();
44 void OnMenuOpenChanged(bool bOpen);
45
46 TSharedPtr<SWidget> OnGetContextMenuContent();
47 FReply OnEditPressed();
48 void OnCopyProperty();
49 void OnPasteProperty();
50 bool CanPasteProperty() const;
51 void OnClearProperty();
52 FText GetChipText() const;
53
54 FOnPropertyChanged OnPropertyChanged;
55 TSlateAttribute<FLiveConfigProperty> RowNameAttribute;
56 TSlateAttribute<TOptional<ELiveConfigPropertyType>> FilterTypeAttribute;
57 TSlateAttribute<UScriptStruct*> StructFilterAttribute;
58 TSharedPtr<SComboButton> ComboButton;
59 TSharedPtr<SLiveConfigPropertyPicker> PropertyPicker;
60 TSharedPtr<SLiveConfigPropertyChip> Chip;
61
62};
Definition SLiveConfigPropertyChip.h:13
Definition SLiveConfigPropertyCombo.h:17
void Construct(const FArguments &InArgs)
Definition LiveConfigPropertyCombo.cpp:34
Definition SLiveConfigPropertyPicker.h:13
Definition LiveConfigPropertyName.h:14