Added transparency handling : when drawing with the
transparent color, no destination pixels are modified. This involved changes in class
<OPLookMan> and in class <OPGrailPort>. This feature is currently supported
only by <OPGrailPort::CopyRect>.
Added anti-aliased line drawing functions :
<OPGrailPort::DrawAALine> and <OPGrailPort::DrawAALineTo>.
Added line dots computation functions :
<OPGrailPort::ComputeLineDXDots> and <OPGrailPort::ComputeLineDYDots>. These
functions can be used to find which dots belong to a line segment. Internally used for
anti-aliasing.
Types & objects
Unified the type definitions (OP_TYPE_xxx).
Simplified the <OPObject::QueryData> and
<OPObject::DefineData> methods.
Added a new wrapper class : <OPValue> can store
<Bool>, <Card32>, <Int32>, <Real>, <OPObject>,
<OPString> and <OPArray>. It provides automatic type conversion when this is
possible.
Added a set of iterator classes which provide browsing
functions for the container classes.
User Interface
Fixed lots of small look & feel incoherencies and
bugs.
Added transparency in the icons (non rectangular icons can
now be used). A special color is used in the OP_ICONS.GIF file to specify which color has
to be considered to be transparent.
The size and the position of the icons in the OP_ICONS.GIF
file are now computed dynamically thanks to small marks.
Added the new <OPScrollListPane> class. It provides
a simplified way to handle multi-column scroll lists.
Added the new <OPTextCaption> class, similar to
<OPTextTag> but with some additional features.
Work in progress
Class <GrailPath> being defined and implemented.
This will handle complex path clipping and complex path stroking.