Revision 1 (by (no author), 2006/09/28 22:53:53) Initial import
/// \file boardscreen.h
/// Main include file for main game screen manager

#ifndef BOARDSCREEN_H_INCLUDED
#define BOARDSCREEN_H_INCLUDED

#include <vector>
#include "widgetmanager.h"
#include "boardmanager.h"

class BoardScreen
{
	public: // Types
		enum Mode {
			M_SelectCard,
			M_SelectSpace
		};
		
	public: // Public static variables
		static const int BoardPadding = 5;
		static const int CardSize = 48;
		static const int CardAreaPadding = 3;
		static const int TopMargin = 32;
		static const int CardPadding = 5;
		
	public: // Public variables
		BoardManager* board;
		std::vector<BITMAP*> gfx_cards;
		std::vector<BITMAP*> gfx_objects;
		
		WidgetManager* mainScreen;
		/// "Play Card" button
		Button* playCard;
		
		Board::Pawn* active;
		
		bool running;
		Mode mode;
	
	public: // Public functions
		BoardScreen();
		~BoardScreen();
		void Run();
		
		void InitializeGui();
		void LoadGraphics();
		
		void OnQuit(void* args);
		
		void DrawCard(BITMAP* to, int x, int y, int card);
		void DrawObject(BITMAP* to, int x, int y, int object);
};

class CardButton: public Widget
{
	public: // Public variables
		BoardScreen* board;
		int myCard;
		
	public: // Public functions
		CardButton(BoardScreen* board, int myCard);
		
		void Redraw(RedrawEventArgs* e);
};

class SpaceButton: public Widget
{
	public: // Public variables
		BoardScreen* board;
		int mySpace;
		
	public: // Public functions
		SpaceButton(BoardScreen* board, int mySpace);
		
		void Redraw(RedrawEventArgs* e);
};

class Console: public Widget
{
	public: // Public variables
		BoardScreen* board;
		
	public: // Public functions
		Console(BoardScreen* board);
		
		void Redraw(RedrawEventArgs* e);
};

#endif

// The end