// as the data are not mine, I also do not delete the old
m_pData->CopyFrom(*rConn.GetData()); // CopyFrom is virtual, therefore it is not a problem if m_pData is a derived type of OTableConnectionData
bool OTableConnection::CheckHit( const Point& rMousePos ) const
{ // check if the point hit our line return std::any_of(m_vConnLine.begin(),
m_vConnLine.end(),
[&rMousePos]
( const std::unique_ptr<OConnectionLine> & pLine )
{ return pLine->CheckHit( rMousePos ); } );
}
void OTableConnection::InvalidateConnection()
{
tools::Rectangle rcBounding = GetBoundingRect();
rcBounding.AdjustBottom(1 );
rcBounding.AdjustRight(1 ); // I believe Invalidate and Draw(Rectangle) do not behave consistent: in any case it // could explain, why without the fake here when deleting a connection a dash remains at the lower end: // Invalidate records obviously one pixel line less as Draw. // Or everything works differently... in any case it works...
m_pParent->Invalidate( rcBounding, InvalidateFlags::NoChildren );
}
tools::Rectangle OTableConnection::GetBoundingRect() const
{ // determine all lines of the surrounding rectangle
tools::Rectangle aBoundingRect( Point(0,0), Point(0,0) );
tools::Rectangle aTempRect; for (autoconst& elem : m_vConnLine)
{
aTempRect = elem->GetBoundingRect();
// is the BoundingRect of this line valid? if( (aTempRect.GetWidth()!=1) && (aTempRect.GetHeight()!=1) )
{ if( (aBoundingRect.GetWidth()==1) && (aBoundingRect.GetHeight()==1) )
aBoundingRect = aTempRect; else
aBoundingRect.Union( aTempRect );
}
}
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.