NetBSD/dist/cdk/examples/graph_ex.c

98 lines
2.3 KiB
C

#include <cdk.h>
#ifdef HAVE_XCURSES
char *XCursesProgramName="graph_ex";
#endif
int main (void)
{
/* Declare vars. */
CDKSCREEN *cdkscreen = 0;
CDKGRAPH *graph = 0;
CDKLABEL *pausep = 0;
WINDOW *cursesWin = 0;
char *title = 0;
char *xtitle = 0;
char *ytitle = 0;
char *graphChars = 0;
char *mesg[2];
int values[20], colors[20];
int count;
/* Set up CDK. */
cursesWin = initscr();
cdkscreen = initCDKScreen (cursesWin);
/* Start CDK Colors. */
initCDKColor();
/* Create the graph values. */
values[0] = 10; colors[0] = 5;
values[1] = 15; colors[1] = 5;
values[2] = 20; colors[2] = 5;
values[3] = 25; colors[3] = 5;
values[4] = 30; colors[4] = 5;
values[5] = 35; colors[5] = 5;
values[6] = 40; colors[6] = 5;
values[7] = 45; colors[7] = 5;
values[8] = 50; colors[8] = 5;
values[9] = 55; colors[9] = 5;
count = 10;
title = "<C>Test Graph";
xtitle = "<C>X AXIS TITLE";
ytitle = "<C>Y AXIS TITLE";
graphChars = "0123456789";
/* Create the label values. */
mesg[0] = "Press Any Key When Done Viewing The Graph.";
/* Create the graph widget. */
graph = newCDKGraph (cdkscreen, CENTER, CENTER, 10, 20,
title, xtitle, ytitle);
/* Is the graph null? */
if (graph == 0)
{
/* Shut down CDK. */
destroyCDKScreen (cdkscreen);
endCDK();
/* Print out a message and exit. */
printf ("Oops. Can not make the graph widget. Is the window too small?\n");
exit (1);
}
/* Create the label widget. */
pausep = newCDKLabel (cdkscreen, CENTER, BOTTOM, mesg, 1, TRUE, FALSE);
if (pausep == 0)
{
/* Shut down CDK. */
destroyCDKGraph (graph);
destroyCDKScreen (cdkscreen);
endCDK();
/* Print out a message and exit. */
printf ("Oops. Can not make the label widget. Is the window too small?\n");
exit (1);
}
/* Set the graph values. */
setCDKGraph (graph, values, count, graphChars, FALSE, vPLOT);
/* Draw the screen. */
refreshCDKScreen (cdkscreen);
drawCDKGraph (graph, FALSE);
drawCDKLabel (pausep, TRUE);
/* Pause until the user says so... */
waitCDKLabel (pausep, 0);
/* Clean up. */
destroyCDKGraph (graph);
destroyCDKLabel (pausep);
destroyCDKScreen (cdkscreen);
delwin (cursesWin);
endCDK();
exit (0);
}