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
19 * $FreeBSD: src/gnu/lib/libdialog/gauge.c,v 1.2.12.2 2002/06/18 07:55:55 dougb Exp $
20 * $DragonFly: src/gnu/lib/libdialog/gauge.c,v 1.3 2005/06/04 13:42:28 eirikn Exp $
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() */