Changeset 360


Ignore:
Timestamp:
Jan 23, 2004, 10:20:39 AM (17 years ago)
Author:
Sam Hocevar
Message:
  • examples/cacaview.c: + Moved statusbar and help menu handling in separate functions.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/examples/cacaview.c

    r358 r360  
    4141
    4242/* Local macros */
     43#define MODE_IMAGE 1
     44#define MODE_FILES 2
     45
    4346#define STATUS_DITHERING 1
    4447#define STATUS_ANTIALIASING 2
     
    5053
    5154/* Local functions */
     55static void print_status(void);
     56static void print_help(int, int);
    5257static void set_zoom(int);
    5358static void load_image(char const *);
     
    7378float zoomtab[ZOOM_MAX + 1];
    7479float xfactor = 1.0, yfactor = 1.0, dx = 0.5, dy = 0.5;
    75 int zoom = 0, fullscreen = 0, ww, wh;
     80int zoom = 0, fullscreen = 0, mode, ww, wh;
    7681
    7782int main(int argc, char **argv)
     
    363368        if(!fullscreen)
    364369        {
    365             caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    366             caca_draw_line(0, 0, ww - 1, 0, ' ');
    367             caca_draw_line(0, wh - 2, ww - 1, wh - 2, '-');
    368             caca_putstr(0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  "
    369                               "hjkl:Move  d:Dithering  a:Antialias");
    370             caca_putstr(ww - strlen("?:Help"), 0, "?:Help");
    371             caca_printf(3, wh - 2, "cacaview %s", VERSION);
    372             caca_printf(ww - 14, wh - 2,
    373                         "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
     370            print_status();
    374371
    375372            caca_set_color(CACA_COLOR_LIGHTGRAY, CACA_COLOR_BLACK);
    376             caca_draw_line(0, wh - 1, ww - 1, wh - 1, ' ');
    377373            switch(status)
    378374            {
     
    394390        if(help)
    395391        {
    396             caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
    397             caca_putstr(ww - 25, 2,  " +: zoom in             ");
    398             caca_putstr(ww - 25, 3,  " -: zoom out            ");
    399             caca_putstr(ww - 25, 4,  " x: reset zoom          ");
    400             caca_putstr(ww - 25, 5,  " ---------------------- ");
    401             caca_putstr(ww - 25, 6,  " hjkl: move view        ");
    402             caca_putstr(ww - 25, 7,  " arrows: move view      ");
    403             caca_putstr(ww - 25, 8,  " ---------------------- ");
    404             caca_putstr(ww - 25, 9,  " a: antialiasing method ");
    405             caca_putstr(ww - 25, 10, " d: dithering method    ");
    406             caca_putstr(ww - 25, 11, " b: background mode     ");
    407             caca_putstr(ww - 25, 12, " ---------------------- ");
    408             caca_putstr(ww - 25, 13, " ?: help                ");
    409             caca_putstr(ww - 25, 14, " q: quit                ");
     392            print_help(ww - 25, 2);
    410393        }
    411394
     
    419402
    420403    return 0;
     404}
     405
     406static void print_status(void)
     407{
     408    caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
     409    caca_draw_line(0, 0, ww - 1, 0, ' ');
     410    caca_draw_line(0, wh - 2, ww - 1, wh - 2, '-');
     411    caca_putstr(0, 0, "q:Quit  np:Next/Prev  +-x:Zoom  "
     412                      "hjkl:Move  d:Dithering  a:Antialias");
     413    caca_putstr(ww - strlen("?:Help"), 0, "?:Help");
     414    caca_printf(3, wh - 2, "cacaview %s", VERSION);
     415    caca_printf(ww - 14, wh - 2, "(zoom: %s%i)", zoom > 0 ? "+" : "", zoom);
     416
     417    caca_set_color(CACA_COLOR_LIGHTGRAY, CACA_COLOR_BLACK);
     418    caca_draw_line(0, wh - 1, ww - 1, wh - 1, ' ');
     419}
     420
     421static void print_help(int x, int y)
     422{
     423    static char const *help[] =
     424    {
     425        " +: zoom in             ",
     426        " -: zoom out            ",
     427        " x: reset zoom          ",
     428        " ---------------------- ",
     429        " hjkl: move view        ",
     430        " arrows: move view      ",
     431        " ---------------------- ",
     432        " a: antialiasing method ",
     433        " d: dithering method    ",
     434        " b: background mode     ",
     435        " ---------------------- ",
     436        " ?: help                ",
     437        " q: quit                ",
     438        NULL
     439    };
     440
     441    int i;
     442
     443    caca_set_color(CACA_COLOR_WHITE, CACA_COLOR_BLUE);
     444
     445    for(i = 0; help[i]; i++)
     446        caca_putstr(x, y + i, help[i]);
    421447}
    422448
Note: See TracChangeset for help on using the changeset viewer.