--- /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