aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/ios7/ios7_osys_video.mm
diff options
context:
space:
mode:
Diffstat (limited to 'backends/platform/ios7/ios7_osys_video.mm')
-rw-r--r--backends/platform/ios7/ios7_osys_video.mm39
1 files changed, 39 insertions, 0 deletions
diff --git a/backends/platform/ios7/ios7_osys_video.mm b/backends/platform/ios7/ios7_osys_video.mm
index 20cf687709..05093e5428 100644
--- a/backends/platform/ios7/ios7_osys_video.mm
+++ b/backends/platform/ios7/ios7_osys_video.mm
@@ -28,6 +28,7 @@
#include "graphics/conversion.h"
#include "backends/platform/ios7/ios7_app_delegate.h"
+#include "common/translation.h"
@interface iOS7AlertHandler : NSObject<UIAlertViewDelegate>
@end
@@ -603,3 +604,41 @@ void OSystem_iOS7::setShowKeyboard(bool show) {
bool OSystem_iOS7::isKeyboardShown() const {
return [[iOS7AppDelegate iPhoneView] isKeyboardShown];
}
+
+
+bool OSystem_iOS7::hasTextInClipboard() {
+ return [[UIPasteboard generalPasteboard] containsPasteboardTypes:UIPasteboardTypeListString];
+}
+
+Common::String OSystem_iOS7::getTextFromClipboard() {
+ if (!hasTextInClipboard())
+ return Common::String();
+
+ UIPasteboard *pb = [UIPasteboard generalPasteboard];
+ NSString *str = pb.string;
+ if (str == nil)
+ return Common::String();
+
+ // If translations are supported, use the current TranslationManager charset and otherwise
+ // use ASCII. If the string cannot be represented using the requested encoding we get a null
+ // pointer below, which is fine as ScummVM would not know what to do with the string anyway.
+#ifdef USE_TRANSLATION
+ NSString* encStr = [NSString stringWithCString:TransMan.getCurrentCharset().c_str() encoding:NSASCIIStringEncoding];
+ NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encStr));
+#else
+ NSStringEncoding encoding = NSISOLatin1StringEncoding;
+#endif
+ return Common::String([str cStringUsingEncoding:encoding]);
+}
+
+bool OSystem_iOS7::setTextInClipboard(const Common::String &text) {
+#ifdef USE_TRANSLATION
+ NSString* encStr = [NSString stringWithCString:TransMan.getCurrentCharset().c_str() encoding:NSASCIIStringEncoding];
+ NSStringEncoding encoding = CFStringConvertEncodingToNSStringEncoding(CFStringConvertIANACharSetNameToEncoding((CFStringRef)encStr));
+#else
+ NSStringEncoding encoding = NSISOLatin1StringEncoding;
+#endif
+ UIPasteboard *pb = [UIPasteboard generalPasteboard];
+ [pb setString:[NSString stringWithCString:text.c_str() encoding:encoding]];
+ return true;
+}