Drag selection working again - not much progress

This commit is contained in:
Sebastian
2024-11-18 01:57:10 +01:00
parent e9633ff19d
commit 22842f9deb
6 changed files with 28 additions and 41 deletions
+15 -11
View File
@@ -19,7 +19,7 @@ namespace VISEQ::BASE {
bool picked_up = false;
virtual bool pickedUp() {
if(clicked() && held() && state->istate == APP::InteractionState::HOVER_NODE) {
if(clicked() && held() && (state->istate == APP::InteractionState::HOVER_NODE || state->istate == APP::InteractionState::DRAG_NODE)) {
picked_up = true;
drag_offset = position - state->screen_mouse;
}
@@ -40,16 +40,20 @@ namespace VISEQ::BASE {
virtual void select() override {
selected = (state->keys_down.shift && selected) || CheckCollisionPointRec(position, state->selection);
/**/
/*//std::cout << "select" << std::endl;*/
/*if(CheckCollisionPointRec(position, state->selection)) {*/
/* in_selection_rect = true;*/
/*} else {*/
/* in_selection_rect = false;*/
/*}*/
/*if(released() && in_selection_rect) selected = true;*/
/*if(released() && !in_selection_rect) selected = false;*/
}
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(pickedUp()){
drag();
state->istate = APP::InteractionState::DRAG_NODE;
}
if(released() && picked_up){
putDown();
state->istate = APP::InteractionState::HOVER_CANVAS;
}
}
};
}