reactos/rosapps/dflat32/barchart.c
2003-06-19 02:48:13 +00:00

75 lines
2.1 KiB
C

/* ------------ barchart.c ----------- */
#include "dflat.h"
#define BCHEIGHT 12
#define BCWIDTH 44
#define COLWIDTH 4
static DFWINDOW 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(DFWINDOW wnd, DFMESSAGE msg,
DF_PARAM p1, DF_PARAM p2)
{
switch (msg) {
case DFM_COMMAND:
if ((int)p1 == DF_ID_HELP) {
DfDisplayHelp(wnd, "BarChart");
return TRUE;
}
break;
case DFM_CLOSE_WINDOW:
Bwnd = NULL;
break;
default:
break;
}
return DfDefaultWndProc(wnd, msg, p1, p2);
}
void BarChart(DFWINDOW pwnd)
{
int pct = sizeof projs / sizeof(struct ProjChart);
int i;
if (Bwnd == NULL) {
Bwnd = DfDfCreateWindow(DF_PICTUREBOX,
"BarChart",
-1, -1, BCHEIGHT, BCWIDTH,
NULL, pwnd, BarChartProc,
DF_SHADOW |
DF_CONTROLBOX |
DF_MOVEABLE |
DF_HASBORDER
);
DfSendMessage(Bwnd, DFM_ADDTEXT, (DF_PARAM) Title, 0);
DfSendMessage(Bwnd, DFM_ADDTEXT, (DF_PARAM) "", 0);
for (i = 0; i < pct; i++) {
DfSendMessage(Bwnd,DFM_ADDTEXT,(DF_PARAM)projs[i].prj,0);
DfDrawBar(Bwnd, DF_SOLIDBAR+(i%4),
11+projs[i].start*COLWIDTH, 2+i,
(1 + projs[i].stop-projs[i].start) * COLWIDTH,
TRUE);
}
DfSendMessage(Bwnd, DFM_ADDTEXT, (DF_PARAM) "", 0);
DfSendMessage(Bwnd, DFM_ADDTEXT, (DF_PARAM) Months, 0);
DfDrawBox(Bwnd, 10, 1, pct+2, 25);
}
DfSendMessage(Bwnd, DFM_SETFOCUS, TRUE, 0);
}