
#include "sbox/ToolWindowManager/ToolWindowManager.h"

native enum ToolWindowManager::AreaReferenceType is Editor.DockManager.Area;
native enum ToolWindowManager::ToolWindowProperty is Editor.DockManager.DockProperty;

native class ToolWindowManager as Native.CToolWindowManager : QWidget
{
	static CToolWindowManager Create( QWidget parent, Editor.DockManager dockmanager ); [new]

	bool IsOpen( QWidget window );
	void hideToolWindow( QWidget window );
	void closeToolWindow( QWidget window );
	void raiseToolWindow( QWidget window );

	inline void AddWindowToArea( QWidget parent, QWidget window, Editor.DockManager.Area area, Editor.DockManager.DockProperty property, float pct )
	{
		this->addToolWindow( parent, window, area, property, pct );
	}

	QString saveStateJson();
	void loadStateJson( QString json );
	bool clear( bool deleteWidgets );
}


managed class Editor.DockManager
{
	QWidget OnCreateDock( QString name, QString managedType );
	void OnRightClickTab( QWidget tabWidget );
}