Caching icon theme information
mclasen at redhat.com
Wed Oct 20 20:52:21 EEST 2004
On Wed, 2004-10-20 at 13:48, Frans Englich wrote:
> Such a cache would allow theme creators to maintain only an SVG set, and then
> have a tool which generates PNG version which then are embedded into the
> cache file(assuming the image caching is implemented).
> In the "Icon theme specification: Standardizing icon names" thread it is
> evident that an "pseudo icon" mechanism is necessary, a method which allows
> icon theme creators to say "this icon is also icon Foo, and icon Bar" --
> without copying/duplicating images or using symlinks. The standardized names
> more or less relies on such a mechanism; many names allows flexibility, while
> creators still have the possibility to cover those names with a smaller set
> of actual images. Depending on how it's implemented, it also allows the
> creation of high performing icon themes(embedded devices etc).
> My idea of specification is that the icon data file has an IsAlso field which
> is a semi colon separated string with the icon names it covers. For example,
> the icon data file for icon "navigator-reload" could have
> "IsAlso=system-reboot;document-reload;" and lookups on system-reboot would
> load the navigator-reload icon, for instance.
> However, that IsAlso directive doesn't allow it to be done in a efficient and
> quick way. Perhaps this can be done with the cache? Like this:
> Add a '4 CARD32 REAL_ICON_OFFSET' to Icon, which is the offset to the real
> Icon. If set to zero, the icon is not a pseudo icon.
> * The file size increases with 4*<number of icons>.
> * IMAGE_LIST_OFFSET wouldn't make sense for pseudo icons then, and it should
> be zeroed.
> * It would complicate the cache generator.
> * Converting to the standardized icon names once it's in the spec, will more
> or less require support for the IsAlso directive, and hence the cache(or
> doing it in some other way).
The icon cache is strictly a cache of the information found in the
file system. I don't think it should be a vehicle to implement
extensions of the icon theme specification. If IsAlso can't be
implemented in an reasonable way without the icon cache, it should
> What is Icon::CHAIN_OFFSET btw?
The offset to the next member of the hash chain. We're essentially
dumping a hash table in the file here.
More information about the xdg