Ignore:
Timestamp:
Nov 12, 2003, 10:18:50 PM (16 years ago)
Author:
Sam Hocevar
Message:
  • libee/ee.h: + Added ee_color_names[] containing our 16 color names.
  • libee/ee.c: + Extended our color set to the full 16 instead of 10. + Precalculate ncurses attributes.
  • libee/graphics.c: + Clip color value in ee_set_color(). + Clip characters in ee_putchar(). + Partially clip characters in ee_putstr(), overflows aren't checked yet.
  • libee/ee_internals.h: + New file to share extern variables within libee.
  • test/demo.c: + Added a simple demo_color() to output all colors. + Replaced four ee_draw_line() with ee_draw_thin_box(). + Replaced x1, y1, x2 etc. with xa, ya, xb etc. because <math.h> already

defines y1.

+ Randomized colours from 0 to 15 instead of 1 to 10.

  • src/Makefiles.am: + Added -lm to the ttyvaders linking flags because of the intro.
  • README BUGS TODO: + Updated.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • ttyvaders/trunk/libee/ee.c

    r158 r160  
    4444
    4545#include "ee.h"
     46#include "ee_internals.h"
     47
     48/* Global array with color names */
     49char *ee_color_names[16] =
     50{
     51    "black",
     52    "blue",
     53    "green",
     54    "cyan",
     55    "red",
     56    "magenta",
     57    "brown",
     58    "lightgray",
     59    "darkgray",
     60    "lightblue",
     61    "lightgreen",
     62    "lightcyan",
     63    "lightred",
     64    "lightmagenta",
     65    "yellow",
     66    "white",
     67};
    4668
    4769static int _ee_delay;
     70
     71#if defined(USE_NCURSES)
     72int _ee_attr[16];
     73#endif
     74
    4875#if defined(USE_CONIO)
    4976static struct text_info ti;
    50 char *_screen_buffer;
     77char *_ee_screen;
    5178#endif
    5279
     
    5481{
    5582#if defined(USE_SLANG)
    56     static char * colors[] = { "black", "green", "yellow", "white",
    57         "red", "gray", "lightgray", "blue", "cyan", "magenta", NULL };
     83    static char *slang_colors[16] =
     84    {
     85        "black",
     86        "blue",
     87        "green",
     88        "cyan",
     89        "red",
     90        "magenta",
     91        "brown",
     92        "lightgray",
     93        "gray",
     94        "brightblue",
     95        "brightgreen",
     96        "brightcyan",
     97        "brightred",
     98        "brightmagenta",
     99        "yellow",
     100        "white",
     101    };
     102
    58103    int i;
    59104
     
    82127    SLsmg_refresh();
    83128
    84     for(i = 0; colors[i]; i++)
    85     {
    86         SLtt_set_color(i + 1, NULL, colors[i], "black");
    87     }
    88 
    89 #elif defined(USE_NCURSES)
    90     /* Initialize ncurses library */
     129    for(i = 0; i < 16; i++)
     130        SLtt_set_color(i + 1, NULL, slang_colors[i], "black");
     131
     132#elif defined(USE_NCURSES)
     133    int i;
     134
    91135    initscr();
    92136    keypad(stdscr, TRUE);
     
    99143    start_color();
    100144
    101     init_pair(EE_BLACK, COLOR_BLACK, COLOR_BLACK);
    102     init_pair(EE_GREEN, COLOR_GREEN, COLOR_BLACK);
    103     init_pair(EE_YELLOW, COLOR_YELLOW, COLOR_BLACK);
    104     init_pair(EE_WHITE, COLOR_WHITE, COLOR_BLACK);
    105     init_pair(EE_RED, COLOR_RED, COLOR_BLACK);
    106     init_pair(EE_GRAY, COLOR_WHITE, COLOR_BLACK); // XXX
    107     init_pair(EE_LIGHTGRAY, COLOR_WHITE, COLOR_BLACK); // XXX
    108     init_pair(EE_BLUE, COLOR_BLUE, COLOR_BLACK);
    109     init_pair(EE_CYAN, COLOR_CYAN, COLOR_BLACK);
    110     init_pair(EE_MAGENTA, COLOR_MAGENTA, COLOR_BLACK);
     145    init_pair(1 + EE_BLACK,        COLOR_BLACK,   COLOR_BLACK);
     146    init_pair(1 + EE_BLUE,         COLOR_BLUE,    COLOR_BLACK);
     147    init_pair(1 + EE_GREEN,        COLOR_GREEN,   COLOR_BLACK);
     148    init_pair(1 + EE_CYAN,         COLOR_CYAN,    COLOR_BLACK);
     149    init_pair(1 + EE_RED,          COLOR_RED,     COLOR_BLACK);
     150    init_pair(1 + EE_MAGENTA,      COLOR_MAGENTA, COLOR_BLACK);
     151    init_pair(1 + EE_BROWN,        COLOR_YELLOW,  COLOR_BLACK);
     152    init_pair(1 + EE_LIGHTGRAY,    COLOR_WHITE,   COLOR_BLACK);
     153    init_pair(1 + EE_DARKGRAY,     COLOR_BLACK,   COLOR_BLACK);
     154    init_pair(1 + EE_LIGHTBLUE,    COLOR_BLUE,    COLOR_BLACK);
     155    init_pair(1 + EE_LIGHTGREEN,   COLOR_GREEN,   COLOR_BLACK);
     156    init_pair(1 + EE_LIGHTCYAN,    COLOR_CYAN,    COLOR_BLACK);
     157    init_pair(1 + EE_LIGHTRED,     COLOR_RED,     COLOR_BLACK);
     158    init_pair(1 + EE_LIGHTMAGENTA, COLOR_MAGENTA, COLOR_BLACK);
     159    init_pair(1 + EE_YELLOW,       COLOR_YELLOW,  COLOR_BLACK);
     160    init_pair(1 + EE_WHITE,        COLOR_WHITE,   COLOR_BLACK);
     161
     162    for(i = 0; i < 8; i++)
     163    {
     164        _ee_attr[i] = COLOR_PAIR(1 + i);
     165        _ee_attr[i + 8] = A_BOLD | COLOR_PAIR(1 + i);
     166    }
    111167
    112168#elif defined(USE_CONIO)
     
    115171    clrscr();
    116172    gettextinfo(&ti);
    117     _screen_buffer = malloc(ee_get_width() * ee_get_height() * 2);
    118     ScreenRetrieve(_screen_buffer);
     173    _ee_screen = malloc(2 * ti.screenwidth * ti.screenheight);
     174#   if defined(SCREENUPDATE_IN_PC_H)
     175    ScreenRetrieve(_ee_screen);
     176#   else
     177    /* FIXME */
     178#   endif
    119179
    120180#endif
     
    188248    refresh();
    189249#elif defined(USE_CONIO)
    190     ScreenUpdate(_screen_buffer);
     250#   if defined(SCREENUPDATE_IN_PC_H)
     251    ScreenUpdate(_ee_screen);
     252#   else
     253    /* FIXME */
     254#   endif
    191255#endif
    192256
     
    215279    endwin();
    216280#elif defined(USE_CONIO)
    217     ScreenUpdate(_screen_buffer);
    218281    _wscroll = 1;
    219282    textcolor((enum COLORS)WHITE);
Note: See TracChangeset for help on using the changeset viewer.