void SdrDragStat::PrevPoint()
{ if (mvPnts.size()>1) { // one has to remain at all times
mvPnts.erase(mvPnts.begin()+mvPnts.size()-2);
mvPnts.back() = m_aRealNow;
}
}
bool SdrDragStat::CheckMinMoved(const Point& rPnt)
{ if (!m_bMinMoved) {
tools::Long dx=rPnt.X()-GetPrev().X(); if (dx<0) dx=-dx;
tools::Long dy=rPnt.Y()-GetPrev().Y(); if (dy<0) dy=-dy; if (dx>=tools::Long(m_nMinMov) || dy>=tools::Long(m_nMinMov))
m_bMinMoved=true;
} return m_bMinMoved;
}
Fraction SdrDragStat::GetXFact() const
{
tools::Long nMul=mvPnts.back().X()-m_aRef1.X();
tools::Long nDiv=GetPrev().X()-m_aRef1.X(); if (nDiv==0) nDiv=1; if (m_bHorFixed) { nMul=1; nDiv=1; } return Fraction(nMul,nDiv);
}
Fraction SdrDragStat::GetYFact() const
{
tools::Long nMul=mvPnts.back().Y()-m_aRef1.Y();
tools::Long nDiv=GetPrev().Y()-m_aRef1.Y(); if (nDiv==0) nDiv=1; if (m_bVerFixed) { nMul=1; nDiv=1; } return Fraction(nMul,nDiv);
}
void SdrDragStat::TakeCreateRect(tools::Rectangle& rRect) const
{
rRect=tools::Rectangle(mvPnts[0], mvPnts.back()); if (mvPnts.size()>1) {
Point aBtmRgt(mvPnts[1]);
rRect.SetRight(aBtmRgt.X() );
rRect.SetBottom(aBtmRgt.Y() );
} if (m_pView!=nullptr && m_pView->IsCreate1stPointAsCenter()) {
rRect.AdjustTop(rRect.Top()-rRect.Bottom() );
rRect.AdjustLeft(rRect.Left()-rRect.Right() );
}
}
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.