terom@411: #ifndef GRAPHICS_MESSAGE_VIEW_HH terom@411: #define GRAPHICS_MESSAGE_VIEW_HH terom@393: terom@411: #include "View.hh" terom@393: terom@411: #include terom@393: #include terom@393: #include terom@393: terom@411: namespace graphics terom@411: { terom@411: terom@411: /** terom@411: * Offset between consecutive lines terom@411: */ terom@411: const PixelDimension MESSAGE_VIEW_LINE_OFFSET = 5; terom@411: terom@411: struct Message { terom@393: CL_Color color; terom@393: std::string message; terom@393: terom@411: Message (CL_Color color, std::string message) : color(color), message(message) { } terom@393: }; terom@393: terom@411: class MessageView : public View { terom@411: protected: terom@411: std::vector messages; terom@393: terom@411: public: terom@411: /** terom@411: * Define the area where messages are drawn terom@411: */ terom@411: MessageView (const PixelArea &area); terom@394: terom@411: /** terom@411: * Add a message to the list of messages displayed terom@411: */ terom@411: void add_message (CL_Color color, std::string message); terom@411: terom@411: /** terom@411: * Draw as many messages as fits terom@411: */ terom@412: virtual void draw (Display &display); terom@393: }; terom@393: terom@411: } terom@411: terom@393: #endif