FuEditGluePoints::FuEditGluePoints (
ViewShell& rViewSh,
::sd::Window* pWin,
::sd::View* pView,
SdDrawDocument& rDoc,
SfxRequest& rReq)
: FuDraw(rViewSh, pWin, pView, rDoc, rReq) //Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, //and SHIFT+ENTER key to decide the position and draw the new insert point
,bBeginInsertPoint(false),
oldPoint(0,0)
{
}
//Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, //and SHIFT+ENTER key to decide the position and draw the new insert point
bool bReturn = false;
switch (rKEvt.GetKeyCode().GetCode())
{ case KEY_UP: case KEY_DOWN: case KEY_LEFT: case KEY_RIGHT:
{ if(rKEvt.GetKeyCode().IsShift()&& mpView->IsInsGluePointMode() ){
::tools::Long nX = 0;
::tools::Long nY = 0;
sal_uInt16 nCode = rKEvt.GetKeyCode().GetCode(); if (nCode == KEY_UP)
{ // scroll up
nX = 0;
nY =-1;
} elseif (nCode == KEY_DOWN)
{ // scroll down
nX = 0;
nY = 1;
} elseif (nCode == KEY_LEFT)
{ // scroll left
nX =-1;
nY = 0;
} elseif (nCode == KEY_RIGHT)
{ // scroll right
nX = 1;
nY = 0;
}
Point centerPoint;
::tools::Rectangle rect = mpView->GetMarkedObjRect();
centerPoint = mpWindow->LogicToPixel(rect.Center());
Point aPoint = bBeginInsertPoint? oldPoint:centerPoint;
Point ePoint = aPoint + Point(nX,nY);
mpWindow->SetPointerPosPixel(ePoint); //simulate mouse move action
MouseEvent eMevt(ePoint, 1, MouseEventModifiers::DRAGMOVE, MOUSE_LEFT, 0);
MouseMove(eMevt);
oldPoint = ePoint;
bBeginInsertPoint = true;
bReturn = true;
}
} break; case KEY_RETURN: if(rKEvt.GetKeyCode().IsShift() && mpView->IsInsGluePointMode() )
{ if(bBeginInsertPoint)
{
mpWindow->SetPointerPosPixel(oldPoint); //simulate mouse button down action
MouseEvent aMevt(oldPoint, 1,
MouseEventModifiers::SIMPLEMOVE | MouseEventModifiers::DRAGMOVE,
MOUSE_LEFT, KEY_SHIFT); // MT IA2: Not used? // sal_uInt16 ubuttons = aMevt.GetButtons(); // sal_uInt16 uMod = aMevt.GetModifier();
MouseButtonDown(aMevt);
mpWindow->CaptureMouse(); //simulate mouse button up action
MouseEvent rMEvt(oldPoint+Point(0,0), 1,
MouseEventModifiers::SIMPLEMOVE | MouseEventModifiers::ENTERWINDOW,
MOUSE_LEFT, KEY_SHIFT);
MouseButtonUp(rMEvt);
bReturn= true;
}
} break;
}
if(!bReturn)
bReturn = FuDraw::KeyInput(rKEvt);
return bReturn;
}
//Add Shift+UP/DOWN/LEFT/RIGHT key to move the position of insert point, and //SHIFT+ENTER key to decide the position and draw the new insert point void FuEditGluePoints::ForcePointer(const MouseEvent* pMEvt)
{ if(bBeginInsertPoint && pMEvt)
{
MouseEvent aMEvt(pMEvt->GetPosPixel(), pMEvt->GetClicks(),
pMEvt->GetMode(), pMEvt->GetButtons(), pMEvt->GetModifier() & ~KEY_SHIFT);
FuDraw::ForcePointer(&aMEvt);
} else
{
FuDraw::ForcePointer(pMEvt);
}
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.