123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #pragma once
- #include "Widgets/Views/STableRow.h"
- #include "Widgets/Input/SSearchBox.h"
- #include "Misc/TextFilter.h"
- typedef TTextFilter< const FString& > StringFilter;
- class AKAUDIO_API SAkItemBoolProperties : public SCompoundWidget
- {
- public:
- typedef TSlateDelegates< TSharedPtr< FString > >::FOnSelectionChanged FOnSelectionChanged;
- public:
- SLATE_BEGIN_ARGS(SAkItemBoolProperties)
- : _FocusSearchBoxWhenOpened(false)
- , _SelectionMode( ESelectionMode::Multi )
- {}
-
- SLATE_NAMED_SLOT( FArguments, SearchContent )
-
- SLATE_ARGUMENT( bool, FocusSearchBoxWhenOpened )
-
- SLATE_ARGUMENT( ESelectionMode::Type, SelectionMode )
-
-
- SLATE_EVENT(FOnDragDetected, OnDragDetected)
-
- SLATE_EVENT(FOnSelectionChanged, OnSelectionChanged)
- SLATE_END_ARGS( )
- void Construct(const FArguments& InArgs);
- SAkItemBoolProperties(void);
- ~SAkItemBoolProperties();
-
- const TArray<TSharedPtr<FString>> GetSelectedProperties() const;
- const FString GetSearchText() const;
- const void SetSearchText(const FString& newText);
- private:
-
- TSharedPtr< SListView< TSharedPtr<FString>> > ListViewPtr;
-
- TSharedPtr< SSearchBox > SearchBoxPtr;
-
- TSharedPtr<StringFilter> SearchBoxFilter;
-
- TArray< TSharedPtr<FString> > PropertiesList;
-
- FOnDragDetected OnDragDetected;
-
-
- FOnSelectionChanged OnSelectionChanged;
- private:
-
- EActiveTimerReturnType SetFocusPostConstruct(double InCurrentTime, float InDeltaTime);
-
- TSharedRef<ITableRow> GenerateRow( TSharedPtr<FString> ItemProperty, const TSharedRef<STableViewBase>& OwnerTable );
-
- FReply HandleOnDragDetected(const FGeometry& Geometry, const FPointerEvent& MouseEvent);
-
- void PopulateSearchStrings( const FString& PropertyName, OUT TArray< FString >& OutSearchStrings ) const;
- void FilterUpdated();
-
- void ListSelectionChanged( TSharedPtr< FString > ItemProperty, ESelectInfo::Type SelectInfo );
- };
|