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$");
29 dialog_gauge(char *title, char *prompt, int y, int x,
30 int height, int width, int perc)
32 * Desc: display a progress bar, progress indicated by <perc>
39 gw = newwin(height, width, y, x);
41 fprintf(stderr, "dialog_gauge: Error creating window (%d, %d, %d, %d)",
46 draw_box(gw, 0, 0, height, width, dialog_attr, border_attr);
47 draw_shadow(stdscr, y, x, height, width);
49 wattrset(gw, title_attr);
51 wmove(gw, 0, (width - strlen(title))/2 - 1);
56 wattrset(gw, dialog_attr);
58 wmove(gw, 1, (width - strlen(prompt))/2 - 1);
62 draw_box(gw, 2, 2, 3, width-4, dialog_attr, border_attr);
63 glen = (int) ((float) perc/100 * (width-6));
65 wattrset(gw, dialog_attr);
66 sprintf(percs, "%3d%%", perc);
67 wmove(gw, 5, width/2 - 2);
72 for (i=0; i<glen; i++) waddch(gw, ' ');
78 } /* dialog_gauge() */