New selection method, fixed crashing

This commit is contained in:
andreja6
2020-03-13 18:50:48 -07:00
parent f08799d49c
commit bd8209958d
4 changed files with 33 additions and 7 deletions

View File

@@ -1,7 +1,10 @@
#include "ArrowTool.h"
#include "Application.h"
ArrowTool::ArrowTool(void)
{
lctrlDown = false;
rctrlDown = false;
}
ArrowTool::~ArrowTool(void)
@@ -10,10 +13,14 @@ ArrowTool::~ArrowTool(void)
void ArrowTool::onButton1MouseDown(Mouse mouse)
{
g_selectedInstances.clear();
if(!lctrlDown && !rctrlDown)
g_selectedInstances.clear();
PartInstance * target = mouse.getTarget();
if(target != NULL)
if(target != NULL && std::find(g_selectedInstances.begin(), g_selectedInstances.end(), target) == g_selectedInstances.end())
g_selectedInstances.push_back(target);
if(g_selectedInstances.size() == 0)
g_selectedInstances.push_back(g_dataModel);
g_usableApp->_propWindow->UpdateSelected(g_selectedInstances[0]);
}
void ArrowTool::onMouseMoved(Mouse mouse)
{
@@ -25,4 +32,18 @@ void ArrowTool::onMouseMoved(Mouse mouse)
void ArrowTool::onSelect(Mouse mouse)
{
this->setCursor(GetFileInPath("/content/images/ArrowCursor.png"));
}
void ArrowTool::onKeyDown(int key)
{
if(key == VK_CONTROL)
{
lctrlDown = true;
}
}
void ArrowTool::onKeyUp(int key)
{
if(key == VK_CONTROL)
lctrlDown = false;
}