Clipboard introduced, but not incorporated yet. Some defines for convenience and better readability.

This commit is contained in:
Sebastian
2024-11-19 01:04:06 +01:00
parent 22842f9deb
commit 5779c93339
11 changed files with 118 additions and 44 deletions
+17 -11
View File
@@ -19,18 +19,21 @@ namespace VISEQ::BASE {
bool picked_up = false;
virtual bool pickedUp() {
if(clicked() && held() && (state->istate == APP::InteractionState::HOVER_NODE || state->istate == APP::InteractionState::DRAG_NODE)) {
if(clicked() && held() && (STATE == IState::HOVER_NODE || STATE == IState::DRAG_NODE)) {
picked_up = true;
drag_offset = position - state->screen_mouse;
drag_offset = position - SCREEN_MOUSE;
}
return picked_up;
}
virtual void drag() {
if(state->keys_down.ctrl){
position = state->mod_mouse;
if(KEYS_PRESSED.ctrl){
selection_offset = position - state->hover_position;
}
if(KEYS_DOWN.ctrl){
position = MOD_MOUSE + selection_offset;
} else {
position = state->mod_mouse + drag_offset;
position = MOD_MOUSE + drag_offset;
}
}
@@ -39,20 +42,23 @@ namespace VISEQ::BASE {
}
virtual void select() override {
selected = (state->keys_down.shift && selected) || CheckCollisionPointRec(position, state->selection);
if(STATE == IState::DRAW_SELECTION) in_selection_rect = CheckCollisionPointRec(position, state->selection);
if(MOUSE_LEFT.released) selected = (KEYS_DOWN.shift && selected) || in_selection_rect;
}
virtual void update() override {
if((held() && !picked_up) || (clicked() && !state->keys_down.shift)) select();
if(entered()) state->istate = APP::InteractionState::HOVER_NODE;
if(exited()) state->istate = APP::InteractionState::HOVER_CANVAS;
if(STATE != IState::HOVER_NODE) select();
if(entered()){
STATE = IState::HOVER_NODE;
}
if(exited()) STATE = IState::HOVER_CANVAS;
if(pickedUp()){
drag();
state->istate = APP::InteractionState::DRAG_NODE;
STATE = IState::DRAG_NODE;
}
if(released() && picked_up){
putDown();
state->istate = APP::InteractionState::HOVER_CANVAS;
STATE = IState::HOVER_CANVAS;
}
}
};