(Courriels de diversion: <cessibles@engraisses-provisionnes.com> <affaisserent@empaquetiez-barricada.com> <trepanent@reglementaire-langee.com> <communierez@manipulez-interdirais.com> <trafiquera@galvanisaient-trublions.com> <entrouvririons@transcodees-edifie.com> <encombres@clarte-tenaillee.com> <gendarmions@enterra-enchaînerai.com> <valeur@obligerai-developperent.com> <musculations@prorogeras-mecaniserons.com> )


Le vendredi 30 mai 2003, Mougrelet Jean-Marc a écrit...
	bonjour,


> Ca ne fonctionne pas vraiment!
c'est vrai, quoique...
Ci joint un petit bout de code, mais je ne suis pas spécialiste
ncursiste et d'autres pourront améliorer et critiquer (c'est même 
souhaité).
Ça se compile par:
gcc message.c -o message -lcurses

et tu peux le lancer dans un script avec:
rxvt -name message -e /là/où/j'ai/mis/message

On aurait pu faire en gtk mais en console c'est moyen !

	/* message.c */
	#include <stdio.h>
	#include <string.h>
	#include <stdlib.h>
	#include <curses.h>


	int main (int argc, char *argv[])
	{
		char *msg = "Quelque chose a foiré petit scarabée";
		int l_boite, h_boite, start_x, start_y, end_x, end_y;
		int c;
		int i, j;
		
		initscr ();
		noecho ();
		cbreak ();
		curs_set (0);
		keypad (stdscr, TRUE);
		if (has_colors ())
		{
			start_color ();
			init_pair (1, COLOR_BLACK, COLOR_RED);
			init_pair (2, COLOR_WHITE, COLOR_RED);
		}

		l_boite = strlen (msg) + 2;
		h_boite = 5;
		
		if (COLS < l_boite)
		{
			fprintf (stderr, "Fenêtre pas assez large\n");
			exit (EXIT_FAILURE);
		}
		if (LINES < 5)
		{
			fprintf (stderr, "Fenêtre pas assez haute\n");
			exit (EXIT_FAILURE);
		}
		
		start_x = (COLS - l_boite) / 2;
		end_x = start_x + l_boite;
		start_y = (LINES - h_boite) / 2;
		end_y = start_y + h_boite;
		
		attron (COLOR_PAIR (1)|A_BOLD);
		for (j = start_y; j < end_y; j++)
			for (i = start_x; i < end_x; i++)
				mvaddch (j, i, ' ');
		attroff (COLOR_PAIR (3));
		
		attron (COLOR_PAIR (2));
		mvprintw (start_y + h_boite / 2, start_x + 1, "%s", msg);
		attroff (COLOR_PAIR (2));
		mvprintw (LINES - 1, 1, "F10 pour quitter");
		refresh ();
		
		while ((c = getch ()) != KEY_F(10))
			;

		endwin ();
		return (EXIT_SUCCESS);
	}
-- 
jean-michel

--------------------------------------------------------------------
Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>