GpiSetAttrs
Appearance
This function sets attributes for the specified primitive type.
Syntax
GpiSetAttrs(hps, lPrimType, flAttrMask, flDefMask, ppbunAttrs);
Parameters
- hps (HPS) - input
- Presentation-space handle.
- lPrimType (LONG) - input
- Primitive type.
- The primitive type for which attributes are to be set:
- PRIM_LINE
Line and arc primitives
- PRIM_CHAR
Character primitives
- PRIM_MARKER
Marker primitives
- PRIM_AREA
Area primitives
- PRIM_IMAGE
Image primitives.
- flAttrMask (ULONG) - input
- Attributes mask.
- Each flag set indicates that either the corresponding flag in flDefMask is set, or the ppbunAttrs buffer contains data for the corresponding attribute. If all of the flags in flAttrMask are 0, the ppbunAttrs buffer address is not used.
- Line attributes:
- LBB_COLOR
Line color
BB_BACK_COLOR
Line background color
LBB_MIX_MODE
Line mix
LBB_BACK_MIX_MODE
Line background mix
LBB_WIDTH
Line width
LBB_GEOM_WIDTH
Geometric line width
LBB_TYPE
Line type
LBB_END
Line end
LBB_JOIN
Line join. Character attributes:
CBB_COLOR Character color CBB_BACK_COLOR Character background color CBB_MIX_MODE Character mix CBB_BACK_MIX_MODE Character background mix CBB_SET Character set CBB_MODE Character mode CBB_BOX Character box CBB_ANGLE Character angle CBB_SHEAR Character shear CBB_DIRECTION Character direction CBB_TEXT_ALIGN Character text alignment CBB_EXTRA Character extra CBB_BREAK_EXTRA Character break extra Marker attributes:
MBB_COLOR Marker color MBB_BACK_COLOR Marker background color MBB_MIX_MODE Marker mix MBB_BACK_MIX_MODE Marker background mix MBB_SET Marker set MBB_SYMBOL Marker symbol MBB_BOX Marker box.
Pattern attributes (areas):
ABB_COLOR Area color ABB_BACK_COLOR Area background color ABB_MIX_MODE Area mix ABB_BACK_MIX_MODE Area background mix ABB_SET Pattern set ABB_SYMBOL Pattern symbol ABB_REF_POINT Pattern reference point.
Image attributes:
IBB_COLOR Image color IBB_BACK_COLOR Image background color IBB_MIX_MODE Image mix IBB_BACK_MIX_MODE Image background mix.
- flDefMask (ULONG) - input
- Defaults mask.
- Each flag set (and for which flAttrMask is also set) causes the corresponding attribute to be set to its default value.
- ppbunAttrs (PBUNDLE) - input
- Attributes.
- This is a structure containing the attribute value of each attribute for which the flAttrMask flag is set (and which is not to be set to its default value), at the correct offset as specified below for the particular primitive type.
Primitive type Structure Line attributes LINEBUNDLE Character attributes CHARBUNDLE Marker attributes MARKERBUNDLE Pattern attributes (areas) AREABUNDLE Image attributes IMAGEBUNDLE
Returns
- rc (BOOL) - returns
- Success indicator.
- TRUE
- Successful completion
- FALSE
- Error occurred.
Errors
Remarks
Example Code
#define INCL_GPIPRIMITIVES /* Or use INCL_GPI, INCL_PM, */ #include <os2.h> HPS hps; /* Presentation-space handle. */ LONG lPrimType; /* Primitive type. */ ULONG flAttrMask; /* Attributes mask. */ ULONG flDefMask; /* Defaults mask. */ PBUNDLE ppbunAttrs; /* Attributes. */ BOOL rc; /* Success indicator. */ rc = GpiSetAttrs(hps, lPrimType, flAttrMask, flDefMask, ppbunAttrs);
Related Functions
- GpiPop
- GpiQueryAttrs
- GpiSetAttrMode
- GpiSetDefAttrs
Graphic Elements and Orders
The element type depends on the lPrimType parameter.
For each element, the "Set" orders are generated, if the attribute mode (see GpiSetAttrMode) is set to AM_NOPRESERVE, and the "Push and Set" orders if it is AM_PRESERVE. In either instance, a particular order is generated only if the corresponding attribute is being set with this function, as specified on the ppbunAttrs parameter.
Element Type: ETYPE_LINEBUNDLE Generated if lPrimType is PRIM_LINE.
Order: Set Individual Attribute One of these for each of LBB_COLOR and LBB_BACK_MIX_MODE, as required. Order: Set Fractional Line Width LBB_WIDTH, as required. Order: Set Stroke Line Width LBB_GEOM_WIDTH, as required. Order: Set Line Type LBB_TYPE, as required. Order: Set Line End LBB_END, as required. Order: Set Line Join LBB_JOIN, as required. As many as required of the following are generated if the attribute mode is AM_PRESERVE:
Order: Push and Set Individual Attribute One of these for each of LBB_COLOR and LBB_MIX_MODE, as required. Order: Push and Set Fractional Line Width LBB_WIDTH, as required. Order: Push and Set Stroke Line Width LBB_GEOM_WIDTH, as required. Order: Push and Set Line Type LBB_TYPE, as required. Order: Push and Set Line End LBB_END, as required. Order: Push and Set Line Join LBB_JOIN, as required. Element Type: ETYPE_CHARBUNDLE Generated if lPrimType is PRIM_CHAR.
Order: Set Individual Attribute One of these for each of CBB_COLOR, CBB_BACK_COLOR, CBB_MIX_MODE, and CBB_BACK_MIX_MODE, as required. Order: Set Character Set CBB_SET Order: Set Character Precision CBB_MODE Order: Set Character Cell CBB_BOX Order: Set Character Angle CBB_ANGLE Order: Set Character Shear CBB_SHEAR Order: Set Character Direction CBB_DIRECTION As many as required of the following are generated if the attribute mode is AM_PRESERVE:
Order: Push and Set Individual Attribute One of these for each of CBB_COLOR, CBB_BACK_COLOR, CBB_MIX_MODE, and CBB_BACK_MIX_MODE, as required. Order: Push and Set Character Set CBB_SET Order: Push and Set Character Precision CBB_MODE Order: Set Character Cell CBB_BOX Order: Set Character Angle CBB_ANGLE Order: Push and Set Character Shear CBB_SHEAR Order: Push and Set Character Direction CBB_DIRECTION Element Type: ETYPE_MARKERBUNDLE Generated if lPrimType is PRIM_MARKER.
Order: Set Individual Attribute One of these for each of MBB_COLOR, MBB_BACK_COLOR, MBB_MIX_MODE, and MBB_BACK_MIX_MODE, as required. Order: Set Marker Set MBB_SET Order: Set Marker Symbol MBB_SYMBOL Order: Set Marker Cell MBB_BOX As many as required of the following are generated if the attribute mode is AM_PRESERVE:
Order: Push and Set Individual Attribute One of these for each of MBB_COLOR, MBB_BACK_COLOR, MBB_MIX_MODE, and MBB_BACK_MIX_MODE, as required. Order: Push and Set Marker Set MBB_SET Order: Push and Set Marker Symbol MBB_SYMBOL Order: Push and Set Marker Cell MBB_BOX Element Type: ETYPE_AREABUNDLE Generated if lPrimType is PRIM_AREA.
Order: Set Individual Attribute One of these for each of ABB_COLOR, ABB_BACK_COLOR, ABB_MIX_MODE, and ABB_BACK_MIX_MODE, as required. Order: Set Pattern Set ABB_SET Order: Set Pattern Symbol ABB_SYMBOL Order: Set Pattern Reference Point ABB_REF_POINT As many as required of the following are generated if the attribute mode is AM_PRESERVE:
Order: Push and Set Individual Attribute One of these for each of ABB_COLOR, ABB_BACK_COLOR, ABB_MIX_MODE, and ABB_BACK_MIX_MODE, as required. Order: Push and Set Pattern Set ABB_SET Order: Push and Set Pattern Symbol ABB_SYMBOL Order: Push and Set Pattern Reference Point ABB_REF_POINT Element Type: ETYPE_IMAGEBUNDLE Generated if lPrimType is PRIM_IMAGE.
Order: Set Individual Attribute One of these for each of IBB_COLOR, IBB_BACK_COLOR, IBB_MIX_MODE, and IBB_BACK_MIX_MODE, as required. As many as required of the following are generated if the attribute mode is AM_PRESERVE:
Order: Push and Set Individual Attribute One of these for each of IBB_COLOR, IBB_BACK_COLOR, IBB_MIX_MODE, and IBB_BACK_MIX_MODE, as required.