PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ncurses window



musketaquid
17-02-2006, 17:15
Halllo!
Ich möchte ein Fenster erstellen, das eine andere Hintergrund Farbe hat als stdscr. Das Problem ist, dass das Fenster nur die Hintergrundfarbe ändert wo etwas verändert wurde, sprich die box() und der string "READY". Also hab ich eine for Schleife laufen lassen (s.Code Fett gedruckt) die alle Felder im Fenster mit Leerzeichen füllt. Aber das kanns doch nicht sein, oder? Hat jemand eine bessere Idee?

Bg von stdscr ist default (transparent)
Bg von fenster soll gelb sein


pop_window(void)
{
/* we pop up this window, when countdown reached zero */

WINDOW *zero_win;
int y;

zero_win = newwin(7, 24, (LINES - 7) / 2, (COLS - 24) / 2);

if (has_colors() == TRUE) {

start_color();
init_pair(1, COLOR_BLACK, COLOR_YELLOW);

wcolor_set(zero_win, 1, 0);

for (y = 1; y < 6; y++)
mvwprintw(zero_win, y, 1, " ");
}
box(zero_win, 0, 0);

mvwprintw(zero_win, 3, 9, "READY!");
wrefresh(zero_win);

getch();
delwin(zero_win);
}

Ps.: Ich hab auch schon ein redrawwin(zero_win) ohne die for Schleife eingebaut. Hat aber nur einen schwarzen Hintergrund im Fenster erzeugt und nicht gelb wie es sein soll. :(

gorba
20-02-2006, 10:09
"leider" gibt es nur diese eine art eine hintergrundfarbe zu erzeugen. allerdings ist es auch die einzige sinnvolle lösung, wenn man bedenkt, wie colors und ncurses aufgebaut ist.
weiter schlimm ist das ganze ja nicht. ich denke du wolltest einfach schauen ob es keine andere lösung gibt?

nachdem ich mich eingehend in das Thema eingearbeitet habe muss ich sagen, dass ich ncurses ne saubere lösung finde!

hast du nach dem redrawwin(zero_win) ein refresh() gemacht?

musketaquid
20-02-2006, 21:15
ich denke du wolltest einfach schauen ob es keine andere lösung gibt?
Genau das wollt ich. Ich dachte es gibt vielleicht ne Funktion, die ich noch nicht kenn, aber wenn das nicht weiter tragisch ist, was ich mir da gebastelt hab, dann ist's ja gut :)

hast du nach dem redrawwin(zero_win) ein refresh() gemacht?
Yupp! Hab ich nicht vergessen. Aber wie gesagt, ist der Hintergrund des Fensters dann nur unter dem Rand und der Schrift gelb, der Rest der sonst transparent war (wenn ich das in einem X-Term ausführe) dann schwarz.
Ich häng mal ein sreenie mit dran, da kannst du's sehen. Hab mich dann doch für weis auf rot entschieden, sieht besser aus ;)

gorba
22-02-2006, 08:59
[...] aber wenn das nicht weiter tragisch ist, was ich mir da gebastelt hab, dann ist's ja gut :)


dass ist die gängige Lösung um einen Hintergrund bei'nem ASCII-GUI hinzukriegen