If you recall some previous conversations about the new API, one of
the points where we got stuck on was how to add plugins of the
plugins.

For example, video chat. A video chat plugin can be made as an
independent plugin, and it will provide the GUI _and_ network logic.
Doing this is quite complicated... providing the hooks to the inner
workings of the ICQ plugin and being able to modify the GUI.

However, I think a good solution would be to make user of D-Bus[1].
The Qt-GUI and protocol plugins can export an interface to the outside
world that any program in any language (that has D-Bus support). Here
is a quick overview of how it could potentially work:

1. A videochat plugin gets loaded, and adds a "Video Chat" to each
user's send function menu. [QUserMenu::addMenu()]
2. The user selects "Video Chat" from the menu.
3. The videochat plugin, using hooks into CICQPlugin sends the request
packets and gets the response.
4. The videochat plugin creates a window and displays it, staring the videochat.

The nice part of this is that videochat plugin can be in C, C++,
Python, etc. And the GUI portion can be GTK, Qt, etc. As long as the
language and framework work with D-Bus, it doesn't matter.

This can also be a way to get the options of plugins to be handled by
the Qt-GUI.

D-Bus isn't new, but when I was reading through the documentation and
the Qt4 class[2], it seemed like it would be a good idea for Licq 2.0.

Jon

[1]: http://dbus.freedesktop.org/doc/dbus-tutorial.html
[2]: http://doc.trolltech.com/4.2/intro-to-dbus.html

--
________________________________________________________
Jon Keating                ICQ: 16325723
[EMAIL PROTECTED]               MSN: [EMAIL PROTECTED]
http://www.licq.org        GPG: 2290A71F
http://www.thejon.org      HOME: Minamiashigara, Japan

Reply via email to