Wine in Tango

Francois Gouget fgouget at free.fr
Mon Sep 21 08:59:16 CDT 2009


On Mon, 21 Sep 2009, Ralf Jung wrote:
[...]
> If wine should integrate well with the surrounding Linux desktop, why 
> don't you use the desktop icon set where possible?

Because on Windows the icons are stored as resources in the dlls. So 
Windows applications and dlls use the same generic API for loading their 
private resources, as well as the Windows resources.

So to implement what you want, the LoadIcon() function in user32.dll 
would need to know about the icons stored in shell32.dll, crypt32.dll, 
etc, and what KDE, Gnome or XFce icon to replace them with. That would 
break the dll separation principle.

Maybe theming provides a way to replace these icons. If so, then that 
would be the way to go. Otherwise we may invent our own way of doing so, 
like storing special 'remapping' resources that would tell LoadIcon() to 
replace a given icon with one from outside the dll. That would still 
require quite a bit of work: we cannot return a PNG icon to the 
application, it would need to be converted to ico format, and (probably) 
with the various sizes and depths collated together, etc. We'd also have 
to hack the data returned by FindResource() & co to take these 
remappings into account. That could get ugly pretty quick.


-- 
Francois Gouget <fgouget at free.fr>              http://fgouget.free.fr/
          Demander si un ordinateur peut penser revient à demander
                         si un sous-marin peut nager.


More information about the wine-devel mailing list