### IAttributeState

  IAttributeState is a graphic state consisting of all the graphical state variables. It is needed to draw a geometry, such as paint, transfer mode, pen geometry, matrix, and clip area.

### IAttributeState - Member Functions and Data by Group

### Constructors & Destructor

Use the constructor and destructor in this group to create and destroy objects of class IAttributeState.

~IAttributeState

      public:
      virtual ~IAttributeState()

  Destroys an IAttributeState object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IAttributeState
  This function creates an object of class IAttributeState.

  Overload 1
  Copy constructor

      public:
      IAttributeState(const IAttributeState&)

  Use this constructor to create an IAttributeState object that is copied from the given one.

  const IAttributeState&
    The IAttributeState to be copied.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

  Overload 2
  Default constructor. Printing state is set to kPrintingUndefined.

      public:
      IAttributeState()

  Use this constructor to create a default IAttributeState object whose printing state is set to kPrintingUndefined.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Assignment Operator

Use the function in this group to assign the given object to the target one.

operator =

      public:
      IAttributeState& operator =(const IAttributeState&)

  Assignment operator.

  const IAttributeState&
    The source object.

Return
  A non-const reference to the left-hand side object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Obtaining Graphic State Information

Use the functions in this group to obtain attribute state values set, such as the drawing operation to be performed, the transfer mode and fill paint to be used, the end cap, joint, paint, and pen to be used for the frame, the color transfer mode and image transfer mode to be used, and the image sampling to be done.

drawingOperation

      public:
      virtual EDrawOperation drawingOperation() const = 0

  Returns the drawing operation specified by the attribute state.

Return
  An EDrawOperation enumerated type (kFill, kFrame, or kFillAndFrame) that represents the drawing operation specified by this attribute state.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

fillPaint

      public:
      virtual const IPaint* fillPaint() const

  Returns the paint used for the surface fill operations.

Return
  A constant pointer to an IPaint object that specifies the color or pattern to be used by the kFill drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

fillTransferMode

      public:
      virtual const IColorTransferMode* fillTransferMode() const

  Returns the color transfer mode to be used during a fill drawing operation.

Return
  A constant pointer to an IColorTransferMode object that represents the transfer mode to be used during a kFill drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

frameEndCap

      public:
      virtual const ICap* frameEndCap() const

  Returns the cap, for example, IFlushCap, to be used at the end of a line or geometry path.

Return
  A constant pointer to an ICap object that represents the cap to be used at the end of a line or geometry path.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

frameJoint

      public:
      virtual const IJoint* frameJoint() const

  Returns the joint to be used to smooth out the discontinuities which occur at the intersection of two line segments.

Return
  A constant pointer to an IJoint object that represents the joint to be used at the intersection of two line segments.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

framePaint

      public:
      virtual const IPaint* framePaint() const

  Returns the paint used for the frame drawing operations.

Return
  A constant pointer to an IPaint object that specifies the color or pattern to be used by the kFrame drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

framePen

      public:
      virtual const IPen* framePen() const

  Returns the pen, for example, IHairlinePen, to be used to draw the frame model of the graphic.

Return
  A constant pointer to an IPen object that represents the pen to be used by the kFrame drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

frameTransferMode

      public:
      virtual const IColorTransferMode* frameTransferMode() const

  Returns the color transfer mode to be used during a frame drawing operation.

Return
  A constant pointer to an IColorTransferMode object that represents the transfer mode to be used during a kFrame drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

imageSampling

      public:
      virtual const IImageSamplingControl* imageSampling() const

  Returns the image sampling to be done when the graphic is either interpolated or decimated.

Return
  A constant pointer to an IImageSamplingControl object that determines how an image will be sampled prior to interpolation or decimation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

imageTransferMode

      public:
      virtual const IImageTransferMode* imageTransferMode() const

  Returns the image transfer mode that determines how the colors of the image are modified when placed at the destination.

Return
  A constant pointer to an IImageTransferMode object that represents how the image colors are transferred to the destination.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Setting and Getting the Time Stamp

Use the functions in this group to get the object's time stamp, and to set it, update it, and reset it.

timeStamp

      public:
      virtual unsigned long timeStamp() const

  Returns the time stamp stored by this object.

Return
  Returns an unsigned long int that is unique with respect to all other IAttributeState objects.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

resetTimeStamp

      protected:
      void resetTimeStamp()

  Sets the time stamp to zero.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

setTimeStamp

      protected:
      void setTimeStamp(unsigned long)

  Sets the internal time stamp stored in this object.

  unsigned long
    The new time stamp value to use.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

updateTimeStamp

      protected:
      void updateTimeStamp()

  Updates the time stamp value to a new value that is unique with respect to all other IAttributeState objects.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Streaming the Object In and Out

Use the functions in this group to read the object in an out from the specified stream.

readFromStream

      protected:
      virtual void readFromStream(IDataStream& toWhere)

  Reads the IAttributeState object in from the specified stream.

  fromStream
    The stream from which the object is read in.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

writeToStream

      protected:
      virtual void writeToStream(IDataStream& toWhere) const

  Writes the object out to the specified stream.

  toWhere
    The stream that the object is written out to.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Testing Two Objects for Equality or Inequality

Use the functions in this group to compare two AttributeState objects for equality or inequality.

operator !=

      public:
      bool operator !=(const IAttributeState& obj) const

  Tests two IAttributeState objects for inequality.

  obj
    The IAttributeState to be compared with this one.

Return
  True if this IAttributeState and the argument have different attributes.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

operator ==

      public:
      virtual bool operator ==(const IAttributeState& obj) const

  Tests two IAttributeState objects for equality.

  obj
    The IAttributeState to be compared with this one.

Return
  True if this IAttributeState and the argument have equal attributes.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IAttributeState - Enumerations

EDrawOperation

      enum EDrawOperation { kFrame,
                            kFill,
                            kFillAndFrame,
                            kUnset }

  The EDrawOperation enum specifies the drawing operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IAttributeState - Inherited Member Functions and Data

#### Inherited Public Functions

  IMStreamable

  -     virtual ~IMStreamable()

  -     void externalizeToStream(IDataStream& towhere) const

  -     void internalizeFromStream(IDataStream& fromwhere)

  -     virtual const ITypeRepresentation&
          typeRepresentation() const = 0

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IMStreamable

  -     IMStreamable(const IMStreamable& other)

  -     IMStreamable()

  -     virtual void readFromStream(IDataStream& fromwhere) = 0

  -     virtual void writeToStream(IDataStream& towhere) const = 0

#### Inherited Protected Data

  - None