To comment on the following update, log in, then open the issue: http://www.openoffice.org/issues/show_bug.cgi?id=95646
------- Additional comments from [EMAIL PROTECTED] Tue Nov 4 17:29:37 +0000 2008 ------- AW: This is the hard part. I found no simple solution in the old SdrDragMethod implementations to support all solid drags in one run. First try was to clone the objects, modify the clones and use an OverlaySdrObject for feedback. This gives no fast solution for transparency. At the end delete the clones or replace the selected objects with the already modified clones. This does not work since each change on the selection inside SdrDragMethod implementations leads to cancelling the current interaction and deletion of the incarnation we are calling from. Next try was to use primitive sequences and to create a overlay object for them. That overlay object works well and solves the transparency issue. This also leaded to replacing the old ::Mod() implementation with getCurrentTransformation() which returns a matrix. This works pretty well, but only for interactions without scale and shear. Example: For a fat line on an Ellipse it is not enough to transform the primitive geometry, but the changed SdrObject needs to be completely newly decomposed. I decided to split: For translate, rotate and mirror i can use the (pretty) simple method with the primitives directly. Those will be fetched at the IA beginning and be embedded in a UnifiedAlphaPrimitive2D. It could also be embedded in a TransformPrimitive2D to represent the current modification, but i preferred to add that to the overly object which will add this to it's renderer's start state. For implementation, there is now a common base class for this three SdrDragMethod implementations. I needed a solution for shear and scale. I tried to derive the primitive sequence always from scratch from a cloned object which i modify using TRGetBaseGeometry/TRSetBaseGeometry. This works in principle, but has problems with text. The old interactions use internal stuff to reflect the X/Y mirroring as Text rotations by 1780 degrees. It leads to different results than using the transformations. To solve that, i added a virtual method (applyCurrentTransformation(SdrObject& rTarget)). and a helper class which once incarnates clones (of course with self-handling the object hierarchy over groups...). It then resets the clone by using operator= and the original, applies the change using the helper method and then derives the primitive sequence. This works well. On the way i also needed to fix some deeply buried, old bugs with applying mirroring and/or shear. Now working: translate, rotate, scale, shear (X and Y) and mirroring. Looking for more stuff... --------------------------------------------------------------------- Please do not reply to this automatically generated notification from Issue Tracker. Please log onto the website and enter your comments. http://qa.openoffice.org/issue_handling/project_issues.html#notification --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
