Jump to content

GpiSetAttrs: Difference between revisions

From EDM2
Ak120 (talk | contribs)
mNo edit summary
Ak120 (talk | contribs)
 
Line 106: Line 106:
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.
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
Element Type: ETYPE_LINEBUNDLE
        Generated if lPrimType is PRIM_LINE.
    Generated if lPrimType is PRIM_LINE.


        Order: Set Individual Attribute
Order: Set Individual Attribute
            One of these for each of LBB_COLOR and LBB_BACK_MIX_MODE, as required. Order: Set Fractional Line Width
    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_WIDTH, as required. Order: Set Stroke Line Width
            LBB_GEOM_WIDTH, as required. Order: Set Line Type
    LBB_GEOM_WIDTH, as required. Order: Set Line Type
            LBB_TYPE, as required. Order: Set Line End
    LBB_TYPE, as required. Order: Set Line End
            LBB_END, as required. Order: Set Line Join
    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:
    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
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
    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_WIDTH, as required. Order: Push and Set Stroke Line Width
                LBB_GEOM_WIDTH, as required. Order: Push and Set Line Type
    LBB_GEOM_WIDTH, as required. Order: Push and Set Line Type
                LBB_TYPE, as required. Order: Push and Set Line End
    LBB_TYPE, as required. Order: Push and Set Line End
                LBB_END, as required. Order: Push and Set Line Join
    LBB_END, as required. Order: Push and Set Line Join
                LBB_JOIN, as required. Element Type: ETYPE_CHARBUNDLE
    LBB_JOIN, as required. Element Type: ETYPE_CHARBUNDLE
                Generated if lPrimType is PRIM_CHAR.
    Generated if lPrimType is PRIM_CHAR.


                Order: Set Individual Attribute
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
    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_SET Order: Set Character Precision
                    CBB_MODE Order: Set Character Cell
    CBB_MODE Order: Set Character Cell
                    CBB_BOX Order: Set Character Angle
    CBB_BOX Order: Set Character Angle
                    CBB_ANGLE Order: Set Character Shear
    CBB_ANGLE Order: Set Character Shear
                    CBB_SHEAR Order: Set Character Direction
    CBB_SHEAR Order: Set Character Direction
                    CBB_DIRECTION As many as required of the following are generated if the attribute mode is AM_PRESERVE:
    CBB_DIRECTION As many as required of the following are generated if the attribute mode is AM_PRESERVE:


                    Order: Push and Set Individual Attribute
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
    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_SET Order: Push and Set Character Precision
                        CBB_MODE Order: Set Character Cell
    CBB_MODE Order: Set Character Cell
                        CBB_BOX Order: Set Character Angle
    CBB_BOX Order: Set Character Angle
                        CBB_ANGLE Order: Push and Set Character Shear
    CBB_ANGLE Order: Push and Set Character Shear
                        CBB_SHEAR Order: Push and Set Character Direction
    CBB_SHEAR Order: Push and Set Character Direction
                        CBB_DIRECTION Element Type: ETYPE_MARKERBUNDLE
    CBB_DIRECTION Element Type: ETYPE_MARKERBUNDLE
                        Generated if lPrimType is PRIM_MARKER.
    Generated if lPrimType is PRIM_MARKER.


                        Order: Set Individual Attribute
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
    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_SET Order: Set Marker Symbol
                            MBB_SYMBOL Order: Set Marker Cell
    MBB_SYMBOL Order: Set Marker Cell
                            MBB_BOX As many as required of the following are generated if the attribute mode is AM_PRESERVE:
    MBB_BOX As many as required of the following are generated if the attribute mode is AM_PRESERVE:


                            Order: Push and Set Individual Attribute
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
    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_SET Order: Push and Set Marker Symbol
                                MBB_SYMBOL Order: Push and Set Marker Cell
    MBB_SYMBOL Order: Push and Set Marker Cell
                                MBB_BOX Element Type: ETYPE_AREABUNDLE
    MBB_BOX Element Type: ETYPE_AREABUNDLE
                                Generated if lPrimType is PRIM_AREA.
    Generated if lPrimType is PRIM_AREA.


                                Order: Set Individual Attribute
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
    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_SET Order: Set Pattern Symbol
                                    ABB_SYMBOL Order: Set Pattern Reference Point
    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:
    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
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
    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_SET Order: Push and Set Pattern Symbol
                                        ABB_SYMBOL Order: Push and Set Pattern Reference Point
    ABB_SYMBOL Order: Push and Set Pattern Reference Point
                                        ABB_REF_POINT Element Type: ETYPE_IMAGEBUNDLE
    ABB_REF_POINT Element Type: ETYPE_IMAGEBUNDLE
                                        Generated if lPrimType is PRIM_IMAGE.
    Generated if lPrimType is PRIM_IMAGE.


                                        Order: Set Individual Attribute
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:
    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.


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.


[[Category:Gpi]]
[[Category:Gpi]]

Latest revision as of 12:09, 4 April 2025

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
LBB_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.