graphics.hlp (
Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software,
purely for historical purposes.
If you're looking for up-to-date documentation, particularly for programming,
you should not rely on the information found here, as it will be woefully
out of date.
PGPAL.C
◄Up► ◄Contents► ◄Index► ◄Back►
────────────────────────────────────────────────────────────────────────────
/* PGPAL.C illustrates presentation graphics palettes and the functions
* that modify them, including:
* _pg_getpalette _pg_setpalette _pg_resetpalette
* _pg_getstyleset _pg_setstyleset _pg_resetstyleset
*
* It also illustrates functions for displaying text on charts:
* _pg_hlabelchart _pg_vlabelchart
*/
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <graph.h>
#include <pgchart.h>
#define TEAMS 2
#define MONTHS 3
float _far values[TEAMS][MONTHS] = { { .435F, .522F, .671F },
{ .533F, .431F, .401F } };
char _far *months[MONTHS] = { "May", "June", "July" };
char _far *teams[TEAMS] = { "Cubs", "Reds" };
fillmap fill1 = { 0x99, 0x33, 0x66, 0xcc, 0x99, 0x33, 0x66, 0xcc };
fillmap fill2 = { 0x99, 0xcc, 0x66, 0x33, 0x99, 0xcc, 0x66, 0x33 };
styleset styles;
palettetype pal;
void main()
{
chartenv env;
if( !_setvideomode( _MAXRESMODE ) ) /* Find a valid graphics mode */
exit( 1 );
_pg_initchart(); /* Initialize chart system */
/* Modify global set of line styles used for borders, grids, and
* data connectors. Note that this change is used before
* _pg_defaultchart, which will use the style set.
*/
_pg_getstyleset( styles ); /* Get styles and modify */
styles[1] = 0x5555; /* style 1 (used for */
_pg_setstyleset( styles ); /* borders)--then set new */
_pg_defaultchart( &env, _PG_BARCHART, _PG_PLAINBARS );
/* Modify palette for data lines, colors, fill patterns, and
* characters. Note that the line styles are set in the palette, not
* in the style set, so that only data connectors will be affected.
*/
_pg_getpalette( pal ); /* Get default palette */
pal[1].plotchar = 16; /* Set to ASCII 16 and 17 */
pal[2].plotchar = 17;
memcpy( pal[1].fill, fill1, 8 ); /* Copy fill masks to palette */
memcpy( pal[2].fill, fill2, 8 );
pal[1].color = 3; /* Change palette colors */
pal[2].color = 4;
pal[1].style = 0xfcfc; /* Change palette line styles */
pal[2].style = 0x0303;
_pg_setpalette( pal ); /* Put modified palette */
/* Multiseries bar chart */
strcpy( env.maintitle.title, "Little League Records - Customized" );
_pg_chartms( &env, months, (float _far *)values,
TEAMS, MONTHS, MONTHS, teams );
getch();
_clearscreen( _GCLEARSCREEN );
/* Multiseries line chart */
_pg_defaultchart( &env, _PG_LINECHART, _PG_POINTANDLINE );
strcpy( env.maintitle.title, "Little League Records - Customized" );
_pg_chartms( &env, months, (float _far *)values,
TEAMS, MONTHS, MONTHS, teams );
/* Print labels */
_pg_hlabelchart( &env, (short)(env.chartwindow.x2 * .75F),
(short)(env.chartwindow.y2 * .10F),
12, "Up and up!" );
_pg_vlabelchart( &env, (short)(env.chartwindow.x2 * .75F),
(short)(env.chartwindow.y2 * .45F),
13, "Sliding down!" );
getch();
_clearscreen( _GCLEARSCREEN );
_pg_resetpalette(); /* Restore default palette */
_pg_resetstyleset(); /* and style set */
/* Multiseries bar chart */
_pg_defaultchart( &env, _PG_BARCHART, _PG_PLAINBARS );
strcpy( env.maintitle.title, "Little League Records - Default" );
_pg_chartms( &env, months, (float _far *)values,
TEAMS, MONTHS, MONTHS, teams );
getch();
_clearscreen( _GCLEARSCREEN );
/* Multiseries line chart */
_pg_defaultchart( &env, _PG_LINECHART, _PG_POINTANDLINE );
strcpy( env.maintitle.title, "Little League Records - Default" );
_pg_chartms( &env, months, (float _far *)values,
TEAMS, MONTHS, MONTHS, teams );
getch();
_setvideomode( _DEFAULTMODE );
}