OVH Cloud OVH Cloud

ncurses et couleur

6 réponses
Avatar
Thomas Nemeth
Bonjour.

Depuis quelques temps je m'essaye à la programmation ncurses.
J'aimerais bien y rajouter la couleur. Il y a bien les fonctions
connues de ncurses (start_color, initpair et attron), mais la
définition de couleurs avec ncurse oblige à définir une couleur
de fond.
Or je souhaiterais pouvoir définir une couleur de texte sans pour
autant changer celle du fond : en effet certains utilisent des
émulateur de terminal transparents style Eterm/rxvt, et avoir une
couleur de fond gêne un peu :)

Y a-t-il un moyen de changer les couleurs de texte sans passer
par le changement de couleur de fond ? Habituellement j'utilise
les séquences d'échappement ansi (ESC[X;Ym) et effectivement ça
marche aussi. Cependant pour pouvoir les afficher, je suis obligé
de passer par printf et non printw de ncurses. Or passer par printf
n'est pas idéal puisque la position d'écriture (celle du curseur
ncurses) n'est pas prise en compte :
move(y, x); printf("texte coloré");
n'affiche pas le texte à l'endroit où il est sensé être affiché.

Si quelqu'un a une idée, une piste, j'en serais bien heureux :)
Merci d'avance.


Thomas
--
Tout avantage a ses inconvénients et réciproquement.
-- Proverbe Shadok

6 réponses

Avatar
DINH Viêt Hoà

Depuis quelques temps je m'essaye à la programmation ncurses.
J'aimerais bien y rajouter la couleur. Il y a bien les fonctions
connues de ncurses (start_color, initpair et attron), mais la
définition de couleurs avec ncurse oblige à définir une couleur
de fond.


ne cherches-tu pas l'extension suivant :

<<
As an extension, ncurses allows you to set color pair 0 via the
assume_default_colors routine, or to specify the use of default colors
(color number -1) if you first invoke the use_default_colors routine.




man init_pair pour plus d'info.

--
DINH V. Hoa,

etPan! - newsreader, mail user agent -- http://libetpan.sf.net/etpan


Avatar
Stephane Chazelas
Voir les discussions sur "default colors" dans
default_colors(3X), curs_color(3X).

Il faut peut-etre une version récente de ncurses.

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]
Avatar
Thomas Nemeth
Le mar 16 déc 2003 à 11:51, DINH Viêt Hoà a tapoté :
|
| > Depuis quelques temps je m'essaye à la programmation ncurses.
| > J'aimerais bien y rajouter la couleur. Il y a bien les fonctions
| > connues de ncurses (start_color, initpair et attron), mais la
| > définition de couleurs avec ncurse oblige à définir une couleur
| > de fond.
|
| ne cherches-tu pas l'extension suivant :
|
| <<
| As an extension, ncurses allows you to set color pair 0 via the
| assume_default_colors routine, or to specify the use of default colors
| (color number -1) if you first invoke the use_default_colors routine.
| >>
|
| man init_pair pour plus d'info.

Grah.
Comment ais-je pu être aussi aveugle :(

Merci !


Thomas
--
Des unités identiques testées dans des conditions identiques ne
seront jamais identiques.
Avatar
Thomas Nemeth
Le mar 16 déc 2003 à 11:51, Stephane Chazelas a tapoté :
| Voir les discussions sur "default colors" dans
| default_colors(3X), curs_color(3X).
|
| Il faut peut-etre une version récente de ncurses.

Hum. Certainement : je n'ai pas ces pages de man :-/


Thomas
--
Pas de panique ! Multi-modérer l'infrastructure fibro-câblée
ne nous empêche pas de poly-ajuster l'hétéro-newbie résonnant
ni même de capillo-tracter le filtre mediatico-réticulaire.
Avatar
Thomas Nemeth
Le mar 16 déc 2003 à 12:08, Thomas Nemeth a tapoté :
| Le mar 16 déc 2003 à 11:51, DINH Viêt Hoà a tapoté :
| |
| | <<
| | As an extension, ncurses allows you to set color pair 0 via the
| | assume_default_colors routine, or to specify the use of default colors
| | (color number -1) if you first invoke the use_default_colors routine.
| | >>
| |
| | man init_pair pour plus d'info.
|
| Grah.
| Comment ais-je pu être aussi aveugle :(

Remarque, heureusement que tu m'as donné cette info : ma page de man
est _beaucoup_ plus succinte...

Thomas
--
Bonjour, je suis un nouveau virus de signature. Veuillez détruire tous
les MP3 de votre disque dur et me recopier dans votre signature pour
m'aider à me propager. Merci de votre coopération.
Avatar
Stephane Chazelas
2003-12-16, 11:24(+00), Thomas Nemeth:
Le mar 16 déc 2003 à 11:51, Stephane Chazelas a tapoté :
| Voir les discussions sur "default colors" dans
| default_colors(3X), curs_color(3X).
|
| Il faut peut-etre une version récente de ncurses.

Hum. Certainement : je n'ai pas ces pages de man :-/


Peut-être pas quand-même. Tu dois les avoir, soit sous un autre
nom, soit sous un autre format. curs_color au moins existe
depuis des années (c'est la page de man d'init_pair,
init_color...). C'est le support des "default colors" qui est
récent (peut-etre ncurses 4 voire 5).

curs_color(3X):

start_color, init_pair, init_color, has_colors,
can_change_color, color_content, pair_content, COLOR_PAIR
- curses color manipulation routines

default_colors(3X):

default_colors: use_default_colors,
assume_default_colors - use terminal's default colors

--
Stéphane ["Stephane.Chazelas" arobase "free.fr"]