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
30namespace Ultima {
31namespace Ultima0 {
32
33class UIElement;
34
35struct Message {};
36
37struct FocusMessage : public Message {
38 UIElement *_priorView = nullptr;
39 FocusMessage() : Message() {
40 }
41 FocusMessage(UIElement *priorView) : Message(),
42 _priorView(priorView) {
43 }
44};
45
46struct UnfocusMessage : public Message {};
47struct MouseEnterMessage : public Message {};
48struct MouseLeaveMessage : public Message {};
49
50struct KeypressMessage : public Message, public Common::KeyState {
52 }
55 }
56};
57
58struct 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};
74 }
75 MouseDownMessage(Button btn, const Common::Point &pos) :
76 MouseMessage(btn, pos) {
77 }
79 MouseMessage(type, pos) {
80 }
81};
84 }
85 MouseUpMessage(Button btn, const Common::Point &pos) :
86 MouseMessage(btn, pos) {
87 }
89 MouseMessage(type, pos) {
90 }
91};
93
94struct 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
112struct ValueMessage : public Message {
113 int _value;
114
115 ValueMessage() : Message(), _value(0) {
116 }
117 ValueMessage(int value) : Message(),
118 _value(value) {
119 }
120};
121
122struct 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: input.h:69
Definition: str.h:59
Definition: events.h:75
EventType
Definition: events.h:49
Definition: keyboard.h:294
Definition: rect.h:144
Definition: messages.h:122
Definition: messages.h:37
Definition: messages.h:94
Definition: messages.h:50
Definition: messages.h:35
Definition: messages.h:72
Definition: messages.h:47
Definition: messages.h:48
Definition: messages.h:58
Definition: messages.h:82
Definition: messages.h:46
Definition: messages.h:112