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 ULTIMA0_MESSAGES_H
23 #define ULTIMA0_MESSAGES_H
24 
25 #include "common/array.h"
26 #include "common/events.h"
27 #include "common/str.h"
28 #include "ultima/ultima0/metaengine.h"
29 
30 namespace Ultima {
31 namespace Ultima0 {
32 
33 class UIElement;
34 
35 struct Message {};
36 
37 struct FocusMessage : public Message {
38  UIElement *_priorView = nullptr;
39  FocusMessage() : Message() {
40  }
41  FocusMessage(UIElement *priorView) : Message(),
42  _priorView(priorView) {
43  }
44 };
45 
46 struct UnfocusMessage : public Message {};
47 struct MouseEnterMessage : public Message {};
48 struct MouseLeaveMessage : public Message {};
49 
50 struct KeypressMessage : public Message, public Common::KeyState {
51  KeypressMessage() : Message() {
52  }
54  Message(), Common::KeyState(ks) {
55  }
56 };
57 
58 struct MouseMessage : public Message {
59  enum Button {
60  MB_LEFT, MB_RIGHT, MB_MIDDLE
61  };
62  Button _button;
63  Common::Point _pos;
64 
65  MouseMessage() : Message(), _button(MB_LEFT) {
66  }
67  MouseMessage(Button btn, const Common::Point &pos) :
68  Message(), _button(btn), _pos(pos) {
69  }
71 };
72 struct MouseDownMessage : public MouseMessage {
74  }
75  MouseDownMessage(Button btn, const Common::Point &pos) :
76  MouseMessage(btn, pos) {
77  }
79  MouseMessage(type, pos) {
80  }
81 };
82 struct MouseUpMessage : public MouseMessage {
84  }
85  MouseUpMessage(Button btn, const Common::Point &pos) :
86  MouseMessage(btn, pos) {
87  }
89  MouseMessage(type, pos) {
90  }
91 };
93 
94 struct GameMessage : public Message {
95  Common::String _name;
96  int _value;
97  Common::String _stringValue;
98 
99  GameMessage() : Message(), _value(-1) {
100  }
101  GameMessage(const Common::String &name) : Message(),
102  _name(name), _value(-1) {
103  }
104  GameMessage(const Common::String &name, int value) : Message(),
105  _name(name), _value(value) {
106  }
107  GameMessage(const Common::String &name, const Common::String &value) :
108  Message(), _name(name), _stringValue(value) {
109  }
110 };
111 
112 struct ValueMessage : public Message {
113  int _value;
114 
115  ValueMessage() : Message(), _value(0) {
116  }
117  ValueMessage(int value) : Message(),
118  _value(value) {
119  }
120 };
121 
122 struct ActionMessage : public Message {
123  int _action;
124  ActionMessage() : Message(), _action(0) {
125  }
126  ActionMessage(int action) : Message(),
127  _action(action) {
128  }
129 };
130 
131 } // namespace Ultima0
132 } // namespace Ultima
133 
134 #endif
Definition: str.h:59
Definition: messages.h:48
EventType
Definition: events.h:49
Definition: messages.h:37
Definition: messages.h:58
Definition: messages.h:46
Definition: detection.h:27
Definition: events.h:75
Definition: messages.h:112
Definition: messages.h:122
Definition: rect.h:144
Definition: messages.h:82
Definition: messages.h:72
Definition: keyboard.h:294
Definition: messages.h:94
Definition: input.h:69
Definition: messages.h:50
Definition: messages.h:47
Definition: messages.h:35