Hi, Nathan C Summers <rockwlrs@xxxxxxxxxx> writes: > > GtkPlug is an X11-only thing just as GtkSocket; it is not implemented > > on any other platform that GDK has been ported to. > > Oh yes, I remember that now. After I rejected GtkPlug I forgot all the > reasons why. :) > > I'm disapointed they didn't make it more windowing system agnostic. > Windows, at least, is perfectly capible of something like > GtkPlug/GtkSocket. there has been much discussion about this on the GTK+ developers list. You should check the archives if you want to know why. > > Then, no tool should use any GTK+/GDK functions nor > > should it receive GDK events directly. Once this separation (that > > we've already started) is completed, we should have a reasonable > > tool API and it should be easy to define an interface that can be > > exported in order to allow plug-in and module tools. > > I agree to this as well. What specifically do you have in mind to > replace the current system of sending the (essentiall) raw GtkEvent to > the tool? the new system is already in place. If you look at current CVS, you will notice that GimpDisplayShell (in the display directory) receives the GDK events on the canvas and translates them into image coordinates. It then passes the translated event to the tool manager which calls the appropriate method on the active tool. All tools need to do is to implement the methods for canvas events they are interested in. Drawing on the canvas works by calling the methods implemented in GimpDrawTool. GimpDrawTool is the only object that knows about the ugly details of translating the passed image coordinates back into screen coordinates. Mitch has some more things planned here and I hope he will comment on this stuff... Salut, Sven