Robert van Herk wrote:
Mike McCormack wrote:
Ideally, you'd want to write a Gnome VFS module that calls shell32.dll and queries the shell name space to generate the start menu the same way Windows does. You need to use some RPC mechanism to do that, as you can't link wine dlls directly into your gnome vfs module.
Oof, that sounds hard to do ;-).
Does this mean that this module would rather be a "Windows" program (or Wine program if you like), than a Linux programme? Because I guess that with a Win32 program it would be easier to access shell32.dll. Although that would not blend so well into your Linux environment I guess...
Or maybe it is possible to write a thin Windows deamon that kinda serves the icons and links to a Linux program? Maybe they can talk though std/in std/out so that they could be piped together?
Any ideas on that?
What I'm talking about would be, like you say, a Windows daemon that servers the icons and pathes. The client and server would communicate with each other via a pipe or something like that.
The client(s) would be a gnome vfs library, the KDE equivilent, or perhaps even plugins for other desktops.
To make it easier, i guess you could just make the windows daemon enumerate the .lnk files in Windows/Start Menu first, then once you have that working, make it query the shell instead.
The appropriate code from Gnome to look at is in the gnome cvs:
:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome
the module names are:
gnome-vfs gnome-vfs-extras gnome-panel
I was looking at xml-rpc for the protocol to use on the pipe, but that might be a bit of an overkill, and it could be easier to write the protocol yourself.
http://www.xmlrpc.com/directory/1568/implementations
If you are going to use xml-rpc, make sure to choose an implementation that is LGPL compatible.
Mike
On Thu, 2 Oct 2003, Mike McCormack wrote:
Robert van Herk wrote:
Mike McCormack wrote:
Ideally, you'd want to write a Gnome VFS module that calls shell32.dll and queries the shell name space to generate the start menu the same way Windows does. You need to use some RPC mechanism to do that, as you can't link wine dlls directly into your gnome vfs module.
However this approach would only work with Gnome. Then you'd have to do something else for KDE.
And then you would still not integrate correctly with Mandrake's special KDE and Gnome menus, or with SuSE's special KDE and Gnome menus, or the Debian based menuing systems, or the menus of WindowMaker, BlackBox, Enlightenment, fvwm, etc. etc. etc.
<rant> The Linux desktop menus are a total mess. FreeDesktop came up with a broken standard (vfolders) to 'unify' KDE and Gnome (which were already pretty similar and relatively easy to work with).
But what we need is a truly standard way to create menus for all desktop environments on any Linux distribution. Something like the Debian menuing system, maybe with improved support for internationalization and other bells and whistles. </rant>