bool FuConstRectangle::MouseButtonDown(const MouseEvent& rMEvt)
{ // remember button state for creation of own MouseEvents
SetMouseButtonCode(rMEvt.GetButtons());
bool FuConstRectangle::MouseButtonUp(const MouseEvent& rMEvt)
{ // remember button state for creation of own MouseEvents
SetMouseButtonCode(rMEvt.GetButtons());
bool bReturn = false;
if ( pView->IsCreateObj() && rMEvt.IsLeft() )
{
pView->EndCreateObj(SdrCreateCmd::ForceEnd);
if (aSfxRequest.GetSlot() == SID_DRAW_CAPTION_VERTICAL)
{ // set vertical flag for caption object
const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); if (rMarkList.GetMark(0))
{
SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj(); // create OutlinerParaObject now so it can be set to vertical if ( auto pSdrTextObj = DynCastSdrTextObj( pObj) )
pSdrTextObj->ForceOutlinerParaObject();
OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject(); if( pOPO && !pOPO->IsEffectivelyVertical() )
pOPO->SetVertical( true );
}
}
switch (aSfxRequest.GetSlot() )
{ case SID_DRAW_LINE: case SID_DRAW_XLINE: case SID_LINE_ARROW_END: case SID_LINE_ARROW_CIRCLE: case SID_LINE_ARROW_SQUARE: case SID_LINE_ARROW_START: case SID_LINE_CIRCLE_ARROW: case SID_LINE_SQUARE_ARROW: case SID_LINE_ARROWS:
aNewPointer = PointerStyle::DrawLine;
aObjKind = SdrObjKind::Line; break;
case SID_DRAW_MEASURELINE:
aNewPointer = PointerStyle::DrawLine;
aObjKind = SdrObjKind::Measure; break;
case SID_DRAW_RECT:
aNewPointer = PointerStyle::DrawRect;
aObjKind = SdrObjKind::Rectangle; break;
case SID_DRAW_ELLIPSE:
aNewPointer = PointerStyle::DrawEllipse;
aObjKind = SdrObjKind::CircleOrEllipse; break;
case SID_DRAW_CAPTION: case SID_DRAW_CAPTION_VERTICAL:
aNewPointer = PointerStyle::DrawCaption;
aObjKind = SdrObjKind::Caption; break;
if(pObj)
{
tools::Rectangle aRect(rRectangle);
Point aStart = aRect.TopLeft();
Point aEnd = aRect.BottomRight();
switch(nID)
{ case SID_DRAW_LINE: case SID_DRAW_XLINE: case SID_LINE_ARROW_END: case SID_LINE_ARROW_CIRCLE: case SID_LINE_ARROW_SQUARE: case SID_LINE_ARROW_START: case SID_LINE_CIRCLE_ARROW: case SID_LINE_SQUARE_ARROW: case SID_LINE_ARROWS:
{ if(auto pPathObj = dynamic_cast<SdrPathObj*>( pObj.get() ))
{
sal_Int32 nYMiddle((aRect.Top() + aRect.Bottom()) / 2);
basegfx::B2DPolygon aPoly;
aPoly.append(basegfx::B2DPoint(aStart.X(), nYMiddle));
aPoly.append(basegfx::B2DPoint(aEnd.X(), nYMiddle));
pPathObj->SetPathPoly(basegfx::B2DPolyPolygon(aPoly));
} else
{
OSL_FAIL("Object is NO line object");
}
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.