--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/src/GameMessageView.hh Tue Jan 13 23:15:47 2009 +0200
@@ -0,0 +1,42 @@
+#ifndef GRAPHICS_INFO_TEXT_HH
+#define GRAPHICS_INFO_TEXT_HH
+
+#include "GraphicsPointer.hh"
+#include "Types.hh"
+
+#include <string>
+#include <vector>
+#include <ClanLib/display.h>
+
+struct GameMessage {
+ CL_Color color;
+ std::string message;
+
+ GameMessage (CL_Color color, std::string message) : color(color), message(message) { }
+ GameMessage (const GameMessage ©) : color(copy.color), message(copy.message) { }
+ GameMessage &operator= (const GameMessage ©) { color = copy.color; message = copy.message; return *this; }
+};
+
+class GameMessageView {
+ protected:
+ PixelArea area;
+ std::vector<GameMessage> messages;
+
+ public:
+ /**
+ * Define the area where messages are drawn
+ */
+ GameMessageView (PixelArea area);
+
+ /**
+ * Add a message to the list of messages displayed
+ */
+ void add_message (CL_Color color, std::string message);
+
+ /**
+ * Draw as many messages as fits
+ */
+ void draw (Graphics *g);
+};
+
+#endif