THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 31/08/2006 at 08:32, xxxxxxxx wrote:
Well, I'm currently using the LMB+Shift, but I've reconstructed the code for double-click just in case you see something that can be fixed:
// ToolData.MouseInput
//*---------------------------------------------------------------------------*
Bool IPPTool::MouseInput(BaseDocument* doc, BaseContainer& data, BaseDraw* bd, EditorWindow* win, const BaseContainer& msg)
//*---------------------------------------------------------------------------*
{
// Only interested in Left Mouse Button
if (msg.GetLong(BFM_INPUT_CHANNEL) != BFM_INPUT_MOUSELEFT) return TRUE;
if (!hilitedBP)
{
// This allows click-deselection (see Draw())
if (selectedBP)
{
doc->SetActiveObject(selectedBP, SELECTION_SUB);
selectedBP = NULL;
}
return TRUE;
}
// Left Mouse Button double-click for selection/translation/rotation/scale
if (msg.GetBool(BFM_INPUT_DOUBLECLICK))
{
selectedBP = hilitedBP;
doc->SetActiveObject(hilitedBP, SELECTION_NEW);
// Get Start Mouse coordinates
mouseX = msg.GetReal(BFM_INPUT_X);
mouseY = msg.GetReal(BFM_INPUT_Y);
// Operation
if (operation == IPTOP_ROTATE) Rotate(doc, bd, win);
else if (operation == IPTOP_SCALE) Scale(doc, bd, win);
else if (operation == IPTOP_TRANSLATE) Translate(doc, bd, win);
EventAdd();
}
// Left Mouse Button single-click for highlight stack traversal
else
{
level++;
// This gets the Draw to happen (maybe DrawViews() is better?)
EventAdd();
}
return TRUE;
}
Thanks,