diff options
author | Eugene Sandulenko | 2016-04-19 11:14:48 +0200 |
---|---|---|
committer | Eugene Sandulenko | 2016-04-19 11:14:48 +0200 |
commit | 6f03947bc940d9725727bcbcd80c07816a8dab49 (patch) | |
tree | 038c83c6491e5c8c24fae0e1e01c810fcbc219db /engines/wage/gui.cpp | |
parent | c9d3b7210e10b32c48ecd037e42fa9ef946576ac (diff) | |
download | scummvm-rg350-6f03947bc940d9725727bcbcd80c07816a8dab49.tar.gz scummvm-rg350-6f03947bc940d9725727bcbcd80c07816a8dab49.tar.bz2 scummvm-rg350-6f03947bc940d9725727bcbcd80c07816a8dab49.zip |
WAGE: Implemented text console callback
Diffstat (limited to 'engines/wage/gui.cpp')
-rw-r--r-- | engines/wage/gui.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp index c93c1ee751..6f8c7c5efe 100644 --- a/engines/wage/gui.cpp +++ b/engines/wage/gui.cpp @@ -143,6 +143,9 @@ static void cursorTimerHandler(void *refCon) { gui->_cursorDirty = true; } +static void sceneWindowCallback(WindowClick click, Common::Event &event, void *gui); +static void consoleWindowCallback(WindowClick click, Common::Event &event, void *gui); + Gui::Gui(WageEngine *engine) { _engine = engine; _scene = NULL; @@ -190,7 +193,10 @@ Gui::Gui(WageEngine *engine) { _menu = new Menu(this); _sceneWindow = _wm.add(false); + _sceneWindow->setCallback(sceneWindowCallback, this); + _consoleWindow = _wm.add(true); + _consoleWindow->setCallback(consoleWindowCallback, this); } Gui::~Gui() { @@ -303,6 +309,9 @@ void Gui::drawScene() { _consoleTextArea.setHeight(_scene->_textBounds->height() - 2 * kBorderWidth); } +static void sceneWindowCallback(WindowClick click, Common::Event &event, void *gui) { +} + // Render console void Gui::drawConsole() { if (!_consoleDirty && !_consoleFullRedraw && !_bordersDirty && !_sceneDirty) @@ -314,6 +323,22 @@ void Gui::drawConsole() { _consoleWindow->setDirty(true); } +static void consoleWindowCallback(WindowClick click, Common::Event &event, void *g) { + Gui *gui = (Gui *)g; + + if (click == kBorderScrollUp || click == kBorderScrollDown) { + int textFullSize = gui->getLinesSize() * gui->getConsoleLineHeight() + gui->getConsoleTextAreaHeight(); + float scrollPos = (float)gui->getScrollPos() / textFullSize; + float scrollSize = (float)gui->getConsoleTextAreaHeight() / textFullSize; + + gui->_consoleWindow->setScroll(scrollPos, scrollSize); + + warning("pos: %f size: %f", scrollPos, scrollSize); + + return; + } +} + void Gui::drawBox(Graphics::ManagedSurface *g, int x, int y, int w, int h) { Common::Rect r(x, y, x + w + 1, y + h + 1); |