From: John H. <jdh...@ac...> - 2003-11-11 17:23:45
|
>>>>> "Jeremy" == Jeremy O'Donoghue <je...@o-...> writes: Jeremy> I have just made a further update to backend_wx. Details Jeremy> below. Hi Jeremy, Thanks for the detailed update and all the progress. I have been working hard on refactoring the frontend, and have made substantial changes to the axes classes. This was motivated in part by your comment that the transform system was not clear to you, and I've always thought it was something of a hack. So I've cleared that up - artists now carry around their own transforms which contain references to the viewlim and displaylim, so the transforms are automagically updated in response to window resize events, etc.... Also, all the artists can now have their coordinates in arbitrary data coords (as before), or relative (0,1) axes or figure coords. This makes it much more natural to specify, for example, tick locations, figure legends, etc... All of the artists now handle their own transforms and clipping and the backend writer doesn't need to know anything about it. I also factored all tick, ticklabel, and gridline functionality into a a Tick class, and legend capability into a Legend class which works better and has more options than before. I have made a number of API changes that will not have any effect on the matlab interface and only a minor effect on backend implementations (none currently on the Renderer or GraphicsContext, but minor changes in the derived Figure class. I have made notes on all the API changes so I don't think you will have much difficulty implementing them. All of the examples except for log scaling work perfectly, and the base code is much cleaner and I think more readable. The reason I bring this up is I am wondering if you would like me to check this into CVS and let you integrate the changes now, or wait until I am completely finished. Some of the features will probably help you -- like getting the xlabel located properly, since axis text locations are now done in axes coords. All you have to do is make sure your axes text instance can return its window extent l,b,w,h in window coords and the front in will take care of the rest. I have a helper function to draw a bbox around artists to help show whether the bbox you return is correct. Alternatively, I can keep these changes local until they are done and you are ready to incorporate them. I can't check out backend_wx.py yet because my CVS mirror is behind. Perhaps you can just email me a copy. JDH |