mirror of
https://github.com/reactos/reactos.git
synced 2024-11-20 14:30:57 +00:00
75 lines
2 KiB
C
75 lines
2 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,
|
||
|
PARAM p1, PARAM p2)
|
||
|
{
|
||
|
switch (msg) {
|
||
|
case DFM_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(DFWINDOW pwnd)
|
||
|
{
|
||
|
int pct = sizeof projs / sizeof(struct ProjChart);
|
||
|
int i;
|
||
|
|
||
|
if (Bwnd == NULL) {
|
||
|
Bwnd = DfCreateWindow(PICTUREBOX,
|
||
|
"BarChart",
|
||
|
-1, -1, BCHEIGHT, BCWIDTH,
|
||
|
NULL, pwnd, BarChartProc,
|
||
|
SHADOW |
|
||
|
CONTROLBOX |
|
||
|
MOVEABLE |
|
||
|
HASBORDER
|
||
|
);
|
||
|
DfSendMessage(Bwnd, ADDTEXT, (PARAM) Title, 0);
|
||
|
DfSendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
|
||
|
for (i = 0; i < pct; i++) {
|
||
|
DfSendMessage(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);
|
||
|
}
|
||
|
DfSendMessage(Bwnd, ADDTEXT, (PARAM) "", 0);
|
||
|
DfSendMessage(Bwnd, ADDTEXT, (PARAM) Months, 0);
|
||
|
DrawBox(Bwnd, 10, 1, pct+2, 25);
|
||
|
}
|
||
|
DfSendMessage(Bwnd, SETFOCUS, TRUE, 0);
|
||
|
}
|