Hi Chris, On 20/04/2010 20:19, Christopher Barker wrote: > Werner F. Bruhin wrote: >> So, I am trying to get the "Edit" mode to work in EditingModes, i.e. >> to at least allow moving of a circle. >> >> It more or less works. >> - run the attached (your latest code with some hacks (some pretty >> ugly) of mine) >> - click "edit" button >> - click "zoom to fit" >> - click the "x" in the circle >> - click and move the "move handle" >> >> Questions: >> - Why do I have to click "zoom to fit" to have the "move handle" showing > > I thought changing the mode should force a Draw, but I guess not. I > added: > > self.Canvas.Draw(Force=True) > > at the end of SetEditMode(). does that gix it for you? for me, it > still doesn't show it until I click -- which I think is an OS-X thing. Yes that works here.
At least for the initial circle, it doesn't for additional circles - haven't figured out why yet. > >> - I changed the code to use the SetEditMode and BindAll methods you >> had in there but which where not called. Is this approach o.k. or >> should I go down another road? > > I think the Binding should happen when you call Canvas.SetMode, but I > don't have the time to figure that out now. However, I think the idea > there was that that would set it up so that you could click on any > object to put that object in edit mode -- you shouldn't need it if you > are using the button to put it in edit mode. O.K. > >> - In the original code a "Center" variable was used, but was not >> always available - I hacked it but I can't figure out a reliable way >> of calculating the center of a selected object. > > I'm not sure there is a way for any object. Any of the objects that > derive from XYObject should have a XY attribute, which you've used. > >> "known" issues: >> - The size of the "moving" circle is not correct - not sure why. > > > changing: self.Radius = Circle.WH[0] / 2 > to: self.Radius = Circle.WH[0] > > fixed that. > >> - The moving handle and "x" are not reset - there is no code for it yet. > > The moving handle resets for me -- though the circle was getting moved > twice as far as it should. I removed the call to: > > #self.CenterHandle.Move(dxyw) > > I think the CenterHandle and Circle share the same XY object. > > I also just made the "cross" object an attribute of the Circle, so it > can be moved in the LeftUp handler also. However, the cross and Circle > really should be a group object or custom object or something. > > I've enclosed a version with these changes. I hope this helps, I"m > sorry I don't have more time to work on this right now. Thanks for all this, it gives me more then enough to make further progress. Werner _______________________________________________ FloatCanvas mailing list [email protected] http://paulmcnett.com/cgi-bin/mailman/listinfo/floatcanvas
