#pragma once
#include "Events.h"
#include "WidgetPath.h"

class IChildWindow;
class SChannelRack;
class SChildWindow;
class SConstraintCanvas;
class SWindow;
class SWidget;

class FMainWindow
{
public:
	void Init();
	TSharedPtr<SChildWindow> CreateChildWindow(FVector2D Size, FString Title, TSharedPtr<IChildWindow> Content, bool IsSingletonWindow = false);
	void FrontChildWindow(TSharedPtr<SChildWindow> ChildWindow);

	TSharedPtr<SWindow> MainWindow;
	TSharedPtr<SConstraintCanvas> MainWindowCanvas;

	TSharedPtr<SChannelRack> GetChannelRack();
private:
	TSharedRef<SDockTab> CreatePlayListTab(const FSpawnTabArgs& Args);
	
	void InitChildWindow();

	void ToggleChildWindow(TSharedPtr<SChildWindow> ChildWindow);
	
	void ToggleChannelRack();
	void ToggleMixer();

	TSharedPtr<SChildWindow> ChannelRackWindow;
	TSharedPtr<SChannelRack> ChannelRack;

	TSharedPtr<SChildWindow> MixerWindow;
	TSharedPtr<FTabManager> TabManager;
};