view LightClone/Source/GuiInterface.h @ 41:a986355cca5f

Move Tower structure into Environment
author koryspansel
date Thu, 22 Sep 2011 10:25:35 -0700
parents 3a63df04f3c0
children 48705dc6e568
line wrap: on
line source

/*
 * GuiInterface
 */

#ifndef __GUIINTERFACE_H__
#define __GUIINTERFACE_H__

#include "Core.h"
#include "GuiElement.h"
#include "GuiCursor.h"
#include "InputManager.h"

/*
 * GuiInterface
 */
class GuiInterface : public GuiElement
{
	/*
	 * pInputManager
	 */
	InputManager* pInputManager;

	/*
	 * pCursor
	 */
	GuiCursor* pCursor;

	/*
	 * pDragElement
	 */
	GuiElement* pDragElement;

	/*
	 * nDragButton
	 */
	uint32 nDragButton;

	/*
	 * pCaptureElement
	 */
	GuiElement* pCaptureElement;

	/*
	 * pFocusElement
	 */
	GuiElement* pFocusElement;

public:

	/*
	 * GuiInterface
	 */
	GuiInterface();

	/*
	 * Initialize
	 */
	ErrorCode Initialize(ResourceManager* pResourceManager, InputManager* pInputManager);

	/*
	 * Terminate
	 */
	void Terminate();

	/*
	 * Update
	 */
	void Update(float fElapsed);

	/*
	 * Render
	 */
	void Render(RenderContext& kContext, Camera& kCamera);

	/*
	 * AcquireCursor
	 */
	ErrorCode AcquireCursor(GuiElement* pSource);

	/*
	 * ReleaseCursor
	 */
	void ReleaseCursor();

	/*
	 * IsCursorAcquiredBy
	 */
	bool IsCursorAcquiredBy(GuiElement* pElement) const;

	/*
	 * BeginDrag
	 */
	void BeginDrag(GuiElement* pSource, uint32 nButton);

	/*
	 * EndDrag
	 */
	void EndDrag(GuiElement* pTarget, float fX, float fY);

private:

	/*
	 * Initialize
	 */
	using GuiElement::Initialize;
};

#endif //__GUIINTERFACE_H__