2010-05-08 23 views
4

Je voudrais analyser la structure du menu pour Gnome Panels (le lanceur d'applications Gnome Desktop standard) et son équivalent KDE en utilisant les appels de fonction c/C++. C'est-à-dire, je voudrais une liste de ce que les catégories et le sous-menu de base sont installés dans une machine donnée. Je voudrais faire avec l'aide des appels de fonction c/C++ assez simples (avec aucun bombardement s'il vous plaît). Je comprends que ces menus sont au format xdg standard. Je comprends que cette structure de menu est stocké dans des fichiers XML tels que:Comment analyser la structure du menu/bureau XDG/gnome/kde en C++?

/home/user/.config/menus/applications.menu 

Je l'ai regardé ici: http://www.freedesktop.org/wiki/Specifications/menu-spec?action=show&redirect=Standards%2Fmenu-spec mais tout ce qu'ils offrent est la norme et certains fichiers shell pour insérer des entrées d'articles (je ne veux pas scripts shell, je ne veux pas d'installation, je ne veux définitivement pas créer une bibliothèque de c à partir de la spécification XDG Je veux trouver la structure de menu existante). J'ai regardé ici: http://library.gnome.org/admin/system-admin-guide/stable/menustructure-13.html.en pour plus de notes sur ces structures. Rien de tout cela ne me donne une bonne idée de la façon de déterminer les structures de menu en utilisant un programme c/C++.

Les structures de menu gnome réels semblent être une des choses épouvantablement poilus - ils ne semblent pas montrer la structure de menu, mais pour donner une description de code XML de tous les changements que les menus sont passés par depuis l'installation. Je suppose que les panneaux GNOME analysent ces fichiers, donc il y a une fonction enterrée quelque part pour cela, mais je n'ai pas encore trouvé où cette fonction est après avoir analysé library.gnome.org pendant quelques jours. J'ai aussi scanné le code source de Nautilus, mais les panneaux semblent exister ailleurs ou sont bien enterrés.

Merci à l'avance

Répondre

3

Après beaucoup de recherches pénibles ... il semble l'approche la plus stable est de prendre le code d'analyse syntaxique de menu gnome, déchirer de la boule de goudron et de l'utiliser localement.

La version j'est ici: http://download.gnome.org/sources/gnome-menus/2.28/gnome-menus-2.28.0.1.tar.gz

Ce code clame haut et fort qu'il ne devrait pas traitée comme une sorte d'API si on est forcé de, comme je l'ai dit le déchirer de l'arbre de gnome et de garder un copie locale pour sa propre application (rassembler que lier dynamiquement à une bibliothèque). La version de KDE du code d'analyse de menu semble comme si elle pouvait être utilisée de manière plus transportable mais dépendait en fait fortement du système de fichiers virtuel de KDE. Pour autant que je sache, le code gnome fonctionne de manière autonome. Le fichier de test peut servir de modèle pour effectuer votre propre analyse.