src/GameMessageView.hh
changeset 393 5dd4d782cf3a
child 394 82def222fe7d
equal deleted inserted replaced
392:6c4dc68360eb 393:5dd4d782cf3a
       
     1 #ifndef GRAPHICS_INFO_TEXT_HH
       
     2 #define GRAPHICS_INFO_TEXT_HH
       
     3 
       
     4 #include "GraphicsPointer.hh"
       
     5 #include "Types.hh"
       
     6 
       
     7 #include <string>
       
     8 #include <vector>
       
     9 #include <ClanLib/display.h>
       
    10 
       
    11 struct GameMessage {
       
    12     CL_Color color;
       
    13     std::string message;
       
    14 
       
    15     GameMessage (CL_Color color, std::string message) : color(color), message(message) { }
       
    16     GameMessage (const GameMessage &copy) : color(copy.color), message(copy.message) { }
       
    17     GameMessage &operator= (const GameMessage &copy) { color = copy.color; message = copy.message; return *this; }
       
    18 };
       
    19 
       
    20 class GameMessageView {
       
    21     protected:
       
    22         PixelArea area;
       
    23         std::vector<GameMessage> messages;
       
    24 
       
    25     public:
       
    26         /**
       
    27          * Define the area where messages are drawn
       
    28          */
       
    29         GameMessageView (PixelArea area);
       
    30 
       
    31         /**
       
    32          * Add a message to the list of messages displayed
       
    33          */
       
    34         void add_message (CL_Color color, std::string message);
       
    35         
       
    36         /**
       
    37          * Draw as many messages as fits
       
    38          */
       
    39         void draw (Graphics *g);
       
    40 };
       
    41 
       
    42 #endif