Function GraSetAttrArea() Foundation
Determines attributes for areas which are drawn by GraArc() or GraBox()
GraSetAttrArea( [<oPS>], [<aAttributes>] ) --> aOldAttributes
|Array element||#define | value||Default value|
The function GraSetAttrArea() returns a copy of an array containing the currently set area attributes. When new attributes are specified by <aAttributes>, the function returns an array with the previous attributes.
The function GraSetAttrArea() determines the attributes for areas. It has an effect when graphic primitives such as GraArc() and GraBox() are used to draw a filled area. The area attributes are also used by the function GraPathFill(), which fills a graphic path. The area attributes which can be specified are as follows:
|GRA_AA_MIXMODE||Color mix attribute for foreground|
|GRA_AA_BGMIXMODE||Color mix attribute for background|
All area attributes remain until the function GraSetAttrArea() is called again. The exceptions to this are the colors, which are redefined with GraSetColor().
Foreground and background color
By default the colors used are those set by GraSetColor(). Separate foreground and background color can be specified for areas. If the area is to have a border, the color for the border is specified by the function GraSetAttrLine().
Mix attributes for colors are significant when areas overlap. If area A cuts into area B, the color of the common intersect area is influenced by the mix attribute. Important mix attributes for the foreground color are GRA_FGMIX_OVERPAINT (area A overpaints area B) and GRA_FGMIX_OR (the common intersect area receives another color)
Another important mix attribute is GRA_FGMIX_XOR. This attribute effectively deletes a graphic primitive from the screen when it is executed or displayed a second time at the same coordinates (a detailed description of the mix attributes is found in chapter "The Xbase++ Graphics Engine (GRA)" of the Xbase++ documentation).
The following illustration shows the fill patterns which can be selected by GraSetAttrArea(). Some of them are provided slightly different by the OS/2 and Windows platforms, respectively.
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.