view LightClone/Source/Window.h @ 17:4951acfe92fc

Reworking GUI system
author koryspansel <koryspansel@bendbroadband.com>
date Wed, 14 Sep 2011 13:33:22 -0700
parents 968341ab1fb2
children
line wrap: on
line source

/*
 * Window
 */

#ifndef __WINDOW_H__
#define __WINDOW_H__

#include "Core.h"

/*
 * Window
 */
class Window;

/*
 * WindowCallback
 */
class WindowCallback
{
public:

	/*
	 * ~WindowCallback
	 */
	virtual ~WindowCallback()
	{
	}

	/*
	 * OnMessage
	 */
	virtual int32 OnMessage(Window* pWindow, uint32 nMessage, WPARAM wParam, LPARAM lParam) = 0;
};

/*
 * Window
 */
class Window
{
	/*
	 * pInstance
	 */
	static Window* pInstance;

	/*
	 * kWindow
	 */
	HWND kWindow;

	/*
	 * pCallback
	 */
	WindowCallback* pCallback;

public:

	/*
	 * Window
	 */
	Window(WindowCallback* pHandler);

	/*
	 * Initialize
	 */
	ErrorCode Initialize();

	/* 
	 * Terminate
	 */
	void Terminate();

	/*
	 * GetHandle
	 */
	HWND GetHandle() const;

private:

	/*
	 * MessageRouter
	 */
	static LRESULT CALLBACK MessageRouter(HWND hWnd, UINT nMessage, WPARAM wParam, LPARAM lParam);
};

#endif //__WINDOW_H__