4 * progress indicator for libdialog
7 * Copyright (c) 1995, Marc van Kempen
11 * This software may be used, modified, copied, distributed, and
12 * sold, in both source and binary form provided that the above
13 * copyright and these terms are retained, verbatim, as the first
14 * lines of this file. Under no circumstances is the author
15 * responsible for the proper functioning of this software, nor does
16 * the author assume any responsibility for damages incurred with
20 #include <sys/cdefs.h>
21 __FBSDID("$FreeBSD$");
28 dialog_gauge(char *title, char *prompt, int y, int x,
29 int height, int width, int perc)
31 * Desc: display a progress bar, progress indicated by <perc>
38 gw = newwin(height, width, y, x);
40 fprintf(stderr, "dialog_gauge: Error creating window (%d, %d, %d, %d)",
45 draw_box(gw, 0, 0, height, width, dialog_attr, border_attr);
46 draw_shadow(stdscr, y, x, height, width);
48 wattrset(gw, title_attr);
50 wmove(gw, 0, (width - strlen(title))/2 - 1);
55 wattrset(gw, dialog_attr);
57 wmove(gw, 1, (width - strlen(prompt))/2 - 1);
61 draw_box(gw, 2, 2, 3, width-4, dialog_attr, border_attr);
62 glen = (int) ((float) perc/100 * (width-6));
64 wattrset(gw, dialog_attr);
65 sprintf(percs, "%3d%%", perc);
66 wmove(gw, 5, width/2 - 2);
71 for (i=0; i<glen; i++) waddch(gw, ' ');
77 } /* dialog_gauge() */