[haiku-development] Re: UI Colors

Hi,

Am Sonntag, den 02.05.2010, 07:41 -0400 schrieb DarkWyrm:
> > IMHO, there are way too many system colors defined. A lot of them should
> > be computed based on some important main color. That's actually already
> > the case for stuff like shades and shine colors in pretty much all of
> > the controls that render through BControlLook. For the time being,
> > Appearance could be stripped down to the stuff that works. Then someone
> > could work on live-updates of the interface and only add those colors
> > that are really necessary. BControlLook also does not compute the color
> > tints in a smart way, pretty much all the tints work best for the 216
> > gray. If you change for example to a darker gray, the relative contrast
> > of the tints changes such that it becomes unpleasant eventually.
> All of them work, as in changing a color in Appearance updates the 
> corresponding UI color. The problem is that not many controls make the 
> ui_color() calls to change them. My question was (and still is) should I 
> tweak the Draw() calls on controls in the Interface Kit to use more of 
> these system colors or is there something else that should be done.

Yes I understand that changing the colors works in principle. I just
think there are way too many knobs to turn. Why have a "shine" and
"shadow" color when it's more sensible to be able to define a single
"contrast" setting. And I find many other colors options to be over the
top as well. I would really cleanup the list and keep only the essential
options.

As for modifying Draw() methods, pretty much all of them use
BControlLook to do the actual drawing, if you look closer you should see
that the old code is only used when the be_control_look global is NULL.

> I'm not completely sure what the live updates implementation should look 
> like, but I remember that was one thing that was my plan _way_ back when 
> I actually hacked on the app_server. The main problem is that 
> broadcasting a message via the roster would be a cleaner approach, but 
> that doesn't handle window tab colors and text. You *could* put together 
> a message to the app_server to update those colors and broadcast the 
> message via the roster, but that seems kinda messy. Any ideas?

Why would that be messy? You can also post a message to app_server and
have it in turn broadcast to all open windows, which in turn calls a new
hook method in BViews to update to current colors. Default
implementation being to invoke Invalidate().

Best regards,
-Stephan



Other related posts: