25#define LOCTEXT_NAMESPACE "SMultipleOptionTable"
30template<
typename OptionType>
55 Option = InArgs._Option;
56 OnCheckStateChanged = InArgs._OnCheckStateChanged;
57 IsChecked = InArgs._IsChecked;
58 OnGenerateWidget= InArgs._OnGenerateWidget;
72 if (ColumnName ==
"IsSelected")
75 .IsChecked(
this, &SOptionTableRow::HandleCheckBoxIsChecked)
76 .OnCheckStateChanged(
this, &SOptionTableRow::HandleCheckBoxCheckStateChanged)
78 OnGenerateWidget.Execute(Option)
89 OnCheckStateChanged.Execute(NewState);
95 return IsChecked.
Get();
108template<
typename OptionType>
152 void HandleAllHyperlinkNavigate();
155 void HandleNoneHyperlinkNavigate();
176 OnPreBatchSelect = InArgs._OnPreBatchSelect;
177 OnPostBatchSelect = InArgs._OnPostBatchSelect;
178 OnGenerateOptionWidget = InArgs._OnGenerateOptionWidget;
179 OnOptionSelectionChanged = InArgs._OnOptionSelectionChanged;
180 IsOptionSelected = InArgs._IsOptionSelected;
181 ListHeight = InArgs._ListHeight;
189 .Padding(0.0f, 2.0f, 0.0f, 0.0f)
192 .HeightOverride(ListHeight)
205 .ListItemsSource(Options)
206 .OnGenerateRow(
this, &SMultipleOptionTable::HandleOptionListViewGenerateRow)
213 .Padding(0.0f, 6.0f, 0.0f, 4.0f)
229 .Text(
LOCTEXT(
"SelectLabel",
"Select:"))
238 .OnNavigate(
this, &SMultipleOptionTable::HandleAllHyperlinkNavigate)
239 .Text(
LOCTEXT(
"AllHyperlinkLabel",
"All"))
240 .ToolTipText(
LOCTEXT(
"AllHyperlinkToolTip",
"Select all options."))
241 .Visibility(
this, &SMultipleOptionTable::HandleHyperlinkVisibility)
249 .OnNavigate(
this, &SMultipleOptionTable::HandleNoneHyperlinkNavigate)
250 .Text(
LOCTEXT(
"NoneHyperlinkLabel",
"None"))
251 .ToolTipText(
LOCTEXT(
"NoneHyperlinkToolTip",
"Deselect all."))
252 .Visibility(
this, &SMultipleOptionTable::HandleHyperlinkVisibility)
258template<
typename OptionType>
264template<
typename OptionType>
269 .OwnerTableView(OwnerTableView)
270 .OnCheckStateChanged(
this, &SMultipleOptionTable::HandleCheckBoxCheckStateChanged,
Option)
271 .IsChecked(
this, &SMultipleOptionTable::HandleCheckBoxIsChecked,
Option)
272 .OnGenerateWidget(
this, &SMultipleOptionTable::GenerateWidgetForOption);
275template<
typename OptionType>
278 return OnGenerateOptionWidget.Execute(
Option);
281template<
typename OptionType>
287template<
typename OptionType>
293template<
typename OptionType>
296 OnPreBatchSelect.ExecuteIfBound();
301 OnPostBatchSelect.ExecuteIfBound();
304template<
typename OptionType>
307 OnPreBatchSelect.ExecuteIfBound();
312 OnPostBatchSelect.ExecuteIfBound();
315template<
typename OptionType>
318 if (Options->
Num() > 1)
326#undef LOCTEXT_NAMESPACE
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SAssignNew(ExposeAs, WidgetType,...)
Definition DeclarativeSyntaxSupport.h:41
#define SNew(WidgetType,...)
Definition DeclarativeSyntaxSupport.h:37
#define SLATE_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#define SLATE_EVENT(DelegateName, EventName)
Definition DeclarativeSyntaxSupport.h:458
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define LOCTEXT(InKey, InTextLiteral)
Definition Internationalization.h:295
ECheckBoxState
Definition SlateTypes.h:65
Definition NameTypes.h:617
Definition ITableRow.h:15
Definition SCheckBox.h:30
Definition SBoxPanel.h:171
static FSlot::FSlotArguments Slot()
Definition SBoxPanel.h:272
Definition SHyperlink.h:29
Definition SListView.h:66
Definition STableRow.h:1316
Definition SMultipleOptionTable.h:110
SLATE_BEGIN_ARGS(SMultipleOptionTable< OptionType >)
Definition SMultipleOptionTable.h:123
DECLARE_DELEGATE_RetVal_OneParam(bool, FIsOptionSelected, OptionType)
DECLARE_DELEGATE_TwoParams(FOnOptionSelectionChanged, bool, OptionType)
DECLARE_DELEGATE(FOnPostBatchSelect)
void Construct(const FArguments &InArgs, const TArray< OptionType > *const InOptions)
Definition SMultipleOptionTable.h:173
void RequestTableRefresh()
Definition SMultipleOptionTable.h:259
DECLARE_DELEGATE(FOnPreBatchSelect)
TSlateDelegates< OptionType >::FOnGenerateWidget FOnGenerateOptionWidget
Definition SMultipleOptionTable.h:112
Definition SMultipleOptionTable.h:33
virtual TSharedRef< SWidget > GenerateWidgetForColumn(const FName &ColumnName) override
Definition SMultipleOptionTable.h:70
TSlateDelegates< OptionType >::FOnGenerateWidget FOnGenerateWidget
Definition SMultipleOptionTable.h:35
TSharedPtr< SCheckBox > CheckBox
Definition SMultipleOptionTable.h:99
STableRow< TSharedPtr< OptionType > >::FArguments FOptionTableRowArgs
Definition SMultipleOptionTable.h:36
SLATE_BEGIN_ARGS(SOptionTableRow)
Definition SMultipleOptionTable.h:38
void Construct(const FArguments &InArgs)
Definition SMultipleOptionTable.h:53
Definition SSeparator.h:18
Definition STableRow.h:87
Definition STableViewBase.h:110
virtual SLATE_API void RequestListRefresh()
Definition STableViewBase.cpp:837
Definition STextBlock.h:45
Definition SBoxPanel.h:322
static FSlot::FSlotArguments Slot()
Definition SBoxPanel.h:424
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition Attribute.h:17
const ObjectType & Get() const
Definition Attribute.h:241
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SlateDelegates.h:134
@ None
Definition ITypedTableView.h:18
Definition Visibility.h:12
static SLATECORE_API const EVisibility Visible
Definition Visibility.h:14
static SLATECORE_API const EVisibility Collapsed
Definition Visibility.h:17
Definition SlateStructs.h:13