// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "CurveSequence.h" #include "SCompoundWidget.h" #include "SCheckBox.h" class SSplitter; class SImage; class SChannelRackMidiThumbnail; class FMidiPattern; class FPluginHost; /** * */ class ARONA_API SChannelRackItem : public SCompoundWidget { public: DECLARE_DELEGATE_OneParam(FSetter, float); SLATE_BEGIN_ARGS(SChannelRackItem) { } SLATE_EVENT(FSetter, OnSplliterAPositionChanged) SLATE_EVENT(FSetter, OnSplliterBPositionChanged) SLATE_END_ARGS() /** Constructs this widget with InArgs */ void Construct(const FArguments& InArgs, FPluginHost* InPluginHost); virtual FReply OnMouseButtonUp(const FGeometry& MyGeometry, const FPointerEvent& MouseEvent) override; void SetPattern(FMidiPattern* InPattern); FPluginHost* GetPluginHost() const { return PluginHost; } void SetSplliterASize(float X); void SetSplliterBSize(float X); private: void ShowPluginHostMenu(); void SetPluginHostEnabled(ECheckBoxState CheckBoxState); FReply TogglePluginHostEditor(); void ShowPluginHostChannelInterface(); void DeletePluginHost(); FPluginHost* PluginHost = nullptr; FMidiPattern* Pattern = nullptr; TSharedPtr MidiThumbnail; TSharedPtr Splitter; };