view LightClone/Source/Window.h @ 51:efd2b1ca5b77

Clean up gui
author koryspansel <koryspansel@bendbroadband.com>
date Tue, 27 Sep 2011 09:42:01 -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__