This text explains the use of DrawInfo Pens under V37 and V39.  I've
posted it verbatim to the net on a number of occasions when people
seemed confused.


You must give Intuition a ~0-terminated "pen-array" if you want the
full 3D look on your screen.  The pen-array is used to inform
Intuition and other interested software (including GadTools) what
color pens should be used for different functions.  Here are the pens,
and their value and color for the regular Workbench are shown in
brackets.

DETAILPEN - Same as screen's detail pen.  (0, gray).
BLOCKPEN - Same as screen's block pen.  (1, black).
TEXTPEN - Text color, when rendered over background (1, black).
SHINEPEN - Bright 3D edge (2, white).
SHADOWPEN - Dark 3D edge (1, black).
FILLPEN - Used to fill highlighted or selected areas (3, blue).
FILLTEXTPEN - Text color, when rendered over FILLPEN (1, black). 
BACKGROUNDPEN - Must be zero currently. (0, gray).
HIGHLIGHTTEXTPEN - Not used much, special text over background. (2, white).

UWORD myPens[] =
{
    0,  /* DETAILPEN */
    1,  /* BLOCKPEN */
    1,  /* TEXTPEN */
    2,  /* SHINEPEN */
    1,  /* SHADOWPEN */
    3,  /* FILLPEN */
    1,  /* FILLTEXTPEN */
    0,  /* BACKGROUNDPEN */
    2,  /* HIGHLIGHTTEXTPEN */
    ~0, /* terminator */
};

...

	myScreen = OpenScreenTags( &myNewScreen,
		...				/* Insert your tags here */
		SA_Pens, myPens,
		...				/* and/or here */
		TAG_DONE );


Or, if you want to use OpenScreen(), to remain 1.3-compatible, you
can do the following:

struct TagList mytags[] =
{
    SA_Pens, 0,
    TAG_DONE, 0,
};

struct ExtNewScreen myExtNewScreen =
{
	/* initialize as usual */
};

	mytags[0].ti_Data = myPens;

	/* V1.3 ignores the Extension field, but 2.0 notices it
	 * if NS_EXTENDED is set.
	 */
	myExtNewScreen.Extension = mytags;
	myExtNewScreen.Type |= NS_EXTENDED;

	myScreen = OpenScreen( &myExtNewScreen );


If you will be using the same color values as Workbench, you can also
use its pens, by defining:

UWORD myPens[] =
{
    ~0, /* terminator */
};

This pen-array has no data, just a terminator.  Intuition will use
Workbench's pens for any pens you don't specify because you terminate
your array early.  If you do this, you'd better be using the Workbench
colors, though.
