Browse Source

Clean up event creation

tags/v1.0.0
Andrew Belt 6 years ago
parent
commit
08352b9f34
3 changed files with 5 additions and 110 deletions
  1. +1
    -1
      include/WidgetState.hpp
  2. +3
    -1
      src/WidgetState.cpp
  3. +1
    -108
      src/window.cpp

+ 1
- 1
include/WidgetState.hpp View File

@@ -18,7 +18,7 @@ struct WidgetState {
void handleHover(math::Vec pos, math::Vec mouseDelta); void handleHover(math::Vec pos, math::Vec mouseDelta);
void handleLeave(); void handleLeave();
void handleScroll(math::Vec pos, math::Vec scrollDelta); void handleScroll(math::Vec pos, math::Vec scrollDelta);
void handleChar(math::Vec pos, int codepoint);
void handleText(math::Vec pos, int codepoint);
void handleKey(math::Vec pos, int key, int scancode, int action, int mods); void handleKey(math::Vec pos, int key, int scancode, int action, int mods);
void handleDrop(math::Vec pos, std::vector<std::string> paths); void handleDrop(math::Vec pos, std::vector<std::string> paths);
}; };


+ 3
- 1
src/WidgetState.cpp View File

@@ -1,4 +1,5 @@
#include "WidgetState.hpp" #include "WidgetState.hpp"
#include "logger.hpp"


namespace rack { namespace rack {


@@ -15,6 +16,7 @@ WidgetState::WidgetState() {
void WidgetState::handleButton(math::Vec pos, int button, int action, int mods) { void WidgetState::handleButton(math::Vec pos, int button, int action, int mods) {
// Button event // Button event
event::Button eButton; event::Button eButton;
eButton.pos = pos;
eButton.button = button; eButton.button = button;
eButton.action = action; eButton.action = action;
eButton.mods = mods; eButton.mods = mods;
@@ -97,7 +99,7 @@ void WidgetState::handleDrop(math::Vec pos, std::vector<std::string> paths) {
rootWidget->handleEvent(ePathDrop); rootWidget->handleEvent(ePathDrop);
} }


void WidgetState::handleChar(math::Vec pos, int codepoint) {
void WidgetState::handleText(math::Vec pos, int codepoint) {
if (selectedWidget) { if (selectedWidget) {
// SelectText event // SelectText event
event::SelectText eSelectText; event::SelectText eSelectText;


+ 1
- 108
src/window.cpp View File

@@ -61,66 +61,6 @@ static void mouseButtonCallback(GLFWwindow *window, int button, int action, int
#endif #endif


gWidgetState->handleButton(gMousePos, button, action, mods); gWidgetState->handleButton(gMousePos, button, action, mods);

/*
if (action == GLFW_PRESS) {
if (button == GLFW_MOUSE_BUTTON_LEFT) {
if (gTempWidget) {
// onDragStart
EventDragStart e;
gTempWidget->onDragStart(e);
}
gWidgetState->draggedWidget = gTempWidget;

if (gTempWidget != gWidgetState->selectedWidget) {
if (gWidgetState->selectedWidget) {
// onDefocus
EventDefocus e;
gWidgetState->selectedWidget->onDefocus(e);
}
gWidgetState->selectedWidget = NULL;
if (gTempWidget) {
// onFocus
EventFocus e;
gTempWidget->onFocus(e);
if (e.consumed) {
gWidgetState->selectedWidget = gTempWidget;
}
}
}
}
gTempWidget = NULL;
}
else if (action == GLFW_RELEASE) {
// onMouseUp
gTempWidget = NULL;
{
EventMouseUp e;
e.pos = gMousePos;
e.button = button;
gWidgetState->rootWidget->onMouseUp(e);
gTempWidget = e.target;
}

if (button == GLFW_MOUSE_BUTTON_LEFT) {
if (gWidgetState->draggedWidget) {
// onDragDrop
EventDragDrop e;
e.origin = gWidgetState->draggedWidget;
gTempWidget->onDragDrop(e);
}
// gWidgetState->draggedWidget might have been set to null in the last event, recheck here
if (gWidgetState->draggedWidget) {
// onDragEnd
EventDragEnd e;
gWidgetState->draggedWidget->onDragEnd(e);
}
gWidgetState->draggedWidget = NULL;
gDragWidgetState->hoveredWidget = NULL;
}
gTempWidget = NULL;
}
*/
} }


struct MouseButtonArguments { struct MouseButtonArguments {
@@ -168,53 +108,6 @@ void cursorPosCallback(GLFWwindow* window, double xpos, double ypos) {
gMousePos = mousePos; gMousePos = mousePos;


gWidgetState->handleHover(mousePos, mouseDelta); gWidgetState->handleHover(mousePos, mouseDelta);

/*
if (gWidgetState->draggedWidget) {
// onDragMove
EventDragMove e;
e.mouseDelta = mouseDelta;
gWidgetState->draggedWidget->onDragMove(e);

if (gTempWidget != gDragWidgetState->hoveredWidget) {
if (gDragWidgetState->hoveredWidget) {
EventDragEnter e;
e.origin = gWidgetState->draggedWidget;
gDragWidgetState->hoveredWidget->onDragLeave(e);
}
gDragWidgetState->hoveredWidget = gTempWidget;
if (gDragWidgetState->hoveredWidget) {
EventDragEnter e;
e.origin = gWidgetState->draggedWidget;
gDragWidgetState->hoveredWidget->onDragEnter(e);
}
}
}
else {
if (gTempWidget != gWidgetState->hoveredWidget) {
if (gWidgetState->hoveredWidget) {
// onMouseLeave
EventMouseLeave e;
gWidgetState->hoveredWidget->onMouseLeave(e);
}
gWidgetState->hoveredWidget = gTempWidget;
if (gWidgetState->hoveredWidget) {
// onMouseEnter
EventMouseEnter e;
gWidgetState->hoveredWidget->onMouseEnter(e);
}
}
}
gTempWidget = NULL;
if (glfwGetMouseButton(gWindow, GLFW_MOUSE_BUTTON_MIDDLE) == GLFW_PRESS) {
// TODO
// Define a new global called gScrollWidget, which remembers the widget where middle-click was first pressed
EventScroll e;
e.pos = mousePos;
e.scrollRel = mouseDelta;
gWidgetState->rootWidget->onScroll(e);
}
*/
} }


void cursorEnterCallback(GLFWwindow* window, int entered) { void cursorEnterCallback(GLFWwindow* window, int entered) {
@@ -235,7 +128,7 @@ void scrollCallback(GLFWwindow *window, double x, double y) {
} }


void charCallback(GLFWwindow *window, unsigned int codepoint) { void charCallback(GLFWwindow *window, unsigned int codepoint) {
gWidgetState->handleChar(gMousePos, codepoint);
gWidgetState->handleText(gMousePos, codepoint);
} }


void keyCallback(GLFWwindow *window, int key, int scancode, int action, int mods) { void keyCallback(GLFWwindow *window, int key, int scancode, int action, int mods) {


Loading…
Cancel
Save