25 #include "common/array.h" 26 #include "common/stack.h" 27 #include "got/gfx/gfx_surface.h" 28 #include "got/messages.h" 29 #include "graphics/screen.h" 34 #define FRAME_DELAY (1000 / FRAME_RATE) 36 using Gfx::GfxSurface;
62 void setBorderSize(
size_t borderSize);
63 size_t borderSize()
const {
67 return _bounds.
width();
69 int16 height()
const {
88 bool _needsRedraw =
true;
99 return _timeoutCtr != 0;
112 virtual void timeout();
119 virtual void drawElements();
147 virtual void close();
152 virtual void replaceView(
UIElement *ui,
bool replaceAllViews =
false,
bool fadeOutIn =
false);
153 virtual void replaceView(
const Common::String &name,
bool replaceAllViews =
false,
bool fadeOutIn =
false);
168 int getRandomNumber(
int minNumber,
int maxNumber);
169 int getRandomNumber(
int maxNumber);
225 void stopTextToSpeech();
230 return msgMouseMove(msg);
233 #define MESSAGE(NAME) \ 235 virtual bool msg##NAME(const NAME##Message &e) { \ 236 for (Common::Array<UIElement *>::iterator it = _children.begin(); \ 237 it != _children.end(); ++it) { \ 238 if ((*it)->msg##NAME(e)) \ 245 bool send(const Common::String &viewName, const NAME##Message &msg) { \ 246 UIElement *view = UIElement::findViewGlobally(viewName); \ 248 return view->msg##NAME(msg); \ 250 bool send(const NAME##Message &msg) { \ 251 return msg##NAME(msg); \ 283 int actionToKeyFlag(
int action)
const;
284 void rotatePalette();
294 void processDemoEvent(byte ev);
300 virtual bool shouldQuit()
const = 0;
305 #define MESSAGE(NAME) \ 306 bool msg##NAME(const NAME##Message &e) override { \ 307 return !_views.empty() ? focusedView()->msg##NAME(e) : false; \ 323 virtual bool isDemo()
const = 0;
333 void replaceView(
UIElement *ui,
bool replaceAllViews =
false,
bool fadeOutIn =
false)
override;
334 void replaceView(
const Common::String &name,
bool replaceAllViews =
false,
bool fadeOutIn =
false)
override;
356 return _views.empty() ? nullptr : _views.top();
363 return _views.size() < 2 ? nullptr : _views[_views.size() - 2];
370 return _views.empty() ? nullptr : _views[0];
383 return isPresent(
"Combat");
396 void drawElements()
override;
407 return !_views.empty() ? focusedView()->tick() :
false;
414 focusedView()->close();
const Common::String & getName() const
Definition: events.h:188
UIElement * priorView() const
Definition: events.h:362
Graphics::Screen * getScreen() const
Definition: events.h:389
UIElement * firstView() const
Definition: events.h:369
virtual void setBounds(const Common::Rect &r)
Definition: events.h:174
void cancelDelay()
Definition: events.h:105
bool isInCombat() const
Definition: events.h:382
T width() const
Definition: rect.h:217
bool isDelayActive() const
Definition: events.h:98
void draw() override
Definition: events.h:401
Definition: messages.h:49
T height() const
Definition: rect.h:218
Common::Rect getBounds() const
Definition: events.h:181
Definition: gfx_surface.h:30
bool needsRedraw() const
Definition: events.h:134
UIElement * focusedView() const
Definition: events.h:355
void close() override
Definition: events.h:413
bool tick() override
Definition: events.h:406
virtual bool msgMouseMove(const MouseMoveMessage &msg)
Definition: events.h:217