user3329072
user3329072

Reputation: 341

Why is this text not being colored by ncurses?

I wanted to create a window in ncurses, surround it with a box, and write some colored text in it.

When I try to make simple colored text in the standard window it works perfectly, but when I try to put it in a new window the text appears white on black (i.e. the default)

Here's the code I've tried. Why doens't it work?

#include <ncurses.h>

int main(int argc, char *argv[])
{
    initscreen();
    WINDOW * win = newwin(8,15,1,1);
    box(win,0,0);
    start_color();
    init_pair(1, COLOR_BLACK, COLOR_RED);
    attron(COLOR_PAIR(1));
    mvwprintw(win,1,1,"colored text");
    wrefresh(win);
    getch();
    return 0;
}

Upvotes: 11

Views: 7794

Answers (1)

user3329072
user3329072

Reputation: 341

I soloved the problem by using

wattron(win, COLOR_PAIR(1));

instead of

attron(COLOR_PAIR(1));

wattron affects the given window, while attron assumes you mean stdscr, rather than the current window.

Upvotes: 23

Related Questions