add web sync files and key events

This commit is contained in:
2019-10-11 00:44:11 +02:00
parent e6e3488291
commit babbfb36a7
9 changed files with 211 additions and 23 deletions

View File

@@ -239,13 +239,14 @@ void App::initLog()
mkpath(data_path + "/settings");
mkpath(data_path + "/frames");
#elif __WEB__
data_path = "/";
mkdir("/brushes", 0777);
mkdir("/brushes/thumbs", 0777);
mkdir("/patterns", 0777);
mkdir("/patterns/thumbs", 0777);
mkdir("/settings", 0777);
mkdir("/frames", 0777);
data_path = "/PanoPainter";
mkdir(data_path.c_str(), 0777);
mkdir((data_path + "/brushes").c_str(), 0777);
mkdir((data_path + "/brushes/thumbs").c_str(), 0777);
mkdir((data_path + "/patterns").c_str(), 0777);
mkdir((data_path + "/patterns/thumbs").c_str(), 0777);
mkdir((data_path + "/settings").c_str(), 0777);
mkdir((data_path + "/frames").c_str(), 0777);
#endif
// TODO: save this path somewhere in the settings, don't overwrite every start

View File

@@ -16,6 +16,7 @@
void webgl_pick_file(std::function<void(std::string)> callback);
void webgl_pick_file_save(const std::string& path,
const std::string& name, std::function<void(bool)> callback);
void webgl_sync();
#endif
std::shared_ptr<NodeProgressBar> App::show_progress(const std::string& title, int total /*= 0*/)

View File

@@ -21,6 +21,7 @@ std::string win32_clipboard_get_text();
void webgl_pick_file(std::function<void(std::string)> callback);
void webgl_pick_file_save(const std::string& path,
const std::string& name, std::function<void(bool)> callback);
void webgl_sync();
#endif

View File

@@ -9,6 +9,8 @@
#ifdef __APPLE__
#include <Foundation/Foundation.h>
#import "objc_utils.h"
#elif __WEB__
void webgl_sync();
#endif
@@ -2180,6 +2182,9 @@ bool Canvas::project_save_thread(std::string file_path, bool show_progress)
{
m_unsaved = false;
m_newdoc = false;
#if __WEB__
webgl_sync();
#endif
}
if (show_progress)

View File

@@ -656,6 +656,128 @@ kKey convert_key(int key)
CASE(AKEYCODE_BRIGHTNESS_DOWN, kKey::Unknown);
CASE(AKEYCODE_BRIGHTNESS_UP, kKey::Unknown);
CASE(AKEYCODE_MEDIA_AUDIO_TRACK, kKey::Unknown);
#elif __WEB__
CASE(GLFW_KEY_UNKNOWN, kKey::Unknown);
CASE(GLFW_KEY_SPACE, kKey::KeySpacebar);
CASE(GLFW_KEY_APOSTROPHE, kKey::Unknown);
CASE(GLFW_KEY_COMMA, kKey::Unknown);
CASE(GLFW_KEY_MINUS, kKey::Unknown);
CASE(GLFW_KEY_PERIOD, kKey::Unknown);
CASE(GLFW_KEY_SLASH, kKey::Unknown);
CASE(GLFW_KEY_0, kKey::Key0);
CASE(GLFW_KEY_1, kKey::Key1);
CASE(GLFW_KEY_2, kKey::Key2);
CASE(GLFW_KEY_3, kKey::Key3);
CASE(GLFW_KEY_4, kKey::Key4);
CASE(GLFW_KEY_5, kKey::Key5);
CASE(GLFW_KEY_6, kKey::Key6);
CASE(GLFW_KEY_7, kKey::Key7);
CASE(GLFW_KEY_8, kKey::Key8);
CASE(GLFW_KEY_9, kKey::Key9);
CASE(GLFW_KEY_SEMICOLON, kKey::Unknown);
CASE(GLFW_KEY_EQUAL, kKey::Unknown);
CASE(GLFW_KEY_A, kKey::KeyA);
CASE(GLFW_KEY_B, kKey::KeyB);
CASE(GLFW_KEY_C, kKey::KeyC);
CASE(GLFW_KEY_D, kKey::KeyD);
CASE(GLFW_KEY_E, kKey::KeyE);
CASE(GLFW_KEY_F, kKey::KeyF);
CASE(GLFW_KEY_G, kKey::KeyG);
CASE(GLFW_KEY_H, kKey::KeyH);
CASE(GLFW_KEY_I, kKey::KeyI);
CASE(GLFW_KEY_J, kKey::KeyJ);
CASE(GLFW_KEY_K, kKey::KeyK);
CASE(GLFW_KEY_L, kKey::KeyL);
CASE(GLFW_KEY_M, kKey::KeyM);
CASE(GLFW_KEY_N, kKey::KeyN);
CASE(GLFW_KEY_O, kKey::KeyO);
CASE(GLFW_KEY_P, kKey::KeyP);
CASE(GLFW_KEY_Q, kKey::KeyQ);
CASE(GLFW_KEY_R, kKey::KeyR);
CASE(GLFW_KEY_S, kKey::KeyS);
CASE(GLFW_KEY_T, kKey::KeyT);
CASE(GLFW_KEY_U, kKey::KeyU);
CASE(GLFW_KEY_V, kKey::KeyV);
CASE(GLFW_KEY_W, kKey::KeyW);
CASE(GLFW_KEY_X, kKey::KeyX);
CASE(GLFW_KEY_Y, kKey::KeyY);
CASE(GLFW_KEY_Z, kKey::KeyZ);
CASE(GLFW_KEY_LEFT_BRACKET, kKey::Unknown);
CASE(GLFW_KEY_BACKSLASH, kKey::Unknown);
CASE(GLFW_KEY_RIGHT_BRACKET, kKey::Unknown);
CASE(GLFW_KEY_GRAVE_ACCENT, kKey::Unknown);
CASE(GLFW_KEY_WORLD_1, kKey::Unknown);
CASE(GLFW_KEY_WORLD_2, kKey::Unknown);
CASE(GLFW_KEY_ESCAPE, kKey::Unknown);
CASE(GLFW_KEY_ENTER, kKey::Unknown);
CASE(GLFW_KEY_TAB, kKey::KeyTab);
CASE(GLFW_KEY_BACKSPACE, kKey::KeyBackspace);
CASE(GLFW_KEY_INSERT, kKey::Unknown);
CASE(GLFW_KEY_DELETE, kKey::KeyDel);
CASE(GLFW_KEY_RIGHT, kKey::Unknown);
CASE(GLFW_KEY_LEFT, kKey::Unknown);
CASE(GLFW_KEY_DOWN, kKey::Unknown);
CASE(GLFW_KEY_UP, kKey::Unknown);
CASE(GLFW_KEY_PAGE_UP, kKey::Unknown);
CASE(GLFW_KEY_PAGE_DOWN, kKey::Unknown);
CASE(GLFW_KEY_HOME, kKey::Unknown);
CASE(GLFW_KEY_END, kKey::Unknown);
CASE(GLFW_KEY_CAPS_LOCK, kKey::Unknown);
CASE(GLFW_KEY_SCROLL_LOCK, kKey::Unknown);
CASE(GLFW_KEY_NUM_LOCK, kKey::Unknown);
CASE(GLFW_KEY_PRINT_SCREEN, kKey::Unknown);
CASE(GLFW_KEY_PAUSE, kKey::Unknown);
CASE(GLFW_KEY_F1, kKey::Unknown);
CASE(GLFW_KEY_F2, kKey::Unknown);
CASE(GLFW_KEY_F3, kKey::Unknown);
CASE(GLFW_KEY_F4, kKey::Unknown);
CASE(GLFW_KEY_F5, kKey::Unknown);
CASE(GLFW_KEY_F6, kKey::Unknown);
CASE(GLFW_KEY_F7, kKey::Unknown);
CASE(GLFW_KEY_F8, kKey::Unknown);
CASE(GLFW_KEY_F9, kKey::Unknown);
CASE(GLFW_KEY_F10, kKey::Unknown);
CASE(GLFW_KEY_F11, kKey::Unknown);
CASE(GLFW_KEY_F12, kKey::Unknown);
CASE(GLFW_KEY_F13, kKey::Unknown);
CASE(GLFW_KEY_F14, kKey::Unknown);
CASE(GLFW_KEY_F15, kKey::Unknown);
CASE(GLFW_KEY_F16, kKey::Unknown);
CASE(GLFW_KEY_F17, kKey::Unknown);
CASE(GLFW_KEY_F18, kKey::Unknown);
CASE(GLFW_KEY_F19, kKey::Unknown);
CASE(GLFW_KEY_F20, kKey::Unknown);
CASE(GLFW_KEY_F21, kKey::Unknown);
CASE(GLFW_KEY_F22, kKey::Unknown);
CASE(GLFW_KEY_F23, kKey::Unknown);
CASE(GLFW_KEY_F24, kKey::Unknown);
CASE(GLFW_KEY_F25, kKey::Unknown);
CASE(GLFW_KEY_KP_0, kKey::Unknown);
CASE(GLFW_KEY_KP_1, kKey::Unknown);
CASE(GLFW_KEY_KP_2, kKey::Unknown);
CASE(GLFW_KEY_KP_3, kKey::Unknown);
CASE(GLFW_KEY_KP_4, kKey::Unknown);
CASE(GLFW_KEY_KP_5, kKey::Unknown);
CASE(GLFW_KEY_KP_6, kKey::Unknown);
CASE(GLFW_KEY_KP_7, kKey::Unknown);
CASE(GLFW_KEY_KP_8, kKey::Unknown);
CASE(GLFW_KEY_KP_9, kKey::Unknown);
CASE(GLFW_KEY_KP_DECIMAL, kKey::Unknown);
CASE(GLFW_KEY_KP_DIVIDE, kKey::Unknown);
CASE(GLFW_KEY_KP_MULTIPLY, kKey::Unknown);
CASE(GLFW_KEY_KP_SUBTRACT, kKey::Unknown);
CASE(GLFW_KEY_KP_ADD, kKey::Unknown);
CASE(GLFW_KEY_KP_ENTER, kKey::Unknown);
CASE(GLFW_KEY_KP_EQUAL, kKey::Unknown);
CASE(GLFW_KEY_LEFT_SHIFT, kKey::Unknown);
CASE(GLFW_KEY_LEFT_CONTROL, kKey::Unknown);
CASE(GLFW_KEY_LEFT_ALT, kKey::Unknown);
CASE(GLFW_KEY_LEFT_SUPER, kKey::Unknown);
CASE(GLFW_KEY_RIGHT_SHIFT, kKey::Unknown);
CASE(GLFW_KEY_RIGHT_CONTROL, kKey::Unknown);
CASE(GLFW_KEY_RIGHT_ALT, kKey::Unknown);
CASE(GLFW_KEY_RIGHT_SUPER, kKey::Unknown);
CASE(GLFW_KEY_MENU, kKey::Unknown);
#endif
default:
return kKey::Unknown;

View File

@@ -6,7 +6,10 @@
#ifdef __APPLE__
#include <Foundation/Foundation.h>
#elif __WEB__
void webgl_sync();
#endif
#include "canvas.h"
#include "app.h"
#include "abr.h"
@@ -266,6 +269,10 @@ bool NodePanelBrush::save()
sw << *b;
}
f.write((char*)sw.m_data.data(), sw.m_data.size());
f.close();
#if __WEB__
webgl_sync();
#endif
return true;
}
return false;