home *** CD-ROM | disk | FTP | other *** search
- /* ------------ barchart.c ----------- */
- #include "dflat.h"
-
- #define BCHEIGHT 12
- #define BCWIDTH 44
- #define COLWIDTH 4
-
- static WINDOW Bwnd;
-
- /* ------- project schedule array ------- */
- static struct ProjChart {
- char *prj;
- int start, stop;
- } projs[] = {
- {"Center St", 0,3},
- {"City Hall", 0,5},
- {"Rt 395 ", 1,4},
- {"Sky Condo", 2,3},
- {"Out Hs ", 0,4},
- {"Bk Palace", 1,5}
- };
-
- static char *Title = " PROJECT SCHEDULE";
- static char *Months = " Jan Feb Mar Apr May Jun";
-
- static int BarChartProc(WINDOW wnd, MESSAGE msg,
- PARAM p1, PARAM p2)
- {
- switch (msg) {
- case COMMAND:
- if ((int)p1 == ID_HELP) {
- DisplayHelp(wnd, "BarChart");
- return TRUE;
- }
- break;
- case CLOSE_WINDOW:
- Bwnd = NULL;
- break;
- default:
- break;
- }
- return DefaultWndProc(wnd, msg, p1, p2);
- }
-
- void BarChart(WINDOW pwnd)
- {
- int pct = sizeof projs / sizeof(struct ProjChart);
- int i;
-
- if (Bwnd == NULL) {
- Bwnd = CreateWindow(PICTUREBOX,
- "BarChart",
- -1, -1, BCHEIGHT, BCWIDTH,
- NULL, pwnd, BarChartProc,
- SHADOW |
- CONTROLBOX |
- MOVEABLE |
- HASBORDER
- );
- SendMessage(Bwnd, ADDTEXT, (PARAM) Title, 0);
- SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
- for (i = 0; i < pct; i++) {
- SendMessage(Bwnd,ADDTEXT,(PARAM)projs[i].prj,0);
- DrawBar(Bwnd, SOLIDBAR+(i%4),
- 11+projs[i].start*COLWIDTH, 2+i,
- (1 + projs[i].stop-projs[i].start) * COLWIDTH,
- TRUE);
- }
- SendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
- SendMessage(Bwnd, ADDTEXT, (PARAM) Months, 0);
- DrawBox(Bwnd, 10, 1, pct+2, 25);
- }
- SendMessage(Bwnd, SETFOCUS, TRUE, 0);
- }