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
