aboutsummaryrefslogtreecommitdiff
path: root/graphics/macgui/macwindowmanager.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2017-07-30 08:56:38 +0200
committerEugene Sandulenko2017-08-01 10:42:21 +0200
commit9fe79b9e198740c4544bb56784c9b861c8113e6f (patch)
treec7e73f333f8ad853f53f190d08d012a86b1ffd3d /graphics/macgui/macwindowmanager.cpp
parentff8a2ade68cc6751c1825f149f2efe9f78c9fe3d (diff)
downloadscummvm-rg350-9fe79b9e198740c4544bb56784c9b861c8113e6f.tar.gz
scummvm-rg350-9fe79b9e198740c4544bb56784c9b861c8113e6f.tar.bz2
scummvm-rg350-9fe79b9e198740c4544bb56784c9b861c8113e6f.zip
GRAPHICS: MACGUI: Made MacTextWindow processing keyboard input
Diffstat (limited to 'graphics/macgui/macwindowmanager.cpp')
-rw-r--r--graphics/macgui/macwindowmanager.cpp19
1 files changed, 16 insertions, 3 deletions
diff --git a/graphics/macgui/macwindowmanager.cpp b/graphics/macgui/macwindowmanager.cpp
index b64ff1048f..1e4c49fa76 100644
--- a/graphics/macgui/macwindowmanager.cpp
+++ b/graphics/macgui/macwindowmanager.cpp
@@ -31,6 +31,7 @@
#include "graphics/macgui/macwindowmanager.h"
#include "graphics/macgui/macfontmanager.h"
#include "graphics/macgui/macwindow.h"
+#include "graphics/macgui/mactextwindow.h"
#include "graphics/macgui/macmenu.h"
namespace Graphics {
@@ -183,6 +184,18 @@ MacWindow *MacWindowManager::addWindow(bool scrollable, bool resizable, bool edi
return w;
}
+MacTextWindow *MacWindowManager::addTextWindow(const MacFont *font, int fgcolor, int bgcolor, int maxWidth, TextAlign textAlignment) {
+ MacTextWindow *w = new MacTextWindow(this, font, fgcolor, bgcolor, maxWidth, textAlignment);
+
+ _windows.push_back(w);
+ _windowStack.push_back(w);
+
+ setActive(getNextId());
+
+ return w;
+}
+
+
void MacWindowManager::addWindowInitialized(MacWindow *macwindow) {
_windows.push_back(macwindow);
_windowStack.push_back(macwindow);
@@ -300,7 +313,7 @@ bool MacWindowManager::processEvent(Common::Event &event) {
return true;
if (event.type != Common::EVENT_MOUSEMOVE && event.type != Common::EVENT_LBUTTONDOWN &&
- event.type != Common::EVENT_LBUTTONUP)
+ event.type != Common::EVENT_LBUTTONUP && event.type != Common::EVENT_KEYDOWN)
return false;
if (_windows[_activeWindow]->isEditable() && _windows[_activeWindow]->getType() == kWindowWindow &&
@@ -320,8 +333,8 @@ bool MacWindowManager::processEvent(Common::Event &event) {
it--;
BaseMacWindow *w = *it;
-
- if (w->hasAllFocus() || w->getDimensions().contains(event.mouse.x, event.mouse.y)) {
+ if (w->hasAllFocus() || (w->isEditable() && event.type == Common::EVENT_KEYDOWN) ||
+ w->getDimensions().contains(event.mouse.x, event.mouse.y)) {
if (event.type == Common::EVENT_LBUTTONDOWN || event.type == Common::EVENT_LBUTTONUP)
setActive(w->getId());