src/Graphics/MessageView.hh
branchnew_graphics
changeset 411 106aaf6eadfe
parent 394 82def222fe7d
child 412 721c60072091
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Graphics/MessageView.hh	Wed Jan 21 03:33:35 2009 +0200
@@ -0,0 +1,48 @@
+#ifndef GRAPHICS_MESSAGE_VIEW_HH
+#define GRAPHICS_MESSAGE_VIEW_HH
+
+#include "View.hh"
+
+#include <ClanLib/display.h>
+#include <string>
+#include <vector>
+
+namespace graphics
+{
+
+/**
+ * Offset between consecutive lines
+ */
+const PixelDimension MESSAGE_VIEW_LINE_OFFSET = 5;
+
+struct Message {
+    CL_Color color;
+    std::string message;
+
+    Message (CL_Color color, std::string message) : color(color), message(message) { }
+};
+
+class MessageView : public View {
+protected:
+    std::vector<Message> messages;
+
+public:
+    /**
+     * Define the area where messages are drawn
+     */
+    MessageView (const 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
+     */
+    virtual void draw (Display *display);
+};
+
+}
+
+#endif