src/GameMessageView.hh
author Tero Marttila <terom@fixme.fi>
Tue, 13 Jan 2009 23:54:47 +0200
changeset 394 82def222fe7d
parent 393 5dd4d782cf3a
permissions -rw-r--r--
try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
393
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#ifndef GRAPHICS_INFO_TEXT_HH
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
#define GRAPHICS_INFO_TEXT_HH
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
#include "GraphicsPointer.hh"
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
#include "Types.hh"
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
#include <string>
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
#include <vector>
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
#include <ClanLib/display.h>
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
struct GameMessage {
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    CL_Color color;
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    std::string message;
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
    GameMessage (CL_Color color, std::string message) : color(color), message(message) { }
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
    GameMessage (const GameMessage &copy) : color(copy.color), message(copy.message) { }
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    GameMessage &operator= (const GameMessage &copy) { color = copy.color; message = copy.message; return *this; }
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
};
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
class GameMessageView {
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    protected:
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
        PixelArea area;
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
        std::vector<GameMessage> messages;
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
    public:
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
        /**
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
         * Define the area where messages are drawn
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
         */
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
        GameMessageView (PixelArea area);
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
        /**
394
82def222fe7d try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
Tero Marttila <terom@fixme.fi>
parents: 393
diff changeset
    32
         * Update draw area
82def222fe7d try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
Tero Marttila <terom@fixme.fi>
parents: 393
diff changeset
    33
         */
82def222fe7d try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
Tero Marttila <terom@fixme.fi>
parents: 393
diff changeset
    34
        void on_resize (PixelArea new_area) { this->area = new_area; }
82def222fe7d try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
Tero Marttila <terom@fixme.fi>
parents: 393
diff changeset
    35
82def222fe7d try and implement resize in a sane way, but changeing from windowed mode to fullscreen mode is now kind of weird
Tero Marttila <terom@fixme.fi>
parents: 393
diff changeset
    36
        /**
393
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
         * Add a message to the list of messages displayed
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
         */
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    39
        void add_message (CL_Color color, std::string message);
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    40
        
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    41
        /**
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    42
         * Draw as many messages as fits
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    43
         */
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    44
        void draw (Graphics *g);
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    45
};
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    46
5dd4d782cf3a a basic implementation of game messages, plus some weird GameStateEvent stuff
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    47
#endif