// Status information for specialized object dragging. In order for the model // to stay status free, the status data is kept on the View // and handed over to the object at the appropriate time as a parameter. // This also includes the status of the operation and Interactive // Object creation. In this case, pHdl is null. class SdrHdl; class SdrView; class SdrPageView; class SdrDragMethod;
class SVXCORE_DLLPUBLIC SdrDragStat final
{
SdrHdl* m_pHdl; // The Handle for the User
SdrView* m_pView;
SdrPageView* m_pPageView;
std::vector<Point> mvPnts; // All previous Points: [0]=Start, [Count()-2]=Prev
Point m_aRef1; // Referencepoint: Resize fixed point, (axis of rotation,
Point m_aRef2; // axis of reflection, ...)
Point m_aPos0; // Position at the last Event
Point m_aRealNow; // Current dragging position without Snap, Ortho and Limit
tools::Rectangle m_aActionRect;
bool m_bShown; // Xor visible?
sal_uInt16 m_nMinMov; // So much has to be minimally moved first bool m_bMinMoved; // MinMove surpassed?
bool m_bHorFixed; // Dragging only vertical bool m_bVerFixed; // Dragging only horizontal bool m_bWantNoSnap; // To decide if pObj-> MovCreate () should use NoSnapPos or not. // Therefore, NoSnapPos is written into the buffer. bool m_bOrtho4; bool m_bOrtho8;
// This is passed all the way through to ApplySpecialDrag of the Edge Object // For LOK, we cannot really specify which gluepoint to select by default // It selects the nearest gluepoints after DragEnd event. // When multiple objects are on top of each other or somehow their gluepoints // collide, the gluepoint is selected from the lowest order numbered object // We can pass the ord number information inside the draginfo and choose the correct shape struct {
sal_Int32 objectOrdNum = -1;
} mGlueOptions;
// Here, the object can say: "I do not want to snap to coordinates!" // for example, the angle of the arc ... bool IsNoSnap() const { return m_bWantNoSnap; } void SetNoSnap(bool bOn = true) { m_bWantNoSnap=bOn; }
// And here the Obj say which Ortho (if there is one) can be usefully applied to him. // Ortho4 means Ortho in four directions (for Rect and CIRT) bool IsOrtho4Possible() const { return m_bOrtho4; } void SetOrtho4Possible(bool bOn = true) { m_bOrtho4=bOn; } // Ortho8 means Ortho in 8 directions (for lines) bool IsOrtho8Possible() const { return m_bOrtho8; } void SetOrtho8Possible(bool bOn = true) { m_bOrtho8=bOn; }
// Is set by an object that was dragged. bool IsEndDragChangesAttributes() const { return m_bEndDragChangesAttributes; } void SetEndDragChangesAttributes(bool bOn) { m_bEndDragChangesAttributes=bOn; } bool IsEndDragChangesGeoAndAttributes() const { return m_bEndDragChangesGeoAndAttributes; } void SetEndDragChangesGeoAndAttributes(bool bOn) { m_bEndDragChangesGeoAndAttributes=bOn; } bool IsEndDragChangesLayout() const { return mbEndDragChangesLayout; } void SetEndDragChangesLayout(bool bOn) { mbEndDragChangesLayout=bOn; }
// Is set by the view and can be evaluated by Obj bool IsMouseDown() const { return !m_bMouseIsUp; } void SetMouseDown(bool bDown) { m_bMouseIsUp=!bDown; }
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.