WAGE: Started text selection implementation

This commit is contained in:
Eugene Sandulenko 2016-02-03 11:01:41 +01:00
parent 63ef49ec8a
commit d812706328
2 changed files with 19 additions and 1 deletions

View File

@ -155,6 +155,8 @@ Gui::Gui(WageEngine *engine) {
_cursorState = false;
_cursorOff = false;
_inTextSelection = false;
g_system->getPaletteManager()->setPalette(palette, 0, 4);
CursorMan.replaceCursorPalette(palette, 0, 4);
@ -649,8 +651,21 @@ Designed *Gui::mouseUp(int x, int y) {
}
void Gui::mouseDown(int x, int y) {
if (_menu->mouseClick(x, y))
if (_menu->mouseClick(x, y)) {
_menuDirty = true;
} else if (_consoleTextArea.contains(x, y)) {
startMarking(x, y);
}
}
void Gui::startMarking(int x, int y) {
const int firstLine = _scrollPos / _consoleLineHeight;
int textLine = (y - kConHOverlap - kConHPadding - _scrollPos % _consoleLineHeight - _consoleTextArea.top) / _consoleLineHeight + firstLine;
int charPos = x - kConWOverlap - kConWPadding - _consoleTextArea.left;
_inTextSelection = true;
warning("x: %d y: %d", textLine, charPos);
}
} // End of namespace Wage

View File

@ -111,6 +111,7 @@ private:
void flowText(Common::String &str);
const Graphics::Font *getConsoleFont();
const Graphics::Font *getTitleFont();
void startMarking(int x, int y);
public:
Graphics::Surface _screen;
@ -143,6 +144,8 @@ private:
Common::Rect _sceneArea;
bool _sceneIsActive;
bool _cursorIsArrow;
bool _inTextSelection;
};
} // End of namespace Wage