diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/svtools/parhtml.hxx | 111 | ||||
-rw-r--r-- | include/svtools/rtfkeywd.hxx | 6 | ||||
-rw-r--r-- | include/svx/svddrgv.hxx | 196 |
3 files changed, 157 insertions, 156 deletions
diff --git a/include/svtools/parhtml.hxx b/include/svtools/parhtml.hxx index 920c3b260bd2..8ba1182ae2fd 100644 --- a/include/svtools/parhtml.hxx +++ b/include/svtools/parhtml.hxx @@ -74,44 +74,44 @@ enum HTMLScriptLanguage struct HTMLOptionEnum { - const sal_Char *pName; // Wert einer HTML-Option - sal_uInt16 nValue; // und der dazugehoerige Wert eines Enums + const sal_Char *pName; // value of an HTML option + sal_uInt16 nValue; // and corresponding value of an enum }; -// Repraesentation einer HTML-Option (=Atrribut in einem Start-Tag) -// Die Werte der Optionen werden immer als String gespeichert. -// Die Methoden GetNumber, ... duerfen nur aufgerufen werden, wenn -// die Option auch numerisch, ... ist. - +/** Representation of an HTML option (=attribute in a start tag). + * The values of the options are always stored as strings. + * The methods GetNumber,... may only be called if the option + * is actually numerical,... + */ class SVT_DLLPUBLIC HTMLOption { - OUString aValue; // der Wert der Option (immer als String) - OUString aToken; // der Name der Option als String - sal_uInt16 nToken; // und das entsprechende Token + OUString aValue; // value of the option (always as string) + OUString aToken; // name of the option as string + sal_uInt16 nToken; // and respective token public: HTMLOption( sal_uInt16 nTyp, const OUString& rToken, const OUString& rValue ); - // der Name der Option ... - sal_uInt16 GetToken() const { return nToken; } // ... als Enum - const OUString& GetTokenString() const { return aToken; } // ... als String + // name of the option... + sal_uInt16 GetToken() const { return nToken; } // ... as enum + const OUString& GetTokenString() const { return aToken; } // ... as string - // der Wert der Option ... - const OUString& GetString() const { return aValue; } // ... als String + // value of the option ... + const OUString& GetString() const { return aValue; } // ... as string - sal_uInt32 GetNumber() const; // ... als Zahl - sal_Int32 GetSNumber() const; // ... als Zahl - void GetNumbers( std::vector<sal_uInt32> &rNumbers, // ... als Zahlen + sal_uInt32 GetNumber() const; // ... as number + sal_Int32 GetSNumber() const; // ... as number + void GetNumbers( std::vector<sal_uInt32> &rNumbers, // ... as numbers bool bSpaceDelim=false ) const; - void GetColor( Color& ) const; // ... als Farbe + void GetColor( Color& ) const; // ... as color - // ... als Enum pOptEnums ist ein HTMLOptionEnum-Array + // ... as enum; pOptEnums is an HTMLOptionEnum array sal_uInt16 GetEnum( const HTMLOptionEnum *pOptEnums, sal_uInt16 nDflt=0 ) const; bool GetEnum( sal_uInt16 &rEnum, const HTMLOptionEnum *pOptEnums ) const; - // ... und als ein par spezielle Enums + // ... and as a few special enums HTMLInputType GetInputType() const; // <INPUT TYPE=...> HTMLTableFrame GetTableFrame() const; // <TABLE FRAME=...> HTMLTableRules GetTableRules() const; // <TABLE RULES=...> @@ -123,37 +123,37 @@ typedef ::boost::ptr_vector<HTMLOption> HTMLOptions; class SVT_DLLPUBLIC HTMLParser : public SvParser { private: - mutable HTMLOptions maOptions; // die Optionen des Start-Tags + mutable HTMLOptions maOptions; // options of the start tag - bool bNewDoc : 1; // neues Doc lesen ? - bool bIsInHeader : 1; // scanne Header-Bereich - bool bIsInBody : 1; // scanne Body-Bereich - bool bReadListing : 1; // Lese Listings - bool bReadXMP : 1; // Lese XMP - bool bReadPRE : 1; // Lese preformatted Text - bool bReadTextArea : 1; // Lese TEXTAREA - bool bReadScript : 1; // Lesen von <SCRIPT> - bool bReadStyle : 1; // Lesen von <STYLE> - bool bEndTokenFound : 1; // </SCRIPT> oder </STYLE> gefunden + bool bNewDoc : 1; // read new Doc? + bool bIsInHeader : 1; // scan header section + bool bIsInBody : 1; // scan body section + bool bReadListing : 1; // read listings + bool bReadXMP : 1; // read XMP + bool bReadPRE : 1; // read preformatted text + bool bReadTextArea : 1; // read TEXTAREA + bool bReadScript : 1; // read <SCRIPT> + bool bReadStyle : 1; // read <STYLE> + bool bEndTokenFound : 1; // found </SCRIPT> or </STYLE> - bool bPre_IgnoreNewPara : 1; // Flags fuers lesen von PRE-Absaetzen - bool bReadNextChar : 1; // true: NextChar nochmals lesen (JavaScript!) - bool bReadComment : 1; // true: NextChar nochmals lesen (JavaScript!) + bool bPre_IgnoreNewPara : 1; // flags for reading of PRE paragraphs + bool bReadNextChar : 1; // true: read NextChar again(JavaScript!) + bool bReadComment : 1; // true: read NextChar again (JavaScript!) - sal_uInt32 nPre_LinePos; // Pos in der Line im PRE-Tag + sal_uInt32 nPre_LinePos; // Pos in the line in the PRE-Tag int mnPendingOffToken; ///< OFF token pending for a <XX.../> ON/OFF ON token OUString aEndToken; protected: - OUString sSaveToken; // das gelesene Tag als String + OUString sSaveToken; // the read tag as string int ScanText( const sal_Unicode cBreak = 0U ); int _GetNextRawToken(); - // scanne das naechste Token, + // scan next token virtual int _GetNextToken() SAL_OVERRIDE; virtual ~HTMLParser(); @@ -163,7 +163,7 @@ protected: public: HTMLParser( SvStream& rIn, bool bReadNewDoc = true ); - virtual SvParserState CallParser() SAL_OVERRIDE; // Aufruf des Parsers + virtual SvParserState CallParser() SAL_OVERRIDE; bool IsNewDoc() const { return bNewDoc; } bool IsInHeader() const { return bIsInHeader; } @@ -177,8 +177,7 @@ public: void SetReadNextChar() { bReadNextChar = true; } - // PRE-/LISTING oder XMP-Modus starten/beenden oder Tags entsprechend - // filtern + // start PRE-/LISTING or XMP mode or filter tags respectively inline void StartPRE( bool bRestart=false ); void FinishPRE() { bReadPRE = false; } int FilterPRE( int nToken ); @@ -193,30 +192,30 @@ public: void FinishTextArea() { bReadTextArea = false; } - // PRE-/LSITING- und XMP-Modus beenden + // finish PRE-/LISTING- and XMP mode void FinishPREListingXMP() { bReadPRE = bReadListing = bReadXMP = false; } - // Das aktuelle Token dem aktuellen Modus (PRE, XMP, ...) entsprechend - // Filtern und die Flags setzen. Wird von Continue aufgerufen, bevor - // NextToken gerufen wird. Wer eigene Schleifen implementiert bzw. - // selbst NextToken aufruft, sollte diese Methode vorher rufen. + // Filter the current token according to the current mode + // (PRE, XMP, ...) and set the flags. Is called by Continue before + // NextToken is called. If you implement own loops or call + // NextToken yourself, you should call this method beforehand. int FilterToken( int nToken ); - // Scannen eines Scripts beenden (sollte nur unmittelbar nach dem - // Lesen eines <SCRIPT> aufgerufen werden + // end scanning of a script (should only be called right after + // reading of a <SCRIPT>) void EndScanScript() { bReadScript = false; } void ReadRawData( const OUString &rEndToken ) { aEndToken = rEndToken; } - // Token ohne \-Sequenzen + // Token without \-sequences void UnescapeToken(); - // Ermitteln der Optionen. pNoConvertToken ist das optionale Token - // einer Option, fuer die CR/LFs nicht aus dem Wert der Option - // geloescht werden. + // Determine the options. pNoConvertToken is the optional token + // of an option, for which the CR/LFs are not deleted from the value + // of the option. const HTMLOptions& GetOptions( sal_uInt16 *pNoConvertToken=0 ); - // fuers asynchrone lesen aus dem SvStream + // for asynchronous reading from the SvStream virtual void Continue( int nToken ) SAL_OVERRIDE; @@ -244,9 +243,9 @@ public: bool ParseScriptOptions( OUString& rLangString, const OUString&, HTMLScriptLanguage& rLang, OUString& rSrc, OUString& rLibrary, OUString& rModule ); - // Einen Kommentar um den Inhalt von <SCRIPT> oder <STYLE> entfernen - // Bei 'bFull' wird ggf. die gesammte Zeile hinter einem "<!--" - // entfernt (fuer JavaSript) + // remove a comment around the content of <SCRIPT> or <STYLE> + // In case of 'bFull', the whole line behind a "<!--" might + // be deleted (for JavaSript) static void RemoveSGMLComment( OUString &rString, bool bFull ); static bool InternalImgToPrivateURL( OUString& rURL ); diff --git a/include/svtools/rtfkeywd.hxx b/include/svtools/rtfkeywd.hxx index cffa6499397c..d57fd13feb53 100644 --- a/include/svtools/rtfkeywd.hxx +++ b/include/svtools/rtfkeywd.hxx @@ -705,7 +705,7 @@ #define OOO_STRING_SVTOOLS_RTF_ZWJ "\\zwj" #define OOO_STRING_SVTOOLS_RTF_ZWNJ "\\zwnj" -// neue Tokens zur 1.5 +// new tokens for 1.5 #define OOO_STRING_SVTOOLS_RTF_ABSLOCK "\\abslock" #define OOO_STRING_SVTOOLS_RTF_ADJUSTRIGHT "\\adjustright" #define OOO_STRING_SVTOOLS_RTF_AFTNNCHOSUNG "\\aftnnchosung" @@ -1060,7 +1060,7 @@ #define OOO_STRING_SVTOOLS_RTF_NOOVERFLOW "\\nooverflow" #define OOO_STRING_SVTOOLS_RTF_ASPALPHA "\\aspalpha" -// SWG spezifische Attribute +// SWG-specific attributes #define OOO_STRING_SVTOOLS_RTF_GRFALIGNV "\\grfalignv" #define OOO_STRING_SVTOOLS_RTF_GRFALIGNH "\\grfalignh" #define OOO_STRING_SVTOOLS_RTF_GRFMIRROR "\\grfmirror" @@ -1077,7 +1077,7 @@ #define OOO_STRING_SVTOOLS_RTF_PRTDATA "\\prtdata" #define OOO_STRING_SVTOOLS_RTF_BKMKKEY "\\bkmkkey" -// Attribute fuer die freifliegenden Rahmen +// attributes for free-flying frames #define OOO_STRING_SVTOOLS_RTF_FLYPRINT "\\flyprint" #define OOO_STRING_SVTOOLS_RTF_FLYOPAQUE "\\flyopaque" #define OOO_STRING_SVTOOLS_RTF_FLYPRTCTD "\\flyprtctd" diff --git a/include/svx/svddrgv.hxx b/include/svx/svddrgv.hxx index 2838a5283f6d..c7269ae9f9a4 100644 --- a/include/svx/svddrgv.hxx +++ b/include/svx/svddrgv.hxx @@ -59,8 +59,8 @@ protected: bool bInsObjPointMode : 1; bool bInsGluePointMode : 1; bool bNoDragXorPolys : 1; - bool bAutoVertexCon : 1; // Automatische Konnektorgenerierung an den Scheitelpunkten - bool bAutoCornerCon : 1; // Automatische Konnektorgenerierung an den Eckpunkten + bool bAutoVertexCon : 1; // automatic generation of connectors at the vertices + bool bAutoCornerCon : 1; // automatic geneartion of connectors at the corners bool bRubberEdgeDragging : 1; bool bDetailedEdgeDragging : 1; @@ -86,21 +86,21 @@ public: virtual void BrkAction() SAL_OVERRIDE; virtual void TakeActionRect(Rectangle& rRect) const SAL_OVERRIDE; - // 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 sal_False konnte ich die Position nicht bestimmen - // (z.B. Punktverschiebung, Mehrfachselektion, Schieben der - // Spiegelschse, ...) + // special implementation for Writer: + // TakeDragObjAnchorPos() returns the position at which an object + // approximately ends up during dragging when it is "released" + // (EndDrag). + // As a general rule, this is the left upper corner of the expected + // new SnapRect. Exception: CaptionObj. There, it is the position + // of the "tail end". + // In case of return value 'false', the position could not be + // determined (e.g. point shift, multiple selection, shift of the + // mirror axis,...) bool TakeDragObjAnchorPos(Point& rPos, bool bTopRight = false ) const; - // 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. + // If pForcedMeth is passed, then pHdl, ... is not evaluated, but this Drag + // method is used. In this, the ownership of the instance passes + // to the View and is destroyed at the end of the dragging. virtual bool BegDragObj(const Point& rPnt, OutputDevice* pOut=NULL, SdrHdl* pHdl=NULL, short nMinMov=-3, SdrDragMethod* pForcedMeth=NULL); void MovDragObj(const Point& rPnt); bool EndDragObj(bool bCopy=false); @@ -111,16 +111,16 @@ public: 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 sal_False zurueckgesetzt, also nach - // BegDrag setzen.) + // If you want to define that already during BegDrag + // or in the middle. + // (Is reset to 'false' on each BegDrag, so set it after BegDrag.) void SetDragWithCopy(bool bOn) { bDragWithCopy = bOn; } bool IsDragWithCopy() const { return bDragWithCopy; } void SetInsertGluePoint(bool bOn) { bInsGluePoint = bOn; } bool IsInsertGluePoint() const { return bInsGluePoint; } - // Interaktives einfuegen eines neuen Punktes. nIdx=0 => vor dem ersten Punkt. + // Interactive insertion of a new point. nIdx=0 => in front of the first point bool IsInsObjPointPossible() const; bool BegInsObjPoint(const Point& rPnt, bool bNewObj) { return ImpBegInsObjPoint(false, 0L, rPnt, bNewObj, 0L); } void MovInsObjPoint(const Point& rPnt) { MovDragObj(rPnt); } @@ -128,8 +128,8 @@ public: void BrkInsObjPoint() { BrkDragObj(); } bool IsInsObjPoint() const { return mpCurrentSdrDragMethod && bInsPolyPoint; } - // Fuer die App zum Verwalten des Status. GetPreferredPointer() wird - // spaeter vielleicht einen passenden Pointer dafuer liefern + // For the app to manage the status. GetPreferredPointer() is + // possibly going to deliver a matching pointer for it. void SetInsObjPointMode(bool bOn) { bInsObjPointMode = bOn; } bool IsInsObjPointMode() const { return bInsObjPointMode; } @@ -140,142 +140,144 @@ public: void BrkInsGluePoint() { BrkDragObj(); } bool IsInsGluePoint() const { return mpCurrentSdrDragMethod && bInsGluePoint; } - // Fuer die App zum Verwalten des Status. GetPreferredPointer() wird - // spaeter vielleicht einen passenden Pointer dafuer liefern + // For the app to manage the status. GetPreferredPointer() is + // possibly going to deliver a matching pointer for it. void SetInsGluePointMode(bool bOn) { bInsGluePointMode = bOn; } bool IsInsGluePointMode() const { return bInsGluePointMode; } - // Begrenzungslinien ueber's gesamte Win waehrend des Draggens - // Persistent. Default=FALSE. + // border lines over the whole win persistent during the + // whole dragging. Default=FALSE. void SetDragStripes(bool bOn); bool IsDragStripes() const { return bDragStripes; } - // Handles waehrend des Draggens verstecken + // hide handles during dragging //HMHvoid SetDragHdlHide(bool bOn); //HMHBOOL IsDragHdlHide() const { return bNoDragHdl; } - // Beim Draggen von Polygonpunkten und Klebepunkten - // die Maus verstecken. Default=FALSE + // Hide the mouse when dragging polygon points or glue points. + // 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. - // Bei objektspeziefischem Dragging (Polygonpunkte,Eckenradius,... - // hat diese Einstellung keine Auswirkung. - // Auch waerend des Draggens umschaltbar. + // As a general rule, the contours of the selected objects + // are displayed as Xor-polygons. If this flag is set, only one + // Xor-Frame is drawn (e.g. in case of multiple selection). + // In case of object-specific dragging (polygon points, corner radius,...), + // this setting has no influence. + // Also changeable during the dragging. // Default=Off 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. + // If the number of selected objects exceeds te value set here, + // NoDragPolys is (temporarily) activated implicitely. + // PolyPolygons etc. are regarded as multiple objects respectively. // Default=100 void SetDragXorPolyLimit(sal_uIntPtr nObjAnz) { nDragXorPolyLimit=nObjAnz; } sal_uIntPtr 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. + // Like DragXorPolyLimit, but in respect to the total number of + // all polygons. Default=500. + // NoDragPolys is (temporarily) activated, if one of the limits + // is exceeded. void SetDragXorPointLimit(sal_uIntPtr nPntAnz) { nDragXorPointLimit=nPntAnz; } sal_uIntPtr GetDragXorPointLimit() const { return nDragXorPointLimit; } void SetSolidDragging(bool bOn); bool IsSolidDragging() const; - // Dragging/Creating von Verbindern: + // Dragging/Creation of connectors: // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Verbinder an Objektscheitelpunkte ankleben - // Default=sal_True=Ja + // Stick Connectors to vertices + // Default=true=Yes void SetAutoVertexConnectors(bool bOn) { bAutoVertexCon = bOn; } bool IsAutoVertexConnectors() const { return bAutoVertexCon; } - // Verbinder an Objektecken ankleben - // Default=sal_False=Nein + // Stick Connectors to Corners + // Default=false=No void SetAutoCornerConnectors(bool bOn) { bAutoCornerCon = bOn; } bool IsAutoCornerConnectors() const { return bAutoCornerCon; } - // Dragging von verbundenen Objekten (Nodes): + // Dragging of connected objects (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 + // DetailedEdgeDraggingLimit: like RubberEdgeDraggingLimit, + // but this limit refers to the detailed depiction, i.e. not + // only rubber bands but total recalculations are visible while + // dragging. This detailed depiction is only possible in MoveDrag. + // Default value: 10 bool IsDetailedEdgeDragging() const { return bDetailedEdgeDragging; } sal_uInt16 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 + // EdgeDraggingLimit: If more than nEdgeObjCount edges are affected, + // they are not shown in the interactive dragging. + // This here talks about the "rubber bands", which take less computing time + // than the complete recalculations in the DetailedEdgeDragging. + // default value: 100 bool IsRubberEdgeDragging() const { return bRubberEdgeDragging; } - // 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 sal_True, so leitet ein Hit auf das - // markierte Objekt immer ein Moven ein, unabhaengig vom gesetzten DragMode. - // Dieses Flag ist persistent und sollte von der App fuer den Anwender - // konfigurierbar sein! + // Connector handling is thus as follows (when using default settings): + // - If at most 10 Connectors are affected, they are recalculated + // on each MouseMove. + // - If 11 to 100 Connectors are affected, the connections + // are shown as straight lines while dragging. + // - In case of more than 100 affected Connectors, nothing that refers + // to the Connectors is drawn while dragging. + + // If a special drag mode like Rotate, Mirror or Crook is enabled, + // then a Hit on the selected object triggers exactly this dragging. + // If MarkedHitMovesAlways is set to 'true', a Hit on the selected + // object always triggers a Move, independent of the DragMode that is + // set. This flag is persistent and should be configurable in the app + // by the user! 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. + // Show the mirror image of the selected objects as Xor while dragging + // the mirror axis? Persistent. Not yet implemented. Default: true void SetMirrRefDragObj(bool bOn) { bMirrRefDragObj = bOn; } bool IsMirrRefDragObj() const { return bMirrRefDragObj; } bool IsOrthoDesired() const; - // Beim Resize die Mitte als Referenz + // center as reference on Resize // Default=FALSE. bool IsResizeAtCenter() const { return bResizeAtCenter; } void SetResizeAtCenter(bool bOn) { bResizeAtCenter = bOn; } - // Symmetrisches Crook + // symmetric Crook // Default=FALSE. bool IsCrookAtCenter() const { return bCrookAtCenter; } void SetCrookAtCenter(bool bOn) { bCrookAtCenter = bOn; } - // 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?) + // Limitation of the working area. The limitation refers to the View, + // not to the single PageViews. This limitation is only evaluated by + // the View on interactions like Dragging and Create. + // In case of actions controlled by the app through algorithms or + // UI-controlled actions (SetGeoAttr, MoveMarkedObj, ...), the + // app must honor this limit itself. + // Furthermore, this limit is to be seen as a rough limit. In certain + // cases (e.g. while rotating), objects cannot be dragged exactly + // up to this limit, objects can overlap a bit because of rounding + // errors,... + // Default=EmptyRect=no limitation + // only partially implemented 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.) - // sal_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. + // The DragLimit refers to the Page of the object. + // (TODO or to the View?? - must be researched...) + // 'false' = no limit + // The return Rect must contain absolute coordinates. The maximum + // drag area is then selected by the View in a way that the object's + // SnapRect is moved or resized at most up to the corner of the + // LimitRect. For objects like Bezier curves, rotated rectangles, + // it must be taken into account that because of subsequent + // recalculation of the SnapRect (on Resize), rounding errors can + // occur, because of which the LimitRect might be exceeded by a + // very small extent.... + // Implemented for Move and Resize virtual bool TakeDragLimit(SdrDragMode eMode, Rectangle& rRect) const; }; |