On Thu, Jul 17, 2008 at 09:44:48PM +0200, David M. Kaplan wrote: > Another option would be to create a start_event_loop function like Paul > suggested and overload that function in those backends that aren't > interactive so that it returns an error, but this requires writing one > such function for each non-interactive backend.
Either create a deeper hierarchy: FigureCanvasBase: def start_event_loop(self, ...): raise NotImplemented FigureCanvasInteractive: def start_event_loop(self, ...): generic interactive using time.sleep MyInteractiveBackend(FigureCanvasInteractive): def start_event_loop(self, ...): specialized interactive code using GUI or a mix-in class: FigureCanvasBase: def start_event_loop(self, ...): raise NotImplemented FigureCanvasEventLoopMixin: def start_event_loop(self, ...): generic interactive using time.sleep MyInteractiveBackend(FigureCanvasBase,FigureCanvasEventLoopMixin): ... no start_event_loop since using the generic mixin ... I prefer the latter, particularly since it won't be needed once the existing interactive backends are implemented. > Also, is there any case > where an event loop would be useful for a graphically non-interactive > backend? If so, this would again mean that this problem would be easier > to deal with once in the Blocking* classes. No reason to. While you could prompt for graph coordinates at the command line on a call to ginput, you could also simply prompt for the coordinates without bothering with ginput. - Paul ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Matplotlib-devel mailing list Matplotlib-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-devel