binfilter/bf_sd/source/ui/view/sd_frmview.cxx | 1 binfilter/bf_svx/source/svdraw/svx_svddrgv.cxx | 43 ----- binfilter/bf_svx/source/svdraw/svx_svdlayer.cxx | 4 binfilter/bf_svx/source/svdraw/svx_svdmark.cxx | 19 -- binfilter/bf_svx/source/svdraw/svx_svdmrkv.cxx | 2 binfilter/inc/bf_svx/svddrgv.hxx | 204 ------------------------ binfilter/inc/bf_svx/svdxcgv.hxx | 5 7 files changed, 4 insertions(+), 274 deletions(-)
New commits: commit 184b91bc311b5d518215c106b0590bcc84b71ccf Author: Joseph Powers <jpower...@cox.net> Date: Mon Oct 10 08:05:11 2011 -0700 Cleanup class SdrDragView a little diff --git a/binfilter/bf_sd/source/ui/view/sd_frmview.cxx b/binfilter/bf_sd/source/ui/view/sd_frmview.cxx index 1220694..516897e 100644 --- a/binfilter/bf_sd/source/ui/view/sd_frmview.cxx +++ b/binfilter/bf_sd/source/ui/view/sd_frmview.cxx @@ -296,7 +296,6 @@ void FrameView::Update(SdOptions* pOptions) SetGridCoarse( Size( pOptions->GetFldDrawX(), pOptions->GetFldDrawY() ) ); SetGridFine( Size( pOptions->GetFldDivisionX(), pOptions->GetFldDivisionY() ) ); -// SetSnapGrid( Size( pOptions->GetFldSnapX(), pOptions->GetFldSnapY() ) ); Fraction aFractX(pOptions->GetFldDrawX(), pOptions->GetFldDrawX() / ( pOptions->GetFldDivisionX() ? pOptions->GetFldDivisionX() : 1 )); Fraction aFractY(pOptions->GetFldDrawY(), pOptions->GetFldDrawY() / ( pOptions->GetFldDivisionY() ? pOptions->GetFldDivisionY() : 1 )); SetSnapGridWidth(aFractX, aFractY); diff --git a/binfilter/bf_svx/source/svdraw/svx_svddrgv.cxx b/binfilter/bf_svx/source/svdraw/svx_svddrgv.cxx index bba22a1..d774bb6 100644 --- a/binfilter/bf_svx/source/svdraw/svx_svddrgv.cxx +++ b/binfilter/bf_svx/source/svdraw/svx_svddrgv.cxx @@ -32,69 +32,31 @@ namespace binfilter { -#define XOR_DRAG_PEN PEN_DOT - /*N*/ void SdrDragView::ImpClearVars() /*N*/ { -/*N*/ bFramDrag=FALSE; /*N*/ eDragMode=SDRDRAG_MOVE; -/*N*/ bDragLimit=FALSE; /*N*/ bMarkedHitMovesAlways=FALSE; -/*N*/ eDragHdl=HDL_MOVE; -/*N*/ pDragHdl=NULL; -/*N*/ bDragHdl=FALSE; -/*N*/ bDragSpecial=FALSE; -/*N*/ pDragBla=NULL; /*N*/ bDragStripes=FALSE; /*N*/ bNoDragHdl=TRUE; /*N*/ bMirrRefDragObj=TRUE; /*N*/ bSolidDragging=FALSE; -/*N*/ bSolidDrgNow=FALSE; -/*N*/ bSolidDrgChk=FALSE; /*N*/ bDragWithCopy=FALSE; -/*N*/ pInsPointUndo=NULL; -/*N*/ bInsAfter=FALSE; -/*N*/ bInsGluePoint=FALSE; -/*N*/ bInsObjPointMode=FALSE; -/*N*/ bInsGluePointMode=FALSE; -/*N*/ nDragXorPolyLimit=100; -/*N*/ nDragXorPointLimit=500; /*N*/ bNoDragXorPolys=FALSE; -/*N*/ bAutoVertexCon=TRUE; -/*N*/ bAutoCornerCon=FALSE; -/*N*/ bRubberEdgeDragging=TRUE; -/*N*/ nRubberEdgeDraggingLimit=100; -/*N*/ bDetailedEdgeDragging=TRUE; -/*N*/ nDetailedEdgeDraggingLimit=10; -/*N*/ bResizeAtCenter=FALSE; -/*N*/ bCrookAtCenter=FALSE; -/*N*/ bMouseHideWhileDraggingPoints=FALSE; -/*N*/ } - -/*N*/ void SdrDragView::ImpMakeDragAttr() -/*N*/ { -/*N*/ ImpDelDragAttr(); /*N*/ } /*N*/ SdrDragView::SdrDragView(SdrModel* pModel1, OutputDevice* pOut): /*N*/ SdrExchangeView(pModel1,pOut) /*N*/ { /*N*/ ImpClearVars(); -/*N*/ ImpMakeDragAttr(); /*N*/ } /*N*/ SdrDragView::~SdrDragView() /*N*/ { -/*N*/ ImpDelDragAttr(); -/*N*/ } - -/*N*/ void SdrDragView::ImpDelDragAttr() -/*N*/ { /*N*/ } /*N*/ BOOL SdrDragView::IsAction() const /*N*/ { -/*N*/ return SdrExchangeView::IsAction() || pDragBla!=NULL; +/*N*/ return SdrExchangeView::IsAction(); /*N*/ } /*N*/ void SdrDragView::BrkAction() @@ -118,8 +80,7 @@ namespace binfilter { /*N*/ void SdrDragView::SetDragStripes(BOOL bOn) /*N*/ { -/*N*/ if ( !(pDragBla!=NULL && aDragStat.IsShown() ) ) -/*N*/ bDragStripes=bOn; +/*N*/ bDragStripes=bOn; /*N*/ } //////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/binfilter/bf_svx/source/svdraw/svx_svdlayer.cxx b/binfilter/bf_svx/source/svdraw/svx_svdlayer.cxx index c706ae6..a2952d0 100644 --- a/binfilter/bf_svx/source/svdraw/svx_svdlayer.cxx +++ b/binfilter/bf_svx/source/svdraw/svx_svdlayer.cxx @@ -146,10 +146,6 @@ namespace binfilter { /*N*/ { /*N*/ // Das Standardlayerflag kam direkt nach der Betalieferung dazu /*N*/ rIn >> rLayer.nType; -/*N*/ -/*N*/ if(rLayer.nType == 1) -/*N*/ {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } /*N*/ } /*N*/ /*N*/ if(aHead.GetVersion() <= 12) diff --git a/binfilter/bf_svx/source/svdraw/svx_svdmark.cxx b/binfilter/bf_svx/source/svdraw/svx_svdmark.cxx index 23e2deb..4aae881 100644 --- a/binfilter/bf_svx/source/svdraw/svx_svdmark.cxx +++ b/binfilter/bf_svx/source/svdraw/svx_svdmark.cxx @@ -33,29 +33,10 @@ namespace binfilter { //////////////////////////////////////////////////////////////////////////////////////////////////// - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - - - -//////////////////////////////////////////////////////////////////////////////////////////////////// - /*N*/ void SdrMarkList::ForceSort() /*N*/ { /*N*/ if (!bSorted) { /*N*/ bSorted=TRUE; -/*N*/ ULONG nAnz=aList.Count(); -/*N*/ if (nAnz>1) {DBG_BF_ASSERT(0, "STRIP"); -/*N*/ } /*N*/ } /*N*/ } diff --git a/binfilter/bf_svx/source/svdraw/svx_svdmrkv.cxx b/binfilter/bf_svx/source/svdraw/svx_svdmrkv.cxx index b84c4fc..9c153c9 100644 --- a/binfilter/bf_svx/source/svdraw/svx_svdmrkv.cxx +++ b/binfilter/bf_svx/source/svdraw/svx_svdmrkv.cxx @@ -107,7 +107,7 @@ namespace binfilter { /*N*/ aMark.SetUnsorted(); /*N*/ aMark.ForceSort(); /*N*/ SdrView* pV=(SdrView*)this; -/*N*/ if (pV!=NULL && !pV->IsDragObj() && !pV->IsInsObjPoint()) { // an dieser Stelle habe ich ein ziemliches Problem !!! +/*N*/ if (pV!=NULL && !pV->IsInsObjPoint()) { // an dieser Stelle habe ich ein ziemliches Problem !!! /*N*/ AdjustMarkHdl(); } /*N*/ } diff --git a/binfilter/inc/bf_svx/svddrgv.hxx b/binfilter/inc/bf_svx/svddrgv.hxx index 3bcec2b..b5866a4 100644 --- a/binfilter/inc/bf_svx/svddrgv.hxx +++ b/binfilter/inc/bf_svx/svddrgv.hxx @@ -30,19 +30,9 @@ #define _SVDDRGV_HXX #include <bf_svtools/bf_solar.h> - -// HACK to avoid too deep includes and to have some -// levels free in svdmark itself (MS compiler include depth limit) -#include <bf_svx/svdhdl.hxx> - #include <bf_svx/svdxcgv.hxx> -namespace binfilter { -//************************************************************ -// Vorausdeklarationen -//************************************************************ - -class SdrUndoGeoObj; +namespace binfilter { //////////////////////////////////////////////////////////////////////////////////////////////////// // @@ -56,54 +46,18 @@ class SdrDragView: public SdrExchangeView friend class SdrDragMethod; protected: - SdrHdl* pDragHdl; - SdrDragMethod* pDragBla; - SdrUndoGeoObj* pInsPointUndo; - - Rectangle aDragLimit; - XubString aInsPointUndoStr; - SdrMarkList aFollowingEdges; // Wenn Knoten gedraggd werden, sollen alle Kanten als Xor folgen - - SdrHdlKind eDragHdl; - - ULONG nDragXorPolyLimit; - ULONG nDragXorPointLimit; - USHORT nRubberEdgeDraggingLimit; - USHORT nDetailedEdgeDraggingLimit; - - unsigned bFramDrag : 1; // z.Zt. FrameDrag - unsigned bDragSpecial : 1; // z.Zt. Special Obj-Dragging unsigned bMarkedHitMovesAlways : 1; // Persistent - unsigned bDragLimit : 1; // Limit auf SnapRect statt BoundRect - unsigned bDragHdl : 1; // TRUE: RefPt wird verschoben unsigned bDragStripes : 1; // Persistent unsigned bNoDragHdl : 1; // Persistent - Handles waehrend des Draggens verstecken unsigned bMirrRefDragObj : 1; // Persistent - Waehrend des Draggens der Spiegelachse die gespiegelten Objekte als Xor zeigen unsigned bSolidDragging : 1; // Dragging und Create in Echtzeit erlaubt - unsigned bSolidDrgNow : 1; // SolidDragging laeuft gerade (z.Zt. noch FALSE bei 3D (LibObjs)) - unsigned bSolidDrgChk : 1; // SolidDragging gecheckt - unsigned bMouseHideWhileDraggingPoints : 1; - unsigned bResizeAtCenter : 1; - unsigned bCrookAtCenter : 1; unsigned bDragWithCopy : 1; - unsigned bInsAfter : 1; // Parameter zum Einfuegen von Folgepunkten - unsigned bInsGluePoint : 1; - unsigned bInsObjPointMode : 1; - unsigned bInsGluePointMode : 1; unsigned bNoDragXorPolys : 1; - unsigned bAutoVertexCon : 1; // Automatische Konnektorgenerierung an den Scheitelpunkten - unsigned bAutoCornerCon : 1; // Automatische Konnektorgenerierung an den Eckpunkten - unsigned bRubberEdgeDragging : 1; - unsigned bDetailedEdgeDragging : 1; private: void ImpClearVars(); - void ImpMakeDragAttr(); - void ImpDelDragAttr(); protected: - // aDragPoly0 an den PageViews setzen - BOOL BegInsObjPoint(BOOL bIdxZwang, USHORT nIdx, const Point& rPnt, BOOL bNewObj, OutputDevice* pOut, short nMinMov); virtual void WriteRecords(SvStream& rOut) const; virtual BOOL ReadRecord(const SdrIOHeader& rViewHead, const SdrNamedSubRecord& rSubHead, SvStream& rIn); @@ -115,68 +69,14 @@ public: virtual BOOL IsAction() const; virtual void BrkAction(); - // Spezialimplementation fuer den Writer: - // TakeDragObjAnchorPos() liefert die Position an der ein Objekt - // beim Draggen einer Einfachselektion ungefaehr landet wenn es - // "losgelassen" wird (EndDrag). - // In der Regel ist das die linke obere Ecke des zu erwartenden neuen - // SnapRects. Ausnahme: CaptionObj. Dort ist es die Position des - // "Schwanzendes". - // Bei Returncode FALSE konnte ich die Position nicht bestimmen - // (z.B. Punktverschiebung, Mehrfachselektion, Schieben der - // Spiegelschse, ...) - - // Wird pForcedMeth uebergeben, so wird pHdl, ... nicht ausgewerten, sondern diese - // Drag-Methode verwendet. Die Instanz geht dabei ins Eigentum der View ueber und - // wird zum Ende des Draggings destruiert. - BOOL IsDragObj() const { return pDragBla!=NULL && !bInsGluePoint; } - SdrHdl* GetDragHdl() const { return pDragHdl; } - SdrDragMethod* GetDragMethod() const { return pDragBla; } - BOOL IsDraggingPoints() const { return eDragHdl==HDL_POLY; } - BOOL IsDraggingGluePoints() const { return eDragHdl==HDL_GLUE; } - - // Wer das beim BegDrag oder mittendrin schon festlegen will. - // (Wird bei jedem BegDrag auf FALSE zurueckgesetzt, also nach - // BegDrag setzen.) - void SetDragWithCopy(BOOL bOn) { bDragWithCopy = bOn; } - BOOL IsDragWithCopy() const { return bDragWithCopy; } - - void SetInsertAfter(BOOL bOn) { bInsAfter = bOn; } - BOOL IsInsertAfter() const { return bInsAfter; } - - void SetInsertGluePoint(BOOL bOn) { bInsGluePoint = bOn; } - BOOL IsInsertGluePoint() const { return bInsGluePoint; } - // Interaktives einfuegen eines neuen Punktes. nIdx=0 => vor dem ersten Punkt. - BOOL BegInsObjPoint(USHORT nIdx, const Point& rPnt, BOOL bNewObj, OutputDevice* pOut=NULL, short nMinMov=-3) { return BegInsObjPoint(TRUE,nIdx,rPnt,bNewObj,pOut,nMinMov); } - BOOL BegInsObjPoint(const Point& rPnt, BOOL bNewObj, OutputDevice* pOut=NULL, short nMinMov=-3) { return BegInsObjPoint(FALSE,0,rPnt,bNewObj,pOut,nMinMov); } BOOL IsInsObjPoint() const { return FALSE; } // DBG_BF_ASSERT - // Fuer die App zum Verwalten des Status. GetPreferedPointer() wird - // spaeter vielleicht einen passenden Pointer dafuer liefern - void SetInsObjPointMode(BOOL bOn) { bInsObjPointMode = bOn; } - BOOL IsInsObjPointMode() const { return bInsObjPointMode; } - - BOOL IsInsGluePoint() const { return pDragBla!=NULL && bInsGluePoint; } - - // Fuer die App zum Verwalten des Status. GetPreferedPointer() wird - // spaeter vielleicht einen passenden Pointer dafuer liefern - void SetInsGluePointMode(BOOL bOn) { bInsGluePointMode = bOn; } - BOOL IsInsGluePointMode() const { return bInsGluePointMode; } - // Begrenzungslinien ueber's gesamte Win waehrend des Draggens // Persistent. Default=FALSE. void SetDragStripes(BOOL bOn); BOOL IsDragStripes() const { return bDragStripes; } - // Handles waehrend des Draggens verstecken - BOOL IsDragHdlHide() const { return bNoDragHdl; } - - // Beim Draggen von Polygonpunkten und Klebepunkten - // die Maus verstecken. Default=FALSE - void SetMouseHideWhileDraggingPoints(BOOL bOn) { bMouseHideWhileDraggingPoints = bOn; } - BOOL IsMouseHideWhileDraggingPoints() const { return bMouseHideWhileDraggingPoints; } - // Beim Draggen werden i.d.R. die Konturen der markierten Objekte // als Xor-Polygone dargestellt. Wird dieses Flag hier gesetzt, // wird (z.B. bei Mehrfachselektion) nur ein Xor-Frame gezeichnet. @@ -187,69 +87,9 @@ public: void SetNoDragXorPolys(BOOL bOn); BOOL IsNoDragXorPolys() const { return bNoDragXorPolys; } - // Uebersteigt die Anzahl der markierten Objekte den hier eingestellten - // Wert, wird implizit (temporaer) auf NoDragPolys geschaltet. - // PolyPolygone etc werden entsprechend als mehrere Objekte gewertet. - // Default=100 - void SetDragXorPolyLimit(ULONG nObjAnz) { nDragXorPolyLimit=nObjAnz; } - ULONG GetDragXorPolyLimit() const { return nDragXorPolyLimit; } - - // Wie DragXorPolyLimit, jedoch bezogen auf die Gesamtpunktanzahl - // aller Polygone. Default=500. - // Auf NoDragPolys wird (temporaer) geschaltet, wenn eins der Limits - // ueberstiegen wird. - void SetDragXorPointLimit(ULONG nPntAnz) { nDragXorPointLimit=nPntAnz; } - ULONG GetDragXorPointLimit() const { return nDragXorPointLimit; } - void SetSolidDragging(BOOL bOn) { bSolidDragging = bOn; } BOOL IsSolidDragging() const { return bSolidDragging; } - void SetSolidDraggingNow(BOOL bOn) { bSolidDrgNow = bOn; } - BOOL IsSolidDraggingNow() const { return bSolidDrgNow; } - - void SetSolidDraggingCheck(BOOL bOn) { bSolidDrgChk = bOn; } - BOOL IsSolidDraggingCheck() const { return bSolidDrgChk; } - - // Dragging/Creating von Verbindern: - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Verbinder an Objektscheitelpunkte ankleben - // Default=TRUE=Ja - void SetAutoVertexConnectors(BOOL bOn) { bAutoVertexCon = bOn; } - BOOL IsAutoVertexConnectors() const { return bAutoVertexCon; } - - // Verbinder an Objektecken ankleben - // Default=FALSE=Nein - void SetAutoCornerConnectors(BOOL bOn) { bAutoCornerCon = bOn; } - BOOL IsAutoCornerConnectors() const { return bAutoCornerCon; } - - // Dragging von verbundenen Objekten (Nodes): - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // DetailedEdgeDraggingLimit: Wie RubberEdgeDraggingLimit, jedoch bezieht - // sich dieses Limit auf die detalierte Darstellung, d.h. nicht nur - // Gummibaender sondern komplette Neuberechnunen sind beim Draggen sichtbar. - // Diese detalierte Darstellung ist eh nur beim MoveDrag moeglich. - // Defaultwert ist 10 - BOOL IsDetailedEdgeDragging() const { return bDetailedEdgeDragging; } - - USHORT GetDetailedEdgeDraggingLimit() const { return nDetailedEdgeDraggingLimit; } - - // EdgeDraggingLimit: Sind mehr als nEdgeObjAnz Kanten betroffen, werden - // diese beim interaktiven Draggen nicht mit angezeigt. - // Gemeint sind hier die "Gummibaender", die weniger Rechenzeit benoetigen - // als die kompletten Neuberechnungen beim DetailedEdgeDragging. - // Defaultwert ist 100 - BOOL IsRubberEdgeDragging() const { return bRubberEdgeDragging; } - - USHORT GetRubberEdgeDraggingLimit() const { return nRubberEdgeDraggingLimit; } - - // Verbinderhandling also zu deutsch wie folgt (bei Defaulteinstellungen): - // - Sind bis max 10 Verbinder betroffen werden diese bei jedem - // MouseMove neu berechnet - // - Sind zwischen 11 und 100 Verbinder betroffen werden die - // Verbindungen beim Draggen als gerade Linien dargestellt. - // - Bei mehr als 100 betroffenen Verbindern wird beim Draggen nichts - // mehr gezeichnet was auf Verbinder hinweist. - // Ist ein spezieller Dragmode eingeschaltet, wie Rotate, Mirror oder Crook, // dann leitet ein Hit auf das markierte Objekt genau dieses Dragging ein. // Setzt man MarkedHitMovesAlways auf TRUE, so leitet ein Hit auf das @@ -258,48 +98,6 @@ public: // konfigurierbar sein! void SetMarkedHitMovesAlways(BOOL bOn) { bMarkedHitMovesAlways = bOn; } BOOL IsMarkedHitMovesAlways() const { return bMarkedHitMovesAlways; } - - // Beim Draggen der Spiegelachse das Spiegelbild der markierten Objekte - // als Xor darstellen? Persistent. Noch nicht implementiert. Default TRUE. - void SetMirrRefDragObj(BOOL bOn) { bMirrRefDragObj = bOn; } - BOOL IsMirrRefDragObj() const { return bMirrRefDragObj; } - - - // Beim Resize die Mitte als Referenz - // Default=FALSE. - BOOL IsResizeAtCenter() const { return bResizeAtCenter; } - void SetResizeAtCenter(BOOL bOn) { bResizeAtCenter = bOn; SnapMove(); } - - // Symmetrisches Crook - // Default=FALSE. - BOOL IsCrookAtCenter() const { return bCrookAtCenter; } - void SetCrookAtCenter(BOOL bOn) { bCrookAtCenter = bOn; SnapMove(); } - - // Begrenzung des Arbeitsbereichs. Die Begrenzung bezieht sich auf die - // View, nicht auf die einzelnen PageViews. Von der View wird diese - // Begrenzung nur bei Interaktionen wie Dragging und Create ausgewertet. - // Bei von der App algorithmisch oder UI-gesteuerte Aktionen (SetGeoAttr, - // MoveMarkedObj, ...) muss die App dieses Limit selbst beruecksichtigen. - // Ferner ist dieses Limit als Grob-Limit zu sehen. U.U. koennen Objekte - // (z.B. beim Drehen) nicht exakt bis an dieses Limit herangedraggt werden, - // koennen Objekte durch Rundungsfehler doch etwas ueberstehen, ... . - // Default=EmptyRect=keine Begrenzung. - // erst z.T. impl. - // (besser in die DragView?) - void SetWorkArea(const Rectangle& rRect) { aMaxWorkArea=rRect; } - const Rectangle& GetWorkArea() const { return aMaxWorkArea; } - - // Das DragLimit ist bezogen auf die Page des Objekts. - // (Oder auf die View??? Muss ich mal^^^^recherchieren. Joe.) - // FALSE=Kein Limit. - // Das Rueckgabe-Rect muss absolute Koordinaten enthalten. Der Maximale - // Dragbereich wird von der View dann so gewaehlt, dass das SnapRect des - // Objekts bis Maximal auf die Kante des LimitRects gemoved bzw. gesized - // wird. Bei Objekten wie Bezierkurven, gedrehten Rechtecken ist zu beachten - // das durch anschliessende Neuberechnung des SnapRects (bei Resize) - // Rundungsfehler auftreten koennen, wodurch das LimitRect minnimal - // ueberschritten werden koennte... - // Implementiert fuer Move und Resize. }; }//end of namespace binfilter diff --git a/binfilter/inc/bf_svx/svdxcgv.hxx b/binfilter/inc/bf_svx/svdxcgv.hxx index 9a90e61..ada423e 100644 --- a/binfilter/inc/bf_svx/svdxcgv.hxx +++ b/binfilter/inc/bf_svx/svdxcgv.hxx @@ -58,11 +58,6 @@ class SdrExchangeView: public SdrObjEditView { friend class SdrPageView; -protected: - - - // liefert True, wenn rPt geaendert wurde - public: SdrExchangeView(SdrModel* pModel1, OutputDevice* pOut=NULL); _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits