51 lines
1.6 KiB
C++
51 lines
1.6 KiB
C++
// Fill out your copyright notice in the Description page of Project Settings.
|
|
|
|
#pragma once
|
|
|
|
#include "CoreMinimal.h"
|
|
#include "SCompoundWidget.h"
|
|
#include "SPlayListTrackHead.h"
|
|
#include "Midi/MidiType.h"
|
|
#include "Midi/Time/TimePos.h"
|
|
#include "UI/Widget/IChildWindow.h"
|
|
|
|
class SPlayListTimeLine;
|
|
class SPlayListPanel;
|
|
class SScrollBox;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
class ARONA_API SPlayList : public SCompoundWidget, public IChildWindow
|
|
{
|
|
public:
|
|
SLATE_BEGIN_ARGS(SPlayList)
|
|
{}
|
|
SLATE_END_ARGS()
|
|
|
|
/** Constructs this widget with InArgs */
|
|
void Construct(const FArguments& InArgs);
|
|
virtual void Tick(const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime) override;
|
|
virtual FReply OnKeyDown(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
|
|
virtual FReply OnKeyUp(const FGeometry& MyGeometry, const FKeyEvent& InKeyEvent) override;
|
|
virtual FReply OnMouseWheel(const FGeometry& MyGeometry, const FPointerEvent& InMouseEvent) override;
|
|
virtual bool SupportsKeyboardFocus() const override { return true; }
|
|
|
|
virtual TSharedRef<SWidget> GetWidget() override { return AsShared(); }
|
|
virtual TSharedPtr<SWidget> GetFocusWidget() override { return GetWidget(); }
|
|
|
|
AudioFrame GetScalerLevel();
|
|
TRange<AudioFrame> GetFrameRange() const { return FrameRange; }
|
|
|
|
TRange<AudioFrame> FrameRange;
|
|
TRange<AudioFrame> TargetFrameRange;
|
|
AudioFrame ExternRange = 100;
|
|
private:
|
|
TSharedPtr<SScrollBox> ScrollBox;
|
|
TSharedPtr<SPlayListPanel> PlayListPanel;
|
|
TSharedPtr<SPlayListTimeLine> TimeLine;
|
|
|
|
bool Zooming = false;
|
|
bool HorizonScrolling = false;
|
|
};
|