diff options
author | Alexander Tkachev | 2016-07-26 12:21:15 +0600 |
---|---|---|
committer | Alexander Tkachev | 2016-08-24 16:07:55 +0600 |
commit | b9bba9bd4bec1bf00a61c347f411a8ecf9ea69e8 (patch) | |
tree | dc84602db91c43f060dbcd7f869ace78132142ca /gui/widgets/editable.cpp | |
parent | 527ab4cdf6fc314cb260ae329d88794440b875ef (diff) | |
download | scummvm-rg350-b9bba9bd4bec1bf00a61c347f411a8ecf9ea69e8.tar.gz scummvm-rg350-b9bba9bd4bec1bf00a61c347f411a8ecf9ea69e8.tar.bz2 scummvm-rg350-b9bba9bd4bec1bf00a61c347f411a8ecf9ea69e8.zip |
ALL: Move Clipboard support to OSystem
Commit adds kFeatureClipboardSupport. hasTextInClipboard() and
getTextFromClipboard().
OSystem_SDL has this feature if SDL2 is used.
EditableWidget and StorageWizardDialog use g_system to access clipboard
now.
Diffstat (limited to 'gui/widgets/editable.cpp')
-rw-r--r-- | gui/widgets/editable.cpp | 35 |
1 files changed, 12 insertions, 23 deletions
diff --git a/gui/widgets/editable.cpp b/gui/widgets/editable.cpp index 6c63074fd1..02defe9a56 100644 --- a/gui/widgets/editable.cpp +++ b/gui/widgets/editable.cpp @@ -20,13 +20,6 @@ * */ -#ifdef USE_SDL2 -#define FORBIDDEN_SYMBOL_ALLOW_ALL - -#include <SDL2/SDL.h> -#include <SDL2/SDL_clipboard.h> -#endif - #include "common/rect.h" #include "common/system.h" #include "gui/widgets/editable.h" @@ -192,24 +185,20 @@ bool EditableWidget::handleKeyDown(Common::KeyState state) { forcecaret = true; break; -#ifdef USE_SDL2 - case Common::KEYCODE_v: - if (state.flags & Common::KBD_CTRL) { - if (SDL_HasClipboardText() == SDL_TRUE) { - char *text = SDL_GetClipboardText(); - if (text != nullptr) { - for (char *ptr = text; *ptr; ++ptr) { - if (tryInsertChar(*ptr, _caretPos)) - ++_caretPos; - } - dirty = true; - } + case Common::KEYCODE_v: + if (g_system->hasFeature(OSystem::kFeatureClipboardSupport) && state.flags & Common::KBD_CTRL) { + if (g_system->hasTextInClipboard()) { + String text = g_system->getTextFromClipboard(); + for (uint32 i = 0; i < text.size(); ++i) { + if (tryInsertChar(text[i], _caretPos)) + ++_caretPos; } - } else { - defaultKeyDownHandler(state, dirty, forcecaret, handled); + dirty = true; } - break; -#endif + } else { + defaultKeyDownHandler(state, dirty, forcecaret, handled); + } + break; #ifdef MACOSX // Let ctrl-a / ctrl-e move the caret to the start / end of the line. |