On Fri, 2006-12-15 at 17:47 +0100, Patrick Bernaud wrote:

> Sure.
> 
> The purpose of the alternative is to avoid modifying any object before
> the user confirms the action. At any time during the action the user
> can cancel and it is guaranteed that the data has not been modified.
> 
> To do so, a list of pointers to the objects concerned is built (a GList
> in PAGE) and populated with either objects from the place list (a
> single list for complex, attribs and text), for place, buffer actions
> or from the main object list, for move and copy actions.
> 
> Every time the user moves the pointer (translation), require a
> rotation or a symetry, a matrix is updated to record the changes the
> user requested. This matrix is passed to the draw_xor() function that
> display the object transformed but without modifying it.
> 
> When the user cancels, it just discards the matrix and the objects
> from the place list (if used).
> 
> When the user applies the changes, the final matrix is broken down in
> a combination of mirror, rotation, translation that is only now
> applied to the objects.

Can I just say...

Fantastic!

I was greatly impressed by the amount of cleanup achievable in the
o_complex_... functions. I look forward to us both being able to merge
our changes.

With this description, I now understand how you managed such
simplifications, and I am very impressed.

Regards,

Peter C.




_______________________________________________
geda-dev mailing list
[email protected]
http://www.seul.org/cgi-bin/mailman/listinfo/geda-dev

Reply via email to