entry: Drop file event for GLFW.

This commit is contained in:
Branimir Karadžić 2018-01-03 21:58:37 -08:00
parent 97e6c498a8
commit d616ed345b

View File

@ -276,7 +276,7 @@ namespace entry
static void joystickCb(int _jid, int _action);
// Based on cutef8 by Jeff Bezanson (Public Domain)
static uint8_t encodeUTF8(uint8_t _chars[4], unsigned int _scancode)
static uint8_t encodeUTF8(uint8_t _chars[4], uint32_t _scancode)
{
uint8_t length = 0;
@ -432,6 +432,7 @@ namespace entry
glfwSetCursorPosCallback(m_windows[0], cursorPosCb);
glfwSetMouseButtonCallback(m_windows[0], mouseButtonCb);
glfwSetWindowSizeCallback(m_windows[0], windowSizeCb);
glfwSetDropCallback(m_windows[0], dropFileCb);
glfwSetWindow(m_windows[0]);
m_eventQueue.postSizeEvent(handle, ENTRY_DEFAULT_WIDTH, ENTRY_DEFAULT_HEIGHT);
@ -491,6 +492,7 @@ namespace entry
glfwSetCursorPosCallback(window, cursorPosCb);
glfwSetMouseButtonCallback(window, mouseButtonCb);
glfwSetWindowSizeCallback(window, windowSizeCb);
glfwSetDropCallback(window, dropFileCb);
m_windows[msg->m_handle.idx] = window;
m_eventQueue.postSizeEvent(msg->m_handle, msg->m_width, msg->m_height);
@ -619,12 +621,13 @@ namespace entry
return invalid;
}
static void keyCb(GLFWwindow* _window, int _key, int _scancode, int _action, int _mods);
static void charCb(GLFWwindow* _window, unsigned int _scancode);
static void keyCb(GLFWwindow* _window, int32_t _key, int32_t _scancode, int32_t _action, int32_t _mods);
static void charCb(GLFWwindow* _window, uint32_t _scancode);
static void scrollCb(GLFWwindow* _window, double _dx, double _dy);
static void cursorPosCb(GLFWwindow* _window, double _mx, double _my);
static void mouseButtonCb(GLFWwindow* _window, int _button, int _action, int _mods);
static void windowSizeCb(GLFWwindow* _window, int _width, int _height);
static void mouseButtonCb(GLFWwindow* _window, int32_t _button, int32_t _action, int32_t _mods);
static void windowSizeCb(GLFWwindow* _window, int32_t _width, int32_t _height);
static void dropFileCb(GLFWwindow* _window, int32_t _count, const char** _filePaths);
MainThreadEntry m_mte;
bx::Thread m_thread;
@ -649,7 +652,7 @@ namespace entry
Context s_ctx;
void Context::keyCb(GLFWwindow* _window, int _key, int _scancode, int _action, int _mods)
void Context::keyCb(GLFWwindow* _window, int32_t _key, int32_t _scancode, int32_t _action, int32_t _mods)
{
BX_UNUSED(_scancode);
if (_key == GLFW_KEY_UNKNOWN)
@ -663,7 +666,7 @@ namespace entry
s_ctx.m_eventQueue.postKeyEvent(handle, key, mods, down);
}
void Context::charCb(GLFWwindow* _window, unsigned int _scancode)
void Context::charCb(GLFWwindow* _window, uint32_t _scancode)
{
WindowHandle handle = s_ctx.findHandle(_window);
uint8_t chars[4];
@ -700,7 +703,7 @@ namespace entry
);
}
void Context::mouseButtonCb(GLFWwindow* _window, int _button, int _action, int _mods)
void Context::mouseButtonCb(GLFWwindow* _window, int32_t _button, int32_t _action, int32_t _mods)
{
BX_UNUSED(_mods);
WindowHandle handle = s_ctx.findHandle(_window);
@ -716,12 +719,21 @@ namespace entry
);
}
void Context::windowSizeCb(GLFWwindow* _window, int _width, int _height)
void Context::windowSizeCb(GLFWwindow* _window, int32_t _width, int32_t _height)
{
WindowHandle handle = s_ctx.findHandle(_window);
s_ctx.m_eventQueue.postSizeEvent(handle, _width, _height);
}
void Context::dropFileCb(GLFWwindow* _window, int32_t _count, const char** _filePaths)
{
WindowHandle handle = s_ctx.findHandle(_window);
for (int32_t ii = 0; ii < _count; ++ii)
{
s_ctx.m_eventQueue.postDropFileEvent(handle, _filePaths[ii]);
}
}
static void joystickCb(int _jid, int _action)
{
if (_jid >= ENTRY_CONFIG_MAX_GAMEPADS)