src/GameMessageView.hh
changeset 393 5dd4d782cf3a
child 394 82def222fe7d
--- /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 &copy) : color(copy.color), message(copy.message) { }
+    GameMessage &operator= (const GameMessage &copy) { 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