<br><br><div class="gmail_quote">On Tue, Jun 15, 2010 at 7:34 AM, Paul Davis <span dir="ltr"><<a href="mailto:paul@linuxaudiosystems.com">paul@linuxaudiosystems.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

<div class="im">On Tue, Jun 15, 2010 at 3:49 AM, Jeremy <<a href="mailto:jeremybubs@gmail.com">jeremybubs@gmail.com</a>> wrote:<br>
<br>
> Hi,<br>
> So I've written a GUI, and I've gotten a better understanding of how the Qt<br>
> framework works.  It seems to me that all that would be necessary is for the<br>
> host to pass a pointer to a QWidget, which the plugin adds itself to, and<br>
> the rest can behave exactly like the ui:GtkUI.  If I'm not mistaken, all<br>
> that would be necessary it to write a new rdf file.<br>
<br>
</div>far from true. That would be enough to make the GUI work in a Qt host.<br>
But the problems of making it work in a GTK host, or vice versa,<br>
making a plugin using ui:QtUI work in a Qt host, would remain.<br>
<br>
torben, dave and i had some detailed discussions on IRC recently about<br>
some new ideas on how to make this work, but i don't think its easy<br>
and its not likely to appear any time soon.<br>
<br>
nothing like the plethora of choices implied by open source<br>
development to royally screw up basic things.<br>
</blockquote></div><br><div>How about this idea?  The plugin is responsible for creating its own window if the host doesn't know how to do it.</div><div><br></div><div>So for example 1, a Qt application looks at the rdf and sees it is a Qt GUI.  It opens up a new internal frame, and calls the plugins intantiation function.</div>

<div><br></div><div>example 2, a Gtk application looks at the rdf file and sees it is a Qt GUI.  It calls the plugin's "createWindow" method, which creates a standalone window to host the widget, and returns the necessary callbacks.  Then the host calls the plugin's instantiation function with the newly created window as an argument.  </div>

<div><br></div><div>This way I can create a new toolkit and it will work with any existing (well, after this is implemented) host, but be non-integrated.  It also allows tight integration with hosts in the right circumstances, where it might be very useful (Qt GUIs in LMMS for example).  It would even allow the qtg or gtq embedding to be easily implemented at a later point and work with the existing system.</div>

<div><br></div><div>This has all the benefits of an external UI, and all the benefits of an internal UI (when possible).</div><div><br></div><div>Jeremy</div>