bug-ncurses
[Top][All Lists]
Advanced

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

Re: unable to set black text color for cdk


From: daggs
Subject: Re: unable to set black text color for cdk
Date: Wed, 3 Jun 2015 16:25:31 +0200

Greetings Thomas,

> Sent: Wednesday, June 03, 2015 at 1:01 PM
> From: "Thomas Dickey" <address@hidden>
> To: daggs <address@hidden>
> Cc: address@hidden
> Subject: Re: unable to set black text color for cdk
>
> ----- Original Message -----
> | From: "daggs" <address@hidden>
> | To: address@hidden
> | Cc: address@hidden
> | Sent: Wednesday, June 3, 2015 5:33:21 AM
> | Subject: Re: unable to set black text color for cdk
> | 
> | Greetings Thomas,
> | 
> | > Sent: Wednesday, June 03, 2015 at 4:24 AM
> | > From: "Thomas Dickey" <address@hidden>
> | > To: daggs <address@hidden>
> | > Cc: address@hidden, address@hidden
> | > Subject: Re: unable to set black text color for cdk
> | >
> | > On Thu, May 28, 2015 at 01:43:49PM +0200, daggs wrote:
> | > > Greeting Thomas
> | > > 
> | > > > Sent: Thursday, April 02, 2015 at 12:28 PM
> | > > > From: "Thomas Dickey" <address@hidden>
> | > > > To: daggs <address@hidden>
> | > > > Cc: address@hidden
> | > > > Subject: Re: unable to set black text color for cdk
> | > > >
> | > > > On Thu, Apr 02, 2015 at 07:43:09AM +0200, daggs wrote:
> | > > > > 
> | > > > > 
> | > > > > > Sent: Thursday, April 02, 2015 at 4:01 AM
> | > > > > > From: "Thomas Dickey" <address@hidden>
> | > > > > > To: daggs <address@hidden>
> | > > > > > Cc: address@hidden
> | > > > > > Subject: Re: unable to set black text color for cdk
> | > > > > >
> | > > > > > On Wed, Apr 01, 2015 at 10:50:26AM +0200, daggs wrote:
> | > > > > > > 
> | > > > > > > 
> | > > > > > > > Sent: Wednesday, April 01, 2015 at 3:54 AM
> | > > > > > > > From: "Thomas Dickey" <address@hidden>
> | > > > > > > > To: daggs <address@hidden>
> | > > > > > > > Cc: address@hidden
> | > > > > > > > Subject: Re: unable to set black text color for cdk
> | > > > > > > >
> | > > > > > > > On Mon, Mar 30, 2015 at 12:31:33PM +0200, daggs wrote:
> | > > > > > > > > Greetings,
> | > > > > > > > > 
> | > > > > > > > > I'm trying to setup a text in black color and it ends
> | > > > > > > > > up in gray, looping
> | > > > > > > > > over the first 49 colors (with and without bold)
> | > > > > > > > > didn't returned any label
> | > > > > > > > > with black text color, is it possible that there is
> | > > > > > > > > no black color text in
> | > > > > > > > > cdk?
> | > > > > > > > 
> | > > > > > > > hmm - it's more complicated than that - partly Cdk and
> | > > > > > > > partly (n)curses.
> | > > > > > > > 
> | > > > > > > > The initCDKColor function is probably what you're
> | > > > > > > > looking at, since
> | > > > > > > > it is the only place that calls init_pair().  It's a
> | > > > > > > > little odd (I think)
> | > > > > > > > because it maps the colors 0-7 in this order:
> | > > > > > > > 
> | > > > > > > >       COLOR_WHITE, COLOR_RED, COLOR_GREEN,
> | > > > > > > >       COLOR_YELLOW, COLOR_BLUE, COLOR_MAGENTA,
> | > > > > > > >       COLOR_CYAN, COLOR_BLACK
> | > > > > > > > 
> | > > > > > > > If the terminal supports more than 8, cdk uses only 8.
> | > > > > > > >  You can always
> | > > > > > > > override that by calling init_pair() in your
> | > > > > > > > application.
> | > > > > > > > 
> | > > > > > > > Normally in curses, black is zero.  That raises a
> | > > > > > > > point, i.e., that color
> | > > > > > > > pair 0 is special in curses (no colors as such).  So
> | > > > > > > > cdk does not use that.
> | > > > > > > > 
> | > > > > > > > In any case, since black is last, you would see black
> | > > > > > > > text on pairs 57-64,
> | > > > > > > > due to the way the loops are ordered.
> | > > > > > > 
> | > > > > > > Greeting Thomas,
> | > > > > > > 
> | > > > > > > my issue in fact is with the (0,0) pair, e.g. black text
> | > > > > > > over black background.
> | > > > > > > you might ask why one need such option, well using black
> | > > > > > > background color ober a background image gives me a
> | > > > > > > transparency affect.
> | > > > > > > for example, I want to create a background image that has
> | > > > > > > a white square in it and write inside it text.
> | > > > > > 
> | > > > > > I see.  I think the issue is that Cdk is putting
> | > > > > > black-on-black in the last
> | > > > > > color pair which it requests -- the 65th slot.  However,
> | > > > > > for an 8-color
> | > > > > > terminal, the description would say the terminal supports
> | > > > > > only 64 = 8*8
> | > > > > > color pairs.
> | > > > > >  
> | > > > > 
> | > > > > tried to print the 65th color, the it was the same like the
> | > > > > 64th color (no change)
> | > > > 
> | > > > But ncurses only uses 0 through 63
> | > > > 
> | > > > See attached sample testcase and debugging trace -- look at the
> | > > > return values
> | > > > from init_pair().
> | > > > 
> | > > 
> | > > sorry it took so long to answer, I was reassigned to another
> | > > project for a while.
> | > > 
> | > > according to the trace in the case you've provided I see that the
> | > > valid colors range from 1 to 80 (including).
> | > > running a matching test on that range return a "hit" for pair 64,
> | > > however, the color on screen stays the same.
> | > > running the same matching test on a range from 0 to 63 return a
> | > > "hit" for pair 0 (which you claim to be invalid). however, the
> | > > color on screen stays the same.
> | > > 
> | > > so I want to understand what exactly is the right colors range.
> | > 
> | > That is 0 .. PAIRS-1
> | > 
> | > (zero up to one less than the number of color pairs in the terminal
> | > description).
> | > 
> | > That's because -- even though it is tempting to consider zero as a
> | > special
> | > case that would just shift everything up -- the color pair is
> | > stored as
> | > an unsigned value in a bit-field in chtype's for instance.  ncurses
> | > allows
> | > 8 bits for that in ncurses5 (ncurses6 will allow 16 bits).
> | > 
> | 
> | so assuming that color 0 is invalid, we have 62 colors to use.
> 
> 63.
> 
> For a more complete discussion of color pair 0, I added to the
> manual page (actually for a different discussion), see
> 
> http://invisible-island.net/ncurses/man/curs_color.3x.html#h3-Color-Rendering
> 
> | e.g. what I need (black over black) is not there. how can I insert
> | the color pair? can I replace an existing on that I don't need with
> | that pair?
> | 
> 
thanks for the reading material, with it I've found a proper solution to my 
problem which is to init a color pair if it doesn't exists.

Dagg.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]