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;
96 return _timeoutCtr != 0;
109 virtual void timeout();
116 virtual void drawElements();
144 virtual void close();
149 virtual void replaceView(
UIElement *ui,
bool replaceAllViews =
false,
bool fadeOutIn =
false);
150 virtual void replaceView(
const Common::String &name,
bool replaceAllViews =
false,
bool fadeOutIn =
false);
165 int getRandomNumber(
int minNumber,
int maxNumber);
166 int getRandomNumber(
int maxNumber);
220 return msgMouseMove(msg);
223 #define MESSAGE(NAME) \ 225 virtual bool msg##NAME(const NAME##Message &e) { \ 226 for (Common::Array<UIElement *>::iterator it = _children.begin(); \ 227 it != _children.end(); ++it) { \ 228 if ((*it)->msg##NAME(e)) \ 235 bool send(const Common::String &viewName, const NAME##Message &msg) { \ 236 UIElement *view = UIElement::findViewGlobally(viewName); \ 238 return view->msg##NAME(msg); \ 240 bool send(const NAME##Message &msg) { \ 241 return msg##NAME(msg); \ 273 int actionToKeyFlag(
int action)
const;
274 void rotatePalette();
284 void processDemoEvent(byte ev);
290 virtual bool shouldQuit()
const = 0;
295 #define MESSAGE(NAME) \ 296 bool msg##NAME(const NAME##Message &e) override { \ 297 return !_views.empty() ? focusedView()->msg##NAME(e) : false; \ 313 virtual bool isDemo()
const = 0;
323 void replaceView(
UIElement *ui,
bool replaceAllViews =
false,
bool fadeOutIn =
false)
override;
324 void replaceView(
const Common::String &name,
bool replaceAllViews =
false,
bool fadeOutIn =
false)
override;
346 return _views.empty() ? nullptr : _views.top();
353 return _views.size() < 2 ? nullptr : _views[_views.size() - 2];
360 return _views.empty() ? nullptr : _views[0];
373 return isPresent(
"Combat");
386 void drawElements()
override;
397 return !_views.empty() ? focusedView()->tick() :
false;
404 focusedView()->close();
const Common::String & getName() const
Definition: events.h:185
UIElement * priorView() const
Definition: events.h:352
Graphics::Screen * getScreen() const
Definition: events.h:379
UIElement * firstView() const
Definition: events.h:359
virtual void setBounds(const Common::Rect &r)
Definition: events.h:171
void cancelDelay()
Definition: events.h:102
bool isInCombat() const
Definition: events.h:372
bool isDelayActive() const
Definition: events.h:95
void draw() override
Definition: events.h:391
Definition: messages.h:49
Common::Rect getBounds() const
Definition: events.h:178
Definition: gfx_surface.h:30
bool needsRedraw() const
Definition: events.h:131
int16 width() const
Definition: rect.h:192
UIElement * focusedView() const
Definition: events.h:345
void close() override
Definition: events.h:403
bool tick() override
Definition: events.h:396
virtual bool msgMouseMove(const MouseMoveMessage &msg)
Definition: events.h:214
int16 height() const
Definition: rect.h:193