示例#1
0
void
tty_color_try_alloc_pair_lib (tty_color_pair_t * mc_color_pair)
{
    const char *fg, *bg;
    if (mc_color_pair->ifg <= (int) SPEC_A_REVERSE) {
        switch (mc_color_pair->ifg) {
        case SPEC_A_REVERSE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "black", "white", "black", "lightgray", SLTT_REV_MASK);
            break;
        case SPEC_A_BOLD:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "black", "white", "black", SLTT_BOLD_MASK);
            break;
        case SPEC_A_BOLD_REVERSE:

            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "white",
                                            "white", "white", SLTT_BOLD_MASK | SLTT_REV_MASK);
            break;
        case SPEC_A_UNDERLINE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "black", "white", "black", SLTT_ULINE_MASK);
            break;
        }
    } else {
        fg = (mc_color_pair->cfg) ? mc_color_pair->cfg : "default";
        bg = (mc_color_pair->cbg) ? mc_color_pair->cbg : "default";
        SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg, (char *) bg);
    }
}
示例#2
0
void
tty_color_try_alloc_pair_lib (tty_color_pair_t * mc_color_pair)
{
    if (mc_color_pair->ifg <= (int) SPEC_A_REVERSE)
    {
        switch (mc_color_pair->ifg)
        {
        case SPEC_A_REVERSE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            COLOR_BLACK, COLOR_WHITE,
                                            COLOR_BLACK, COLOR_WHITE | A_BOLD, A_REVERSE);
            break;
        case SPEC_A_BOLD:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            COLOR_WHITE, COLOR_BLACK,
                                            COLOR_WHITE, COLOR_BLACK, A_BOLD);
            break;
        case SPEC_A_BOLD_REVERSE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            COLOR_WHITE, COLOR_WHITE,
                                            COLOR_WHITE, COLOR_WHITE, A_BOLD | A_REVERSE);
            break;
        case SPEC_A_UNDERLINE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            COLOR_WHITE, COLOR_BLACK,
                                            COLOR_WHITE, COLOR_BLACK, A_UNDERLINE);
            break;
        default:
            break;
        }
    }
    else
    {
        int ifg, ibg, attr;

        ifg = mc_color_pair->ifg;
        ibg = mc_color_pair->ibg;
        attr = mc_color_pair->attr;

        /* In legacy color mode, change bright colors into bold */
        if (!tty_use_256colors () && !tty_use_truecolors (NULL))
        {
            if (ifg >= 8 && ifg < 16)
            {
                ifg &= 0x07;
                attr |= A_BOLD;
            }

            if (ibg >= 8 && ibg < 16)
            {
                ibg &= 0x07;
                /* attr | = A_BOLD | A_REVERSE ; */
            }
        }

        init_pair (mc_color_pair->pair_index, ifg, ibg);
        mc_tty_color_save_attr (mc_color_pair->pair_index, attr);
    }
}
示例#3
0
文件: color-slang.c 项目: LubkaB/mc
void
tty_color_try_alloc_pair_lib (tty_color_pair_t * mc_color_pair)
{
    if (mc_color_pair->ifg <= (int) SPEC_A_REVERSE)
    {
        switch (mc_color_pair->ifg)
        {
        case SPEC_A_REVERSE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "black", "white", "black", "lightgray", SLTT_REV_MASK);
            break;
        case SPEC_A_BOLD:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "black", "white", "black", SLTT_BOLD_MASK);
            break;
        case SPEC_A_BOLD_REVERSE:

            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "white",
                                            "white", "white", SLTT_BOLD_MASK | SLTT_REV_MASK);
            break;
        case SPEC_A_UNDERLINE:
            mc_tty_color_pair_init_special (mc_color_pair,
                                            "white", "black", "white", "black", SLTT_ULINE_MASK);
            break;
        }
    }
    else
    {
        const char *fg, *bg;

        fg = tty_color_get_name_by_index (mc_color_pair->ifg);
        bg = tty_color_get_name_by_index (mc_color_pair->ibg);
        SLtt_set_color (mc_color_pair->pair_index, (char *) "", (char *) fg, (char *) bg);
        SLtt_add_color_attribute (mc_color_pair->pair_index, mc_color_pair->attr);
    }
}