[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-usability
Subject:    Re: [PATCH] Striking out finished todos (wish #62430)
From:       Tim Jansen <ml () tjansen ! de>
Date:       2003-08-10 15:21:50
[Download RAW message or body]

On Sunday 10 August 2003 16:57, Reinhold Kainhofer wrote:
> Okay, I played around a little bit with different choices of marking
> finished todos visually.

Unfortunately some of your links are broken:
http://reinhold.kainhofer.com/Linux/pictures/KOrganizer_FinishedTodosStrikeOut6.png
http://reinhold.kainhofer.com/Linux/pictures/KOrganizer_FinishedTodosStrikeOut2.png
http://reinhold.kainhofer.com/Linux/pictures/KOrganizer_FinishedTodosStrikeOut5.png
http://reinhold.kainhofer.com/Linux/pictures/KOrganizer_FinishedTodosStrikeOut4.png


> suggested by danimo). One problem, however, is that in that case we need
> to find a good way to determine a color, which still shows good contrast
> to all background colors.

Use this function to determine the luminance (0-255) of the background:

float getLuminance(const QColor &c)
{
  return (c.red() * 0.299) + (c.green() * 0.587) + (c.blue() * 0.114);
}

If it is >128 it is a bright background, and black the right color. Otherwise 
use white:

QColor getTextColor(const QColor &bgColor)
{
  float luminance = getLuminance(bgColor);
  return (luminance > 128.0) ? QColor( 0, 0 ,0 ) : QColor( 255, 255 ,255 );
}

In order to get a lighter color, mix the text color with the backgroung color:

QColor mixColors(double p1, QColor c1, QColor c2) {
  return QColor(int(c1.red() * p1 + c2.red() * (1.0-p1)),
                int(c1.green() * p1 + c2.green() * (1.0-p1)),
		int(c1.blue() * p1 + c2.blue() * (1.0-p1)));
}

QColor getLightTextColor(const QColor &bgColor) {
  const int LightColorFactor = 0.75; // find a good one
  return mixColor(LightColorFactor, getTextColor(bgColor), bgColor);
}

Maybe these functions should be put into a central place (kdefx?), I have also 
used them in KWordWrap and KOAgendaItem.

bye...



_______________________________________________
kde-usability mailing list
kde-usability@mail.kde.org
http://mail.kde.org/mailman/listinfo/kde-usability
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic