ScummVM API documentation
messages.h
1 /* ScummVM - Graphic Adventure Engine
2  *
3  * ScummVM is the legal property of its developers, whose names
4  * are too numerous to list here. Please refer to the COPYRIGHT
5  * file distributed with this source distribution.
6  *
7  * This program is free software: you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation, either version 3 of the License, or
10  * (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program. If not, see <http://www.gnu.org/licenses/>.
19  *
20  */
21 
22 #ifndef FOOL_MESSAGES_H
23 #define FOOL_MESSAGES_H
24 
25 #include "common/array.h"
26 #include "common/events.h"
27 #include "common/str.h"
28 
29 namespace Fool {
30 
31 class UIElement;
32 
33 struct Message {};
34 
35 struct FocusMessage : public Message {
36  UIElement *_priorView = nullptr;
37  FocusMessage() : Message() {}
38  FocusMessage(UIElement *priorView) : Message(),
39  _priorView(priorView) {}
40 };
41 
42 struct UnfocusMessage : public Message {};
43 
44 struct KeypressMessage : public Message, public Common::KeyState {
45  KeypressMessage() : Message() {}
47  Message(), Common::KeyState(ks) {}
48 };
49 
50 struct MouseMessage : public Message {
51  enum Button { MB_LEFT, MB_RIGHT, MB_MIDDLE };
52  Button _button;
53  Common::Point _pos;
54 
55  MouseMessage() : Message(), _button(MB_LEFT) {}
56  MouseMessage(Button btn, const Common::Point &pos) :
57  Message(), _button(btn), _pos(pos) {}
59 };
60 struct MouseDownMessage : public MouseMessage {
62  MouseDownMessage(Button btn, const Common::Point &pos) :
63  MouseMessage(btn, pos) {}
65  MouseMessage(type, pos) {}
66 };
67 struct MouseUpMessage : public MouseMessage {
69  MouseUpMessage(Button btn, const Common::Point &pos) :
70  MouseMessage(btn, pos) {}
72  MouseMessage(type, pos) {}
73 };
74 
75 struct GameMessage : public Message {
76  Common::String _name;
77  int _value;
78  Common::String _stringValue;
79 
80  GameMessage() : Message(), _value(-1) {}
81  GameMessage(const Common::String &name) : Message(),
82  _name(name), _value(-1) {}
83  GameMessage(const Common::String &name, int value) : Message(),
84  _name(name), _value(value) {}
85  GameMessage(const Common::String &name, const Common::String &value) :
86  Message(), _name(name), _stringValue(value) {}
87 };
88 
89 struct ValueMessage : public Message {
90  int _value;
91 
92  ValueMessage() : Message(), _value(0) {}
93  ValueMessage(int value) : Message(),
94  _value(value) {}
95 };
96 
97 struct ActionMessage : public Message {
98  int _action;
99  ActionMessage() : Message(), _action(0) {
100  }
101  ActionMessage(int action) : Message(),
102  _action(action) {
103  }
104 };
105 
106 } // namespace Fool
107 
108 #endif
Definition: messages.h:50
Definition: str.h:59
Definition: messages.h:44
EventType
Definition: events.h:49
Definition: messages.h:60
Definition: messages.h:97
Definition: messages.h:75
Definition: messages.h:42
Definition: messages.h:33
Definition: rect.h:144
Definition: detection.h:27
Definition: keyboard.h:294
Definition: messages.h:67
Definition: input.h:69
Definition: messages.h:89
Definition: messages.h:35