//
// Tools_Overlay_DVS.h
//
// Created by Jake Turner - 22/07/2007
// 
// Copyright (C) 2007 Rebellion, All Rights Reserved.
//

#ifdef ASURA_USE_PRAGMA_ONCE
    #pragma once
#endif

#ifndef __TOOLS_OVERLAY_DVS__
#define __TOOLS_OVERLAY_DVS__

#if defined ASURA_DEBUG_VARIABLE_SYSTEM

#include "Interface/Asura_Tree_Dialog.h"

class Tools_Overlay_DVS
{
public:
	static void Initialise();
	static void Shutdown();
	static void Update();
	static void Render(void);

	static void ToggleOverlay();
	static bool IsOpen() { return s_bIsOpen; }

	static void RefreshOverlay(void);	

	static void CatchCommandOutputCallback( const Asura_UnicodeChar* wszOutput );

private:

	static void	Close();
	static void HandleKeyboard();
	static void ChangeValue( const float fScale );

	static void	CreateOverlay();
	static Asura_Vector_2 s_xPosition;
	static Asura_Vector_2 s_xUserSetTreeSize;
	static bool			  s_bIsOpen;
	static bool			  s_bUpdated;	

	static Asura_TreeDialog_Tree s_xDVSVarsTree;
	static Asura_Tree_Dialog* s_pxTreeDialog;
	static bool s_bSelectionChanged;
	static Asura_TreeDialog_Item* s_pxSelectedVariable;
	static float s_fFloatIncrement;
	static u_int s_uIntIncrement;

	static Asura_UnicodeChar* s_wszCommandOutputBuffer;
	static u_int s_uCommandOutputBufferLength;
};

#endif //#if defined ASURA_DEBUG_VARIABLE_SYSTEM

#endif //__TOOLS_OVERLAY_DVS__
