src/GameMessageView.hh
branchnew_graphics
changeset 411 106aaf6eadfe
parent 410 41fd46cffc52
child 412 721c60072091
equal deleted inserted replaced
410:41fd46cffc52 411:106aaf6eadfe
     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          * Update draw area
       
    33          */
       
    34         void on_resize (PixelArea new_area) { this->area = new_area; }
       
    35 
       
    36         /**
       
    37          * Add a message to the list of messages displayed
       
    38          */
       
    39         void add_message (CL_Color color, std::string message);
       
    40         
       
    41         /**
       
    42          * Draw as many messages as fits
       
    43          */
       
    44         void draw (Graphics *g);
       
    45 };
       
    46 
       
    47 #endif