Selecting a New Marker Set

The following figure is an example of how to load a Helvetica** vector font, select it as the new marker set, and select the uppercase A as the new marker primitive.

#define INCL_GPILCIDS
#define INCL_GPIPRIMITIVES
#include <os2.h>
void fncMARK03(void){
    LONG cHelvFonts, cFonts, lcid, i, j;
    HPS hps;
    FATTRS fattrs;
    FONTMETRICS afm[80];
    MARKERBUNDLE mbnd;

    cHelvFonts = GpiQueryFonts(hps, QF_PUBLIC, "Helv",
   &cFonts, sizeof(FONTMETRICS), (PFONTMETRICS) NULL);
                                 /* Queries the number of Helvetica fonts.      */

    GpiQueryFonts(hps, QF_PUBLIC, "Helv", &cHelvFonts,
       sizeof(FONTMETRICS), afm);
                                 /* Loads the array of FONTMETRICS structures.  */

    for (i = 0; !(afm[i].fsDefn & FM_DEFN_OUTLINE)
                                   && i < cHelvFonts; i++);
                                 /* Finds outline font                          */

    fattrs.usRecordLength = sizeof(FATTRS);
    fattrs.fsSelection = 0;
    fattrs.lMatch = afm[i].lMatch;         /* Uses Helvetica outline font       */
    for (j = 0; j <= sizeof(afm[i].szFacename); j++)
    fattrs.szFacename[j] = afm[i].szFacename[j];
    fattrs.idRegistry = 0;
    fattrs.usCodePage = 850;     /* Uses international code page                */
    fattrs.lMaxBaselineExt = 0;
    fattrs.lAveCharWidth = 0;
    fattrs.fsType = 0;
    fattrs.fsFontUse = FATTR_FONTUSE_TRANSFORMABLE;

    GpiCreateLogFont(hps, (PSTR8) NULL, lcid, &fattrs);
    mbnd.usSet = lcid;           /* Uses font as marker set                     */
    mbnd.usSymbol = 'A';         /* Uses capital A as primitive                 */
    GpiSetAttrs(hps, PRIM_MARKER, MBB_SYMBOL | MBB_SET, 0, &mbnd);
} /* fncMARK03 */


[Back: Selecting a New Marker]
[Next: Changing the Marker Color]