Re: stock icon themes



On Wed, Jun 21, 2000 at 06:48:11PM -0400, Havoc Pennington wrote:
> We can do each of the following:
>  a) gtkrc provides one icon file, and we autogenerate states and sizes
>  b) gtkrc specifies an icon file for each icon size (menu, toolbar,
>     etc.)
>  c) gtkrc specifies an icon file for each state (prelight, disabled,
>     etc.)
>  d) gtkrc specifies an icon file for size and state

	I think the ability to be as verbose as (d) while allowing
fallback routines would be best, as you continue below.

> "*" means wild card; if "*" is given for the size, then the other
> sized icons will be created by scaling. If "*" is given for state,
> then the state icons will be autogenerated by saturation, pixelation,
> etc. "*" for direction means RTL and LTR use the same icon. 
> * for both size and state autogenerates all 20 combinations of size
> and state.
> 
> In addition to this gtkrc file stuff, we can have a function provided
> by theme engines, that maps from a tuple (stock name, direction,
> state, size) to a GdkPixbuf. This way theme engines can override the
> default prelight/desensitization and scaling behavior with their own 
> functions.

	I think this would be the best approach.  A simple icon that
gets "lightened" for a highlight state needs different "lightening" for
different themes.

> Comments welcome. In particular, we're wondering if theme designers
> actually care to draw 20 variations on an icon, or if this feature
> would mostly go unused (since it's a bit complicated to implement). 
> Perhaps it's only useful to provide one small and one large variant of
> the icon, to minimize scaling, and then always autogenerate the icon
> states?

	The issue here is special casing, and I can see that happening.
For every 10 icons that work fine with ("*", "*", "*"), you will see an
icon that requires _very_ special images for each state/size, and ergo
a requirement for that ability too.
	I suspect the common usage would be to specify large/small, and
let the library handle the rest, as small icons often are awful if just
scaled down large icons.
	You could also provide a utility "generate icons" that does all
the auto-munging, and then have the 20 icon form of specification, but
as a programmer I like the concise typing of ("*", "*", ...).  And if
you already have the auto-munging code, why not include it :-)

Joel

-- 

"Where are my angels?
 Where's my golden one?
 And where is my hope
 Now that my heroes are gone?"

			http://zenii.uk.linux.org/~jlbec/
			jlbec@evilplan.org




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]