Hello, For a few weeks now, me and a friend have been planning to start a project that would make use of indicators. However, we are a little bit confused about how *exactly* they work and I decided to post some general questions in this list, that seemed to be the best place to ask.
This email is long, but I do hope that someone more deeply involved can answer it, as otherwise our project will be stuck. I'll start with some things that are not exactly questions, but deductions I'd like confirmed/corrected. In the following text, concepts will be in caps. 1) The job of an INDICATOR-APPLET is to contain and display INDICATORS on the desktop. INDICATORS are, for the lack of a better word, "widgets" that cannot exist on the desktop on their own and need a container in order to do so. Those containers are currently INDICATOR-APPLETS, but they could easily be something else (i.e. there's nothing tying the concept specifically to panel applets) 2) An INDICATOR-APPLET can contain as much INDICATORS as it wants. Currently, which INDICATORS each INDICATOR-APPLET contains and their order have to be hardcoded in the INDICATOR-APPLET source. 3) LIBINDICATOR is the library needed to build INDICATORS and INDICATOR-APPLETS. An application should not need to use those directly. 4) LIBINDICATOR, INDICATORS and INDICATOR-APPLETS are Gtk specific and the Qt equivalents are a work in progress. One example is the PLASMA-WIDGET-MESSAGING-INDICATOR, which is at the same time a Qt equivalent of INDICATOR-MESSAGES and an INDICATOR-APPLET containing it. 5) LIBDBUSMENU is a toolkit-independent library that the applications can use to send menu objects via dbus. It is a concept that exists on its own and does not depend on anything specifically related to indicators. There are Gtk and Qt bindings for this library. 6) LIBINDICATE is a toolkit-independent wrapper library around LIBDBUSMENU for the communication between applications and INDICATORS (or the Qt equivalent to INDICATORS) via menu objects. There are Gtk and Qt bindings for this library. 7) LIBAPPINDICATOR is a Gtk-specific wrapper library around LIBDBUSMENU for the communication between applications and INDICATOR-APPLICATION. There is not a Qt equivalent yet. The questions that will follow now are very dependent on the statements above have being correctly deduced, so they might need some adapting if some of those are wrong. 1) Why are INDICATORS and LIBINDICATOR toolkit-specific? Conceptually, aren't the only toolkit-specific parts supposed to be INDICATOR-APPLETS? 2) Why does the Gtk (Qt) bindings of LIBINDICATE do not use the Gtk (Qt) bindings of LIBDBUSMENU? 3) Why is LIBAPPINDICATOR a wrapper directly around LIBDBUSMENU instead of being a wrapper around LIBINDICATE? It seems that LIBINDICATE specializes LIBDBUSMENU to INDICATORS and LIBAPPINDICATOR specializes LIBDBUSMENU to a *specific* INDICATOR, so it seems less redundant to wrap LIBAPPINDICATOR around LIBINDICATE. 4) Why does the specification of which INDICATORS go inside each INDICATOR-APPLET, and their order, are hardcoded in the INDICATOR-APPLET code? Currently, the only "configuration" available to the end user is uninstalling the indicators they don't want and the only way for developers to experiment with, for example, the order of INDICATORS is constant recompilation. Finally, the most important questions: am I being redundant and all those conceptual questions are easily answered by a wiki/doc/whatever somewhere? If the answer is "no", I volunteer myself to start one. Also, where I can find complete API documentation of everything above? The only thing with a -doc package I've seen is LIBAPPINDICATOR. Again, sorry for the long mail and hope someone can answer everything. Best regards, Marcelo _______________________________________________ Mailing list: https://launchpad.net/~ayatana Post to : [email protected] Unsubscribe : https://launchpad.net/~ayatana More help : https://help.launchpad.net/ListHelp

