If I understand correctly, firstly you're trying to create a kind of graphical GUI-building environment, but using your own unique kinds of widgets rather than the standard ones.
It's hard to say what would be the best way to go about it. Basing each of your pseudo-widgets on an actual gtk widget would buy you some things -- a parent-child hierarchy, nested coordinate systems and clipping, and handling input events. But you may end up fighting against gtk in various ways, in order to handle things like dragging widgets from one container to another, which really needs to be managed by something outside the widget that was clicked on. Also, if you're going to want transparency or nonrectangular shaped widgets, you may find a real gtk widget to be too restrictive. And if you try to have thousands of widgets, I wouldn't be surprised if things get bogged down. A gtk widget is a fairly heavyweight thing, involving a Python object, a gtk object, and some state in the X server that all need to be coordinated. Donn wrote:
Can one have "living" visual objects without making them "widgets"?
At some level, yes, of course -- you can draw whatever you want and handle input events however you want. The question is whether the freedom you get from doing it all yourself is worth the extra effort it would take. I've never tried to do anything like this with gtk, so I'm not really sure how all the tradeoffs would work out. Either way, it sounds like a fairly major project, and one that will be bending gtk in ways it wasn't really designed to go. It might be better to get some experience using gtk in the normal way before diving into this. You might also want to look at PythonCard, which I haven't seen, but from what I've heard it may be doing something along similar lines. It's based on wxPython rather than gtk, but there might be some ideas in it that you could use.
I realize it's counter to where GUI's go at the moment
I don't want to discourage you -- a Flash-like environment sounds like it would be a cool thing to have -- but as a GUI for a mundane application, it's probably not a good idea to depart too far from the platform standards. If it's too weird and wonderful, it will tend to repel users rather than attract them! -- Greg _______________________________________________ pygtk mailing list pygtk@daa.com.au http://www.daa.com.au/mailman/listinfo/pygtk Read the PyGTK FAQ: http://www.async.com.br/faq/pygtk/