aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorEugene Sandulenko2017-08-15 19:50:48 +0200
committerEugene Sandulenko2017-08-15 19:51:33 +0200
commit7313de59b6df6f2f06d4be9b1833ba19b0e43f85 (patch)
treeefb736cf8adf9df430871c4bb7ca1fb463129cda /engines
parentdf7bd3033e49672abe11f53318ba30a01ff85252 (diff)
downloadscummvm-rg350-7313de59b6df6f2f06d4be9b1833ba19b0e43f85.tar.gz
scummvm-rg350-7313de59b6df6f2f06d4be9b1833ba19b0e43f85.tar.bz2
scummvm-rg350-7313de59b6df6f2f06d4be9b1833ba19b0e43f85.zip
WAGE: Use new MacTextWindow API for selection cut/clear
This enables multiline selection cutting and clearing.
Diffstat (limited to 'engines')
-rw-r--r--engines/wage/gui.cpp38
1 files changed, 4 insertions, 34 deletions
diff --git a/engines/wage/gui.cpp b/engines/wage/gui.cpp
index 3159d80a71..53f83bb97c 100644
--- a/engines/wage/gui.cpp
+++ b/engines/wage/gui.cpp
@@ -357,60 +357,30 @@ void Gui::actionUndo() {
}
void Gui::actionClear() {
- const Graphics::SelectedText *s = _consoleWindow->getSelectedText();
-
- if (s->endY == -1)
+ if (_consoleWindow->getSelectedText()->endY == -1)
return;
- int startPos = s->startCol;
- int endPos = s->endCol;
-
- if (startPos > endPos)
- SWAP(startPos, endPos);
-
Common::String input = _consoleWindow->getInput();
- Common::String beg(input.c_str(), &input.c_str()[startPos]);
- Common::String end(&input.c_str()[endPos]);
+ _consoleWindow->cutSelection();
_undobuffer = input;
- _consoleWindow->clearInput();
- _consoleWindow->appendInput(beg + end);
-
_menu->enableCommand(kMenuEdit, kMenuActionUndo, true);
-
- _consoleWindow->clearSelection();
}
void Gui::actionCut() {
- const Graphics::SelectedText *s = _consoleWindow->getSelectedText();
-
- if (s->endY == -1)
+ if (_consoleWindow->getSelectedText()->endY == -1)
return;
- int startPos = s->startCol;
- int endPos = s->endCol;
-
- if (s->startRow > s->endRow || (s->startRow == s->endRow && startPos > endPos))
- SWAP(startPos, endPos);
-
Common::String input = _consoleWindow->getInput();
- Common::String beg(input.c_str(), &input.c_str()[startPos]);
- Common::String mid(&input.c_str()[startPos], &input.c_str()[endPos]);
- Common::String end(&input.c_str()[endPos]);
+ _clipboard = _consoleWindow->cutSelection();
_undobuffer = input;
- _consoleWindow->clearInput();
- _consoleWindow->appendInput(beg + end);
- _clipboard = mid;
-
_menu->enableCommand(kMenuEdit, kMenuActionUndo, true);
_menu->enableCommand(kMenuEdit, kMenuActionPaste, true);
-
- _consoleWindow->clearSelection();
}
void Gui::disableUndo() {