fix some lambda ref, use global android_app variable instead of passing as argument, fix clipboard utf issue by using byte array

This commit is contained in:
2019-07-25 08:11:48 +02:00
parent 14e0716696
commit 5fc27ebb14
4 changed files with 143 additions and 125 deletions

View File

@@ -2,8 +2,10 @@
#include "app.h"
#ifdef __ANDROID__
void displayKeyboard(android_app* mApplication, bool pShow);
void android_pick_file(android_app* mApplication, std::function<void(std::string)> callback);
void displayKeyboard(bool pShow);
void android_pick_file(std::function<void(std::string)> callback);
std::string android_get_clipboard();
bool android_set_clipboard(const std::string& s);
#elif _WIN32
std::string win32_open_file(const char* filter);
std::string win32_open_dir();
@@ -21,6 +23,8 @@ std::string App::clipboard_get_text()
return [ios_view clipboard_get_string];
#elif __OSX__
return [osx_view clipboard_get_string];
#elif __ANDROID__
return android_get_clipboard();
#endif
}
@@ -32,6 +36,8 @@ bool App::clipboard_set_text(const std::string& s)
return [ios_view clipboard_set_string:s];
#elif __OSX__
return [osx_view clipboard_set_string:s];
#elif __ANDROID__
return android_set_clipboard(s);
#endif
}
@@ -93,7 +99,7 @@ void App::showKeyboard()
[ios_view becomeFirstResponder];
});
#elif __ANDROID__
displayKeyboard(and_app, true);
displayKeyboard(true);
#endif
}
@@ -107,7 +113,7 @@ void App::hideKeyboard()
// [ios_view unregisterForKeyboardNotifications];
});
#elif __ANDROID__
displayKeyboard(and_app, false);
displayKeyboard(false);
#endif
}
@@ -126,7 +132,7 @@ void App::pick_image(std::function<void(std::string path)> callback)
callback(path);
});
#elif __ANDROID__
android_pick_file(and_app, callback);
android_pick_file(callback);
#elif _WIN32
std::string path = win32_open_file("Image Files (*.jpg, *.png)\0*.jpg;*.png");
if (!path.empty())
@@ -154,7 +160,7 @@ void App::pick_file(std::vector<std::string> types, std::function<void (std::str
callback(path);
});
#elif __ANDROID__
android_pick_file(and_app, callback);
android_pick_file(callback);
#elif _WIN32
std::string filter = "Supported Files (";
bool first_type = true;