Files
UnrealEngineUWP/Engine/Source/Developer/LogVisualizer/Private/STimelinesContainer.h
sebastian kowalczyk 49aba11ae5 Optimizations to Visual Logger edytor tool:
Much faster filters due to Async framework, it's paraller now,
Optimizations to items rendered on sequencer,
Optimization to graphs rendered on canvas,
Changed as much as possible to event driven flot, to update data only when needed.

[CL 2670708 by sebastian kowalczyk in Main branch]
2015-08-27 05:21:28 -04:00

77 lines
2.7 KiB
C++

// Copyright 1998-2015 Epic Games, Inc. All Rights Reserved.
#pragma once
/**
* A list of filters currently applied to an asset view.
*/
class STimelinesContainer : public SCompoundWidget
{
public:
SLATE_BEGIN_ARGS(STimelinesContainer){}
SLATE_END_ARGS()
virtual ~STimelinesContainer();
virtual FReply OnMouseButtonDown(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseMove(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override;
virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
/** Constructs this widget with InArgs */
void Construct(const FArguments& InArgs, TSharedRef<class SVisualLoggerView>, TSharedRef<FVisualLoggerTimeSliderController> TimeSliderController);
TSharedRef<SWidget> GetRightClickMenuContent();
void OnTimelineSelected(TSharedPtr<class STimelinesBar> Widget);
void ChangeSelection(class TSharedPtr<class STimeline>, const FPointerEvent& MouseEvent);
virtual bool SupportsKeyboardFocus() const override { return true; }
void OnFiltersChanged();
void OnSearchChanged(const FText& Filter);
void OnFiltersSearchChanged(const FText& Filter);
void ResetData();
void GenerateReport();
/**
* Selects a node in the tree
*
* @param AffectedNode The node to select
* @param bSelect Whether or not to select
* @param bDeselectOtherNodes Whether or not to deselect all other nodes
*/
void SetSelectionState(TSharedPtr<class STimeline> AffectedNode, bool bSelect, bool bDeselectOtherNodes = true);
/**
* @return All currently selected nodes
*/
const TArray< TSharedPtr<class STimeline> >& GetSelectedNodes() const { return CachedSelectedTimelines; }
const TArray< TSharedPtr<class STimeline> >& GetAllNodes() const { return TimelineItems; }
/**
* Returns whether or not a node is selected
*
* @param Node The node to check for selection
* @return true if the node is selected
*/
bool IsNodeSelected(TSharedPtr<class STimeline> Node) const;
protected:
void OnNewRowHandler(const FVisualLoggerDBRow& DBRow);
void OnNewItemHandler(const FVisualLoggerDBRow& BDRow, int32 ItemIndex);
void OnObjectSelectionChanged(const TArray<FName>& RowNames);
void OnRowChangedVisibility(const FName&);
protected:
TSharedPtr<SVerticalBox> ContainingBorder;
TSharedPtr<class FVisualLoggerTimeSliderController> TimeSliderController;
TSharedPtr<class SVisualLoggerView> VisualLoggerView;
TArray<TSharedPtr<class STimeline> > TimelineItems;
TArray< TSharedPtr<class STimeline> > CachedSelectedTimelines;
float CachedMinTime, CachedMaxTime;
};