overview.hlp (Table of Contents; 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.
Using Marker Primitives (1.2)
About Section  Function Group                     Up Next Previous
────────────────────────────────────────────────────────────────────────────
 
                          Using Marker Primitives
 
You can use marker functions to perform the following tasks:
 
♦  Draw a single marker or a series of markers.
 
♦  Determine the local identifier (lcid) for the current marker set.
 
♦  Select a character set as the new marker set.
 
♦  Determine the value that identifies the current marker.
 
♦  Select a character as the new marker.
 
♦  Set or change the size of the marker box.
 
♦  Set or change the color of a marker.
 
Drawing a Series of Markers
 
The following code fragment shows how to draw a graph by calling the
GpiPolyLine and GpiPolyMarker functions:
 
HPS hps;         /* presentation-space handle */
POINTL aptl[6];  /* array of points           */
    .
    .
    .
aptl[0].x = 10; aptl[0].y = 15;         /* assigns points       */
aptl[1].x = 150; aptl[1].y = 30;
aptl[2].x = 200; aptl[2].y = 32;
aptl[3].x = 250; aptl[3].y = 70;
aptl[4].x = 360; aptl[4].y = 120;
aptl[5].x = 380; aptl[5].y = 98;
GpiMove(hps, aptl);                    /* sets current position */
GpiPolyMarker(hps, 6L, aptl);          /* plots points          */
GpiPolyLine(hps, 6L, aptl);            /* draws lines           */
 
Selecting a New Marker
 
The following code fragment shows how to check whether the default marker
set and marker are currently being used. If they are, it replaces the
default marker with a six-pointed star:
 
if ((GpiQueryMarker(hps) == MARKSYM_DEFAULT) &&
        (GpiQueryMarkerSet(hps) == LCID_DEFAULT))
   GpiSetMarker(hps, MARKSYM_SIXPOINTSTAR);
 
Selecting a New Marker Set
 
The following code fragment shows how to load a Helvetica vector font, use
it as the new marker set, and select the smile-face character as the new
marker primitive:
 
GpiLoadFonts(hps, "helv");                   /* loads helv.dll     */
lFontCount = GpiQueryFonts(hps,              /* loads array of fm  */
   0x00000002, "Helvetica", &lCount,
   (LONG) (sizeof(fm)), (PFONTMETRICS) afm);
fat.usRecordLength = sizeof(fat);            /* sets record length */
fat.usCodePage = 850;                        /* sets code page     */
fat.lMatch = afm[0].lMatch;                  /* uses first metrics */
fat.fsFontUse = FATTR_FONTUSE_TRANSFORMABLE; /* uses vector font   */
GpiCreateLogFont(hps, (PSTR8) buffer, ++lcid,
   (PFATTRS) &fat);
mbnd.usSet = lcid;                      /* uses font as marker set */
mbnd.usSymbol = 2;                      /* uses smile character    */
GpiSetAttrs(hps, PRIM_MARKER,
   MBB_SYMBOL | MBB_SET,
   0L, &mbnd);
 
Changing the Marker Color
 
The following code fragment shows how to set the marker foreground color to
green:
 
mbnd.lColor = CLR_GREEN;
GpiSetAttrs(hps, PRIM_MARKER, MBB_COLOR, 0L, &mbnd);
 
 
                                      ♦