view LightClone/Source/GuiButton.h @ 33:06b151afc8d0

Cleaned up UI art; Completed drag and drop; Centered grid
author koryspansel <koryspansel@bendbroadband.com>
date Wed, 21 Sep 2011 00:50:20 -0700
parents 3a63df04f3c0
children 7ff46a00bcd3
line wrap: on
line source

/*
 * GuiButton
 */

#ifndef __GUIBUTTON_H__
#define __GUIBUTTON_H__

#include "Core.h"
#include "GuiElement.h"

/*
 * GuiButtonState
 */
enum
{
	GuiButtonState_Normal,
	GuiButtonState_Down,
	GuiButtonState_Hover,
	GuiButtonState_Disabled,
	GuiButtonState_Count,
};

/*
 * GuiButton
 */
class GuiButton : public GuiElement
{
public:

	/*
	 * EventClick
	 */
	static const char* EventClick;

private:

	/*
	 * pResourceManager
	 */
	ResourceManager* pResourceManager;

	/*
	 * nState
	 */
	uint32 nState;

	/*
	 * pEffect
	 */
	ID3DXEffect* pEffect;

	/*
	 * pVertexBuffer
	 */
	IDirect3DVertexBuffer9* pVertexBuffer;

	/*
	 * pTexture
	 */
	IDirect3DTexture9* pTexture[GuiButtonState_Count];

	/*
	 * pFont
	 */
	ID3DXFont* pFont;

	/*
	 * kText
	 */
	FixedString<> kText;

public:

	/*
	 * GuiButton
	 */
	GuiButton();

	/*
	 * Initialize
	 */
	virtual ErrorCode Initialize(ResourceManager* pManager);

	/*
	 * Terminate
	 */
	virtual void Terminate();

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

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

	/*
	 * SetTexture
	 */
	ErrorCode SetTexture(uint32 nState, const char* pName, bool bResize = false);

	/*
	 * SetFont
	 */
	ErrorCode SetFont(const char* pName, uint32 nSize, uint32 nWeight = FW_NORMAL);

	/*
	 * SetText
	 */
	void SetText(const char* pText);

	/*
	 * OnMouseEnter
	 */
	virtual void OnMouseEnter();

	/*
	 * OnMouseLeave
	 */
	virtual void OnMouseLeave();

	/*
	 * OnMouseDown
	 */
	virtual void OnMouseDown(uint32 nButton, float fX, float fY);

	/*
	 * OnMouseUp
	 */
	virtual void OnMouseUp(uint32 nButton, float fX, float fY);

	/*
	 * OnMouseMove
	 */
	virtual void OnMouseMove(float fX, float fY);

private:

	/*
	 * SetupVertexBuffer
	 */
	ErrorCode SetupVertexBuffer();
};

#endif //__GUIBUTTON_H__