Function GraSetAttrMarker() Foundation
Determines attributes for markers which are drawn by GraMarker().
GraSetAttrMarker( [<oPS>], [<aAttributes>] ) --> aOldAttributes
Array element | #define | value | Default value |
---|---|---|
GRA_AM_COLOR | GRA_CLR_* | GRA_CLR_NEUTRAL |
GRA_AM_BACKCOLOR | GRA_CLR_* | GRA_CLR_BACKGROUND |
GRA_AM_MIXMODE | GRA_FGMIX_* | GRA_FGMIX_OVERPAINT |
GRA_AM_BGMIXMODE | GRA_BGMIX_* | GRA_BGMIX_LEAVEALONE |
GRA_AM_SYMBOL | GRA_MARKSYM_* | GRA_MARKSYM_CROSS |
GRA_AM_BOX | { nXSize, nYSize } | Dependent on output device |
The function GraSetAttrMarker() returns a copy of the array containing the currently set marker attributes. If new attributes are specified by <aAttributes>, the function returns an array containing the previous attributes.
The function GraSetAttrMarker() determines the attributes for point marking (markers) output by GraMarker(). The marker attributes which can be specified have the following results:
Array element | Description |
---|---|
GRA_AM_COLOR | Foreground color |
GRA_AM_BACKCOLOR | Background color |
GRA_AM_MIXMODE | Color mix attribute for foreground |
GRA_AM_BGMIXMODE | Color mix attribute for background |
GRA_AM_SYMBOL | Symbol for marker |
GRA_AM_BOX | Dimension of a marker in x and y direction |
All marker attributes remain until the function GraSetAttrMarker() is called again. The exceptions to this are the colors, which are redefined with GraSetColor().
Foreground and background color
By default, the colors set by GraSetColor() are used. For markers a foreground and a background color can be specified separately.
Mix attributes
A detailed description of the mix attributes is found in the basic discussion of graphic attributes in the Xbase++ documentation.
Marker symbol
The following illustration shows all symbols for markers which can be selected by GraSetAttrMarker().

Marker size
The attribute GRA_AM_BOX determines the dimension of a marker in x and y direction. If the size is changed, an array with two elements is contained in the array element GRA_AM_BOX. The first element of the subarray contains the width of the marker and the second element contains its height.
// The example displays all available markers and
// their #define constants.
#include "Gra.ch"
PROCEDURE Main
LOCAL aAttr, aMarker, i, nX := 150, nY := 390
SetColor("N/W") // fill window with pale gray
CLS
// #define constants as
aMarker:= { ; // text and as values
{ "GRA_MARKSYM_DEFAULT ", GRA_MARKSYM_DEFAULT }, ;
{ "GRA_MARKSYM_CROSS ", GRA_MARKSYM_CROSS }, ;
{ "GRA_MARKSYM_PLUS ", GRA_MARKSYM_PLUS }, ;
{ "GRA_MARKSYM_DIAMOND ", GRA_MARKSYM_DIAMOND }, ;
{ "GRA_MARKSYM_SQUARE ", GRA_MARKSYM_SQUARE }, ;
{ "GRA_MARKSYM_SIXPOINTSTAR ", GRA_MARKSYM_SIXPOINTSTAR }, ;
{ "GRA_MARKSYM_EIGHTPOINTSTAR", GRA_MARKSYM_EIGHTPOINTSTAR }, ;
{ "GRA_MARKSYM_SOLIDDIAMOND ", GRA_MARKSYM_SOLIDDIAMOND }, ;
{ "GRA_MARKSYM_SOLIDSQUARE ", GRA_MARKSYM_SOLIDSQUARE }, ;
{ "GRA_MARKSYM_DOT ", GRA_MARKSYM_DOT }, ;
{ "GRA_MARKSYM_SMALLCIRCLE ", GRA_MARKSYM_SMALLCIRCLE }, ;
{ "GRA_MARKSYM_BLANK ", GRA_MARKSYM_BLANK } ;
}
aAttr := Array( GRA_AM_COUNT ) // create attribute array
FOR i:=1 TO 12
aAttr[ GRA_AM_SYMBOL ] := aMarker[i,2]
GraSetAttrMarker( NIL, aAttr ) // set attributes
GraStringAt( NIL, { nX+10, nY-30*i }, ; // display text
aMarker[i,1] )
GraMarker( NIL, { nX+300, nY-30*i } ) // display marker
NEXT
Inkey(0) // wait for key press
RETURN
If you see anything in the documentation that is not correct, does not match your experience with the particular feature or requires further clarification, please use this form to report a documentation issue.