0023663: Removing 2D viewer library
[occt.git] / src / WNT / WNT_WDriver.cdl
diff --git a/src/WNT/WNT_WDriver.cdl b/src/WNT/WNT_WDriver.cdl
deleted file mode 100755 (executable)
index 58546b1..0000000
+++ /dev/null
@@ -1,976 +0,0 @@
--- Created on: 1996-01-25
--- Created by: s:      LAVNIKOV Alexey & PLOTNIKOV Eugeny
--- Copyright (c) 1996-1999 Matra Datavision
--- Copyright (c) 1999-2012 OPEN CASCADE SAS
---
--- The content of this file is subject to the Open CASCADE Technology Public
--- License Version 6.5 (the "License"). You may not use the content of this file
--- except in compliance with the License. Please obtain a copy of the License
--- at http://www.opencascade.org and read it completely before using this file.
---
--- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
--- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
---
--- The Original Code and all software distributed under the License is
--- distributed on an "AS IS" basis, without warranty of any kind, and the
--- Initial Developer hereby disclaims all such warranties, including without
--- limitation, any warranties of merchantability, fitness for a particular
--- purpose or non-infringement. Please see the License for the specific terms
--- and conditions governing the rights and limitations under the License.
-
-
-class WDriver from WNT inherits WindowDriver from Aspect
-
-       ---Purpose: This class defines Windows NT window driver
-
- uses
-    ExtendedString        from TCollection,
-    Length                from Quantity,
-    Factor                from Quantity,
-    Ratio                 from Quantity,
-    PlaneAngle            from Quantity,
-    Array1OfShortReal     from TShort,
-    TypeOfResize          from Aspect,
-    TypeOfDrawMode        from Aspect,
-    TypeOfText            from Aspect,
-    ColorMap              from Aspect,
-    TypeMap               from Aspect,
-    WidthMap              from Aspect,
-    FontMap               from Aspect,
-    MarkMap               from Aspect,
-    Window                from WNT,
-    HColorTable           from WNT,
-    HFontTable            from WNT,
-    HArray1OfInteger      from TColStd,
-    FontMapEntry          from WNT,
-
-    FontManager           from MFT,
-    HListOfMFTFonts       from WNT,
-    HArray1OfShortReal    from TShort,
-    TextManager           from WNT
-
- raises
-    DriverDefinitionError from Aspect,
-    DriverError           from Aspect
-
- is
-
-    Create ( aWindow : Window from WNT )
-     returns mutable WDriver from WNT
-     raises  DriverDefinitionError from Aspect;
-       ---Level:   Public
-       ---Purpose: Creates Windows NT window driver associated
-       --          with the Windows NT window
-
-
-    Destroy ( me : mutable )
-    raises DriverError from Aspect is virtual;
-       ---Level: Public
-       ---Purpose: Destroy the Driver
-       ---Category: Methods to modify the class definition
-       ---C++: alias ~
-
-       SelectBuffer( me; aRetainBuffer: Integer from Standard) returns Address from Standard;
-       ---Level: Public
-       ---Purpose: Selects RetainBuffer for output
-       ---Category: Methods to manage buffers
-
-
-    BeginDraw (
-     me            : mutable;
-     aDoubleBuffer : Boolean = Standard_True;
-     aRetainBuffer : Integer = 0
-    )
-        ---Purpose: Begin graphics and drawn directly to the Window or Pixmap if
-        --<aRetainBuffer> is 0 or in the retain buffer if > 0.
-    raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not open.
-        --         call BufferIsOpen() method before.
-
-    EndDraw ( me : mutable; aSynchronize : Boolean = Standard_False ) is virtual;
-       ---Level:   Public
-       ---Purpose: Called by the method Graphic2d_View::Update, this
-       --          method manages the buffer flushing and Wait after up to date
-       --          display when Synchronize is TRUE.
-       ---Category: Methods to modify the class definition
-
-    ResizeSpace ( me: mutable )
-     returns TypeOfResize from Aspect
-       ---Level:   Public
-       ---Purpose: Resizes the WorkSpace depending of the Window size
-       --          MUST be call after a Resize or Move WindowDriver Event
-        --         Returns the TypeOfResize gravity mode.
-       --  Trigger: Raises if the type of resizing is unknown.
-     raises DriverError from Aspect is virtual;
-       ---Category: Methods to modify the class definition
-
-
-       ---------------------------------------------
-       -- Category: Methods to set the attributes
-       ---------------------------------------------
-
-
-    SetHighlightColor ( me; aColorIdx : Integer from Standard )
-     returns Boolean from Standard is static;
-       ---Level:   Public
-       ---Purpose: Sets the highlight color for the drawing. Returns False
-       --          if the graphic device does not support palette mechanism.
-
-    SetDrawMode (
-     me    : mutable;
-     aMode : TypeOfDrawMode from Aspect
-    )
-     is virtual;
-        ---Level:   Public
-       ---Purpose: Change the current drawing mode of the Driver
-       --          TODM_REPLACE : the primitive is drawn with his defined color.
-       --          TODM_ERASE   : the primitive is erased from the window.
-       --          TODM_XOR     : the primitive is xored to the window.
-       --          TODM_XORLIGHT: the primitive is xored depending of the current
-       --                         highlight and background colors.
-
-    SetLineAttrib (
-     me         : mutable;
-     ColorIndex : Integer from Standard;
-     TypeIndex  : Integer from Standard;
-     WidthIndex : Integer from Standard
-    )
-       ---Level:    Public
-       ---Purpose:  Sets the line attributes.
-       --  Category: Methods to set the line attributes
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect is virtual;
-
-    SetTextAttrib (
-     me         :  mutable;
-     ColorIndex : Integer from Standard;
-     FontIndex  : Integer from Standard
-    )
-       ---Level:    Public
-       ---Purpose:  Sets the text attributes.
-       --  Category: Methods to set the text attributes
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect is virtual;
-
-    SetTextAttrib (
-     me           : mutable;
-     ColorIndex   : Integer    from Standard;
-     FontIndex    : Integer    from Standard;
-     aSlant       : PlaneAngle from Quantity;
-     aHScale      : Factor     from Quantity;
-     aWScale      : Factor     from Quantity;
-     isUnderlined : Boolean    from Standard = Standard_False
-    )
-       ---Level:    Public
-       ---Purpose:  Sets the Extended text attributes.
-       --  Category: Methods to set the text attributes
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect is virtual;
-
-    SetPolyAttrib (
-     me           : mutable;
-     ColorIndex   : Integer from Standard;
-     TileIndex    : Integer from Standard;
-     DrawEdgeFlag : Boolean from Standard = Standard_False
-    )
-       ---Level:    Public
-       ---Purpose:  Sets the polygon attributes.
-       --  Warning:
-       -- <ColorIndex> is the background poly color index.
-       -- <TileIndex> is the background poly fill rule index.
-       -- If <DrawEdgeFlag> is TRUE the edge of the poly is drawn with the
-       --  current line attributes.
-       --  Category: Methods to set the poly attributes
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect is virtual;
-
-       SetPolyAttrib (
-     me           : mutable;
-     ColorIndex   : Integer from Standard;
-     TileIndex    : Integer from Standard;
-        PolygonMode  : Integer from Standard;
-     DrawEdgeFlag : Boolean from Standard = Standard_False
-    )
-       ---Level:    Public
-       ---Purpose:  Sets the polygon attributes.
-       --  Warning:
-    --  <PolygonMode> way to fill consecutive lines
-       --  Category: Methods to set the poly attributes
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect;
-
-    SetMarkerAttrib (
-     me             : mutable;
-     ColorIndex     : Integer from Standard;
-     EdgeWidthIndex : Integer from Standard;
-     FillMarker     : Boolean from Standard = Standard_False
-    )
-       ---Level:   Public
-       ---Purpose: Sets the marker attributes.
-       --  Warning:
-       -- <ColorIndex> is the edge or fill marker color index.
-       -- <EdgeWidthIndex> is the edge marker thickness index.
-       -- If <FillMarker> is TRUE the marker is filled on the first set
-       --  of consecutive drawn points.
-       --  Trigger:  Raises if one of the index is out of range.
-     raises DriverError from Aspect is virtual;
-     
-
-       -----------------------------------------
-       -- Category: Methods to manage the images
-       -----------------------------------------
-        
-    IsKnownImage ( me : mutable; anImage : Transient from Standard )
-     returns Boolean from Standard is virtual;
-       ---Level:   Public
-        ---Purpose: Returns Standard_True if the associated driver
-       --          have stored the image and Standard_False if not.
-
-    SizeOfImageFile (
-     me;
-     anImageFile    : CString     from Standard;
-     aWidth,aHeight : out Integer from Standard
-    )
-     returns Boolean from Standard is virtual;
-       ---Level:   Public
-        ---Purpose: Returns Standard_True and the Image Size in PIXEL 
-       --          if the image file exist and can be computed by the driver,
-       --          NOTE that only XWD and DIB image file type are recognized
-       --               today. 
-
-    ClearImage (
-     me        : mutable;
-     anImageId : Transient from Standard
-    )
-     is virtual;
-       ---Level:   Public
-       ---Purpose: Clears the image in <me>.
-
-    ClearImageFile (
-     me          : mutable;
-     anImageFile : CString from Standard
-    ) 
-     is virtual;
-       ---Level:   Public
-       ---Purpose: Clears the image associated with the image file.
-
-    DrawImage (
-     me        : mutable;
-     anImageId : Transient from Standard;
-     aX, aY    : ShortReal from Standard
-    )
-       ---Level:   Public
-       ---Purpose: Draws the image in <me>.
-       --          <aX>, <aY> is the center of the image.
-       --          Image center must be defined in DWU space.
-     raises DriverError from Aspect is virtual;
-       ---Trigger: If the anImageId is not found 
-
-    DrawImageFile (
-     me          : mutable;
-     anImageFile : CString   from Standard;
-     aX, aY      : ShortReal from Standard;
-     aScale      : Factor    from Quantity = 1.0
-    )
-       ---Level:   Public
-       ---Purpose: Draws the image file in <me>.
-       --          <aX>, <aY> is the center of the image.
-       --          <aScale> the scale factor which is apply on this image
-       --          Image center must be defined in DWU space.
-        --         anImageFile must be defined with the full pathname
-       --          of the form dev:\path\name.ext or $DIR\name.ext
-       --          with DIR defined in a setenv variable.
-     raises DriverError from Aspect is virtual;
-       ---Trigger: If the anImageFile is not found 
-       --          or the Image type is neither XWD nor DIB.
-
-    FillAndDrawImage (
-     me              : mutable;
-     anImageId       : Transient from Standard;
-     aX, aY          : ShortReal from Standard;
-     Width, Height   : Integer from Standard;
-     anArrayOfPixels : Address from Standard
-    )
-       ---Level:   Public
-       ---Purpose: Stores a complete image and draws it in <me>.
-       --          Image size must be defined in DWU space>
-       --  Trigger: Raises if the creation of the image failed.
-      raises DriverError from Aspect is virtual;
-
-    FillAndDrawImage (
-     me                           : mutable;
-     anImageId                    : Transient from Standard;
-     aX, aY                       : ShortReal from Standard;
-     anIndexOfLine, Width, Height : Integer from Standard;
-     anArrayOfPixels              : Address from Standard
-    )
-       ---Level:   Advanced
-       ---Purpose: Stores a line of an image and draws it in <me>.
-       --  Warning: 0<= anIndexOfLine < aHeight
-       --          anIndexOfLine = 0 must be the first call
-       --  Trigger: Raises if the creation of the image failed.
-     raises DriverError from Aspect is virtual;
-
-
-       ---------------------------------------
-       -- Category: Methods to draw primitives
-       ---------------------------------------
-
-
-    DrawPolyline (
-     me    : mutable;
-     ListX : Array1OfShortReal from TShort;
-     ListY : Array1OfShortReal from TShort
-    )
-       ---Level:   Public
-       ---Purpose: Draws the polyline depending of SetLineAttrib() attributes.
-       --  Warning: Coordinates must be defined in DWU space.
-       --  Trigger: Raises if Polyline has too many points (> 1024)
-       --          Raises if the length of <ListX> is not equal to
-       --          the length of <ListY>.
-     raises DriverError from Aspect is virtual;
-
-    DrawPolygon (
-     me    : mutable;
-     ListX : Array1OfShortReal from TShort;
-     ListY : Array1OfShortReal from TShort
-    )
-       ---Level:   Public
-       ---Purpose: Draws the polygone depending of SetPolyAttrib() attributes.
-       --  Warning: Coordinates must be defined in DWU space.
-       --  Trigger: Raises if Polygone has too many points (> 1024)
-       --          Raises if the length of <ListX> is not equal to
-       --          the length of <ListY>.
-     raises DriverError from Aspect is virtual;
-
-    DrawSegment (
-     me     : mutable;
-     X1, Y1 : ShortReal from Standard;
-     X2, Y2 : ShortReal from Standard
-    )
-       ---Level:   Public
-       ---Purpose: Draws the segment depending of SetLineAttrib() attributes.
-       --  Warning: Coordinates must be defined in DWU space.
-     raises DriverError from Aspect is virtual;
-
-    DrawText (
-     me         : mutable;
-     Text       : ExtendedString from TCollection;
-     Xpos, Ypos : ShortReal      from Standard;
-     anAngle    : ShortReal      from Standard = 0.0;
-     aType      : TypeOfText     from Aspect = Aspect_TOT_SOLID
-    )
-       ---Level:   Public
-       ---Purpose: Draws the text depending of SetTextAttrib() attributes.
-       --  Warning: Coordinates must be defined in DWU space.
-       --  Trigger: Raises if Text has too many chars (> 1024)
-     raises DriverError from Aspect is virtual;
-
-    DrawText (
-     me         : mutable;
-     Text       : CString    from Standard;
-     Xpos, Ypos : ShortReal  from Standard;
-     anAngle    : ShortReal  from Standard = 0.0;
-     aType      : TypeOfText from Aspect = Aspect_TOT_SOLID
-    )
-       ---Level  : Public
-       ---Purpose: Draws the text depending of SetTextAttrib() attributes.
-       --  Warning: Coordinates must be defined in DWU space.
-       --          Angle must be defined in RADIAN.
-       --  Trigger: Raises if Text has too many chars (> 1024)
-     raises DriverError from Aspect is virtual;
-
-    DrawPolyText (
-     me      : mutable;
-     aText   : ExtendedString from TCollection;
-     Xpos    : ShortReal      from Standard;
-     Ypos    : ShortReal      from Standard;
-     aMarge  : Ratio          from Quantity = 0.1;
-     anAngle : ShortReal      from Standard = 0.0;
-     aType   : TypeOfText     from Aspect = Aspect_TOT_SOLID
-    )
-        ---Level:   Public
-        ---Purpose: Draws an framed text depending of the
-        -- SetTextAttrib() and SetPolyAttrib() attributes.
-        --  Warning: Coordinates must be defined in DWU space.
-        --          <aMarge> defines the ratio of the space between the 
-        --          polygon borders and the bounding box of the text and 
-        --          depending of the height of the text. 
-        --  Trigger: Raises if Text has too many chars (> 1024)
-        --          or <aMarge is < 0 or > 1.
-     raises DriverError from Aspect is virtual;
-
-     DrawPolyText (
-      me      : mutable;
-      aText   : CString    from Standard;
-      Xpos    : ShortReal  from Standard;
-      Ypos    : ShortReal  from Standard;
-      aMarge  : Ratio      from Quantity = 0.1;
-      anAngle : ShortReal  from Standard = 0.0;
-      aType   : TypeOfText from Aspect = Aspect_TOT_SOLID
-     )
-        ---Level:   Public
-        ---Purpose: Draws an framed text depending of the
-        -- SetTextAttrib() and SetPolyAttrib() attributes.
-        --  Warning: Coordinates must be defined in DWU space.
-        --          <aMarge> defines the ratio of the space between the 
-        --          polygon borders and the bounding box of the text and 
-       --          depending of the height of the text. 
-        --  Trigger: Raises if Text has too many chars (> 1024)
-        --          or <aMarge is < 0 or > 1.
-      raises DriverError from Aspect is virtual;
-
-     DrawPoint ( me : mutable; X, Y : ShortReal from Standard )
-        ---Level:   Public
-        ---Purpose: Draws a 1 PIXEL point depending of the SetMarkerAttrib() 
-       --          color attribute or add a point depending of the incremental 
-       --          BeginXxxxxx() primitive used.
-      raises DriverError from Aspect is virtual;
-
-     DrawMarker (
-      me            : mutable;
-      aMarker       : Integer   from Standard;
-      Xpos, Ypos    : ShortReal from Standard;
-      Width, Height : ShortReal from Standard;
-      Angle         : ShortReal from Standard = 0.0
-     )
-       ---Level: Public
-       ---Purpose: Draws the previously defined marker depending of 
-       --          the SetMarkerAttrib() attributes.
-       --  Warning: Coordinates and sizes must be defined in DWU space.
-       --          Angle must be defined in RADIAN.
-       --          A one pixel marker is drawn when aMarker index is undefined.
-      raises DriverError from Aspect is virtual;
-
-     DrawArc (
-      me                 : mutable;
-      X, Y               : ShortReal from Standard;
-      aXradius, aYradius : ShortReal from Standard;
-      aStartAngle        : ShortReal from Standard = 0.0;
-      anOpenAngle        : ShortReal from Standard = 6.283185
-     )
-      returns Boolean
-        ---Level:   Public
-        ---Purpose: Draws an Ellipsoid arc of center <X,Y> and Radius
-        --          <aXradius,aYradius> of relative angle <anOpenAngle> from
-        --          the base angle <aStartAngle>
-        --  Warning: Returns FALSE if the hardware can't drawing this
-        --          primitive properly,application must to simulate it.
-        --  Trigger: Raises if one of <aXradius,aYradius> is <= 0.
-      raises DriverError from Aspect is virtual;
-
-     DrawPolyArc (
-      me                   : mutable;
-      X, Y                 : ShortReal from Standard;
-      anXradius, anYradius : ShortReal from Standard;
-      aStartAngle          : ShortReal from Standard = 0.0;
-      anOpenAngle          : ShortReal from Standard = 6.283185
-     )
-      returns Boolean
-        ---Level:   Public
-        ---Purpose: Draws an filled Ellipsoid arc of center <X,Y> and Radius
-        --          <anXradius,anYradius> of relative angle <anOpenAngle> from
-        --          the base angle <aStartAngle> and  depending of the
-        --          SetPolyAttrib() attributes.
-        --  Warning: Returns FALSE if the hardware can't drawing this
-        --          primitive properly,application must to simulate it.
-        --  Trigger: Raises if one of <aXradius,aYradius> is <= 0.
-      raises DriverError from Aspect is virtual;
-
-     BeginPolyline ( me : mutable; aNumber : Integer ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a polyline primitive of <aNumber> of points.
-       --  Warning: Points must be added by the DrawPoint() method.
-
-     BeginPolygon ( me : mutable; aNumber : Integer ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a polygon primitive of <aNumber> of points .
-       --  Warning: Points must be added by the DrawPoint() method.
-     BeginSegments ( me : mutable ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a set of segments .
-       --  Warning: Segments must be added by DrawSegment() method.
-
-     BeginArcs ( me : mutable ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a set of circles or ellips .
-        --  Warning: Arcs must be added by the DrawArc() method.
-
-     BeginPolyArcs ( me : mutable ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a set of polygon circles or ellips .
-        --  Warning: Arcs must be added by the DrawPolyArc() method.
-     BeginMarkers ( me : mutable ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a set of markers .
-        --  Warning: Markers must be added by the DrawMarker() method.
-     BeginPoints ( me : mutable ) is virtual;
-        ---Level:   Public
-        ---Purpose: Begin a set of points .
-        --  Warning: Points must be added by the DrawPoint() method.
-
-     ClosePrimitive ( me : mutable )
-        ---Level:   Public
-        ---Purpose: Close the last Begining primitive
-        --  Trigger: Raises if no primitive have been opened by BeginXxxxxx().
-      raises DriverError from Aspect is virtual;
-
-
-               ---------------------------------------------
-       -- Category: Methods to define the attributes
-       ---------------------------------------------
-
-
-     InitializeColorMap (
-      me       : mutable;
-      Colormap : ColorMap from Aspect
-     )
-       ---Level:   Public
-       ---Purpose: Defines the color map.
-       --  Level:   Public
-       --  Trigger: Raises if the definition failed.
-      raises DriverError from Aspect is virtual protected;
-       ---Category: Methods to define the color indices.
-
-     InitializeTypeMap (
-      me      : mutable;
-      Typemap : TypeMap from Aspect
-     )
-       ---Purpose: Defines the line type map.
-       --  Level: Public
-       --  Trigger: Raises if the definition failed.
-       raises DriverError from Aspect is virtual protected;
-       ---Category: Methods to define the type of line indices.
-
-     InitializeWidthMap (
-      me       : mutable;
-      Widthmap : WidthMap from Aspect
-     )
-       ---Purpose: Defines the width line map.
-       --  Level: Public
-       --  Trigger: Raises if the definition failed.
-      raises DriverError from Aspect is virtual protected;
-       ---Category: Methods to define the width of line indices.
-
-     InitializeFontMap (
-      me      : mutable;
-      Fontmap : FontMap from Aspect
-     )
-       ---Purpose: Defines the font map.
-       --  Level: Public
-       --  Trigger: Raises if the definition failed.
-      raises DriverError from Aspect is virtual protected;
-       ---Category: Methods to define the font indices.
-
-     InitializeMarkMap (
-      me      : mutable;
-      Markmap : MarkMap from Aspect
-     )
-       ---Purpose: Defines the mark map.
-       --  Level: Public
-       --  Trigger: Raises if the definition failed.
-      raises DriverError from Aspect is virtual protected;
-       ---Category: Methods to define the marker indices.
-
-
-        -------------------------------------------------------------
-        -- Category: Methods to define or edit a buffer of primitives
-        -------------------------------------------------------------
-  InternalOpenBuffer (
-     me            : mutable;
-     aRetainBuffer : Integer;
-     aMono         : Boolean;
-     aPivotX       : ShortReal;
-     aPivotY       : ShortReal;
-     aColorIndex   : Integer;
-     aWidthIndex   : Integer;
-     aTypeIndex    : Integer;
-     aFontIndex    : Integer;
-     aDrawMode     : TypeOfDrawMode = Aspect_TODM_REPLACE
-    )
-    returns Address is private;
-
-    OpenBuffer (
-     me            : mutable;
-     aRetainBuffer : Integer;
-     aPivotX       : ShortReal = 0.0;
-     aPivotY       : ShortReal = 0.0; 
-     aWidthIndex   : Integer = 0;
-     aColorIndex   : Integer = 0;
-     aFontIndex    : Integer = 0;
-     aDrawMode     : TypeOfDrawMode = Aspect_TODM_REPLACE
-    )
-    returns Boolean is virtual;
-        ---Purpose: Allocate the retain buffer <aRetainBuffer> ,
-        -- Defines the DWU coordinates of the pivot point for all primitives 
-        --  contains inside.
-        -- Defines the buffer color and font index :
-        --  the default color is the highlight color of the colormap.
-        --  the default font is the default system font of the fontmap. 
-        -- The other attributes are fixed :
-        --  line type is Solid,
-        --  line width is 1 Pixel,
-        --  polygon fill mode is Solid,   
-        -- Returns TRUE if the buffer is allocated and enabled for drawing.
-
-    OpenColorBuffer (
-     me            : mutable;
-     aRetainBuffer : Integer;
-     aPivotX       : ShortReal = 0.0;
-     aPivotY       : ShortReal = 0.0;
-     aWidthIndex   : Integer = 0;
-     aColorIndex   : Integer = 0;
-     aFontIndex    : Integer = 0;
-     aDrawMode     : TypeOfDrawMode = Aspect_TODM_REPLACE
-    )
-    returns Boolean;
-        ---Purpose: Allocate the retain buffer <aRetainBuffer> ,
-        -- Defines the DWU coordinates of the pivot point for all primitives 
-        --  contains inside.
-        -- Defines the buffer color and font index :
-        --  the default color is the highlight color of the colormap.
-        --  the default font is the default system font of the fontmap. 
-        --  the default line type,
-        --  the default line width,
-        --  the default polygon fill mode,   
-        -- Returns TRUE if the buffer is allocated and enabled for drawing.
-
-
-    CloseBuffer (
-     me ; 
-     aRetainBuffer: Integer
-    )
-       ---Purpose: Clear & Deallocate the retain buffer <aRetainBuffer>.
-    raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    ClearBuffer (
-     me; 
-     aRetainBuffer: Integer
-    )
-       ---Purpose: Erase & Clear ALL primitives retains in the buffer <aRetainBuffer>.
-    raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    DrawBuffer ( me; aRetainBuffer : Integer )
-       ---Purpose: Draw ALL primitives retains in the buffer <aRetainBuffer>.
-       --  Warning: Note that the aspect of a retain buffer drawing is 
-       -- mono-colored with the current buffer Attributes and 
-       -- Depending of the DoubleBuffer state flag at the BeginDraw() buffer time,
-       -- when DB is TRUE,an XOR method is use for drawing and erasing buffers in the
-       -- same way.In this case,some color side effect can occurs depending of the 
-       -- traversal primitive colors and the supported hardware.
-       -- when DB is FALSE and the background drawing has been generated with
-       -- DB at TRUE,no color side effect occurs because the DB is used for restoring
-       -- the drawing context at EraseBuffer() time,this is more powerfull for the
-       -- drawing quality excepted for large buffers (flicking) . 
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    EraseBuffer ( me; aRetainBuffer : Integer )
-       ---Purpose: Erase ALL primitives retains in the buffer <aRetainBuffer>.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    MoveBuffer (
-     me;
-     aRetainBuffer : Integer;
-     aPivotX       : ShortReal = 0.0;
-     aPivotY       : ShortReal = 0.0
-    ) 
-       ---Purpose: Erase , Translate and reDraw ALL primitives retains in the buffer 
-       --  <aRetainBuffer>.
-       --  <aPivotX,aPivotY> are the new DWU attached point absolute coordinates 
-       --  of the buffer pivot point.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened
-       --         call BufferIsOpen() method before.
-
-    ScaleBuffer (
-     me;
-     aRetainBuffer : Integer; 
-     aScaleX       : Factor = 1.0;
-     aScaleY       : Factor = 1.0
-    )
-       ---Purpose: Erase , Scale the buffer from the Pivot point and reDraw ALL primitives 
-       --  retains in the buffer <aRetainBuffer>.
-       --  <aScaleX,aScaleY> are the absolute scale factors apply on the two axis.
-       --  Warning: Note that the scalling of some primitives can provided some bad 
-       --  smoothing side effect (i.e: Circles,...)
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened or 
-       --one of <aScale> factor is <= 0.
-       --         call BufferIsOpen() method before.
-
-    RotateBuffer (
-     me;
-     aRetainBuffer : Integer;
-     anAngle       : PlaneAngle = 0.0
-    )
-       ---Purpose: Erase , Rotate the buffer from the Pivot point and reDraw ALL primitives 
-       --  retains in the buffer <aRetainBuffer>.
-       --  <anAngle> is the absolute counter-clockwise rotation angle from the 
-       --  Horizontal axis.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-
-        ----------------------------
-        -- Category: Inquire methods
-        ----------------------------
-
-    WorkSpace ( me; Width, Heigth : out Length from Quantity ) is virtual;
-       ---Level:   Public
-       ---Purpose: Returns the Available WorkSpace in DWU coordinates
-
-    Convert  ( me; PV : Integer from Standard )
-     returns Length from Quantity is virtual;
-       ---Level:   Public
-       ---Purpose: Returns the DWU value depending of
-       --          the PIXEL value.
-
-    Convert ( me; DV : Length from Quantity )
-     returns Integer from Standard is virtual;
-       ---Level: Public
-       ---Purpose: Returns the PIXEL value depending of
-        --         the DWU value.
-
-    Convert (
-     me;
-     PX, PY : Integer    from Standard;
-     DX, DY : out Length from Quantity
-    )
-     is virtual;
-       ---Level: Public
-       ---Purpose: Returns the DWU position depending of
-       --          the PIXEL position .
-
-    Convert (
-     me;
-     DX, DY : Length      from Quantity;
-     PX, PY : out Integer from Standard
-    )
-     is virtual;
-       ---Level: Public
-       ---Purpose: Returns the PIXEL position depending of
-       --          the DWU position .
-
-    ProcessColorIndex( me; ColorIndex : Integer) returns Integer from Standard is private;
-
-    ProcessWidthIndex( me; WidthIndex : Integer) returns Length from Quantity is private;
-
-    ProcessTypeIndex ( me; TypeIndex  : Integer) returns Integer from Standard is private;
-
-    BufferIsOpen ( me; aRetainBuffer : Integer )
-     returns Boolean is virtual;
-       ---Purpose: Returns TRUE if the retain buffer <aRetainBuffer> is enabled 
-       --for drawing.
-
-    BufferIsEmpty ( me; aRetainBuffer : Integer )
-     returns Boolean is virtual;
-       ---Purpose: Returns TRUE if the retain buffer has not been opened or empty. 
-       ---         Returns FALSE if a lot of primitives have been stored inside
-       --          because a BeginDraw(..,<aRetainBuffer>) has been done previously.
-
-    BufferIsDrawn ( me; aRetainBuffer : Integer )
-     returns Boolean is virtual;
-        ---Purpose: Returns TRUE if the retain buffer s actually displayed at screen.
-
-    AngleOfBuffer ( me; aRetainBuffer : Integer; anAngle: out PlaneAngle )
-       ---Purpose: Returns the current buffer rotate angle from the X axis.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --          call BufferIsOpen() method before.
-
-    ScaleOfBuffer ( me; aRetainBuffer : Integer; aScaleX,aScaleY : out Factor )
-       ---Purpose: Returns the current buffer scale factors.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    PositionOfBuffer (
-     me;
-     aRetainBuffer    : Integer;
-     aPivotX, aPivotY : out ShortReal
-    )
-       ---Purpose: Returns the current buffer position.
-     raises DriverError from Aspect is virtual;
-        ---Trigger: Raises if the retain buffer is not opened.
-       --         call BufferIsOpen() method before.
-
-    TextSize (
-     me; 
-     aText           : ExtendedString from TCollection;
-     aWidth, aHeight : out ShortReal  from Standard;
-     aFontIndex      : Integer        from Standard = -1
-    )
-        ---Level: Public
-        ---Purpose: Returns the TEXT size in DWU space depending
-        --          of the required FontIndex if aFontIndex is >= 0
-        --          or the current FontIndex if < 0 (default).
-        --  Trigger: Raises if font is not defined.
-     raises DriverError from Aspect is virtual;
-        ---Category: Inquire methods
-    
-    TextSize (
-      me;
-      aText                                 : ExtendedString from TCollection;
-      aWidth, aHeight, anXoffset, anYoffset : out ShortReal from Standard;
-      aFontIndex: Integer from Standard = -1)
-        ---Level: Public
-        ---Purpose: Returns the TEXT size and offsets 
-       --          in DWU space depending
-        --          of the required FontIndex if aFontIndex is >= 0
-        --          or the current FontIndex if < 0 (default).
-        --  Trigger: Raises if font is not defined.
-    raises DriverError from Aspect is virtual;
-        ---Category: Inquire methods
-    TextSize ( 
-     me;  
-     aText                : CString from Standard;
-     aWidth, aHeight,
-     anXoffset, anYoffset : out ShortReal from Standard;
-     aFontIndex           : Integer       from Standard = -1
-    )
-        ---Level: Public
-        ---Purpose: Returns the TEXT size in DWU space depending
-        --          of the required FontIndex if aFontIndex is >= 0
-        --          or the current FontIndex if < 0 (default).
-        --  Trigger: Raises if font is not defined.
-     raises DriverError from Aspect is virtual;
-        ---Category: Inquire methods
-    FontSize (
-     me;
-     aSlant :         out PlaneAngle from Quantity;
-     aSize,aBheight : out ShortReal  from Standard;
-     aFontIndex     : Integer from Standard = -1
-    )
-     returns CString from Standard
-        ---Level: Public
-        ---Purpose: Returns the font string,slant,size and
-        --  baseline height in DWU space depending
-        --          of the required FontIndex if aFontIndex is >= 0
-        --          or the current FontIndex if < 0 (default).
-        --  Trigger: Raises if font is not defined.
-     raises DriverError from Aspect is virtual;
-        ---Category: Inquire methods
-       ColorBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
-                                                               is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the min and max driver virtual color indexs.
-        ---Category: Inquire methods
-
-        LocalColorIndex(me; anIndex : Integer from Standard)
-                                returns Integer from Standard is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the local colormap hardware index from a virtual driver color
-        -- index or returns -1 if the index is not defined.
-        ---Category: Inquire methods
-       FontBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
-                                                               is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the min and max driver virtual font indexs.
-        ---Category: Inquire methods
-
-        LocalFontIndex(me; anIndex : Integer from Standard)
-                                returns Integer from Standard is redefined;
-        ---Level: Advanced
-        ---Purpose:
-        -- Returns the associated fontmap hardware index from a virtual driver font
-        -- index or returns -1 if the index is not defined.
-        ---Category: Inquire methods
-       TypeBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
-                                                               is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the min and max driver virtual type indexs.
-        ---Category: Inquire methods
-
-        LocalTypeIndex(me; anIndex : Integer from Standard)
-                                returns Integer from Standard is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the associated typemap hardware index from a virtual driver type
-        -- index or returns -1 if the index is not defined.
-        ---Category: Inquire methods
-       WidthBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
-                                                               is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the min and max driver virtual width indexs.
-        ---Category: Inquire methods
-
-        LocalWidthIndex(me; anIndex : Integer from Standard)
-                                returns Integer from Standard is redefined;
-        ---Level: Advanced
-        ---Purpose:
-        -- Returns the associated widthmap hardware index from a virtual driver width
-        -- index or returns -1 if the index is not defined.
-        ---Category: Inquire methods
-       MarkBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
-                                                               is redefined;
-        ---Level: Advanced
-        ---Purpose: 
-        -- Returns the min and max driver virtual marker indexs.
-        ---Category: Inquire methods
-
-  LocalMarkIndex(me; anIndex : Integer from Standard)
-               returns Integer from Standard is redefined;
-        ---Level: Advanced
-        ---Purpose:
-        -- Returns the local markmap hardware index from a virtual driver marker
-        -- index or returns -1 if the index is not defined.
-        ---Category: Inquire methods
-
-  TextManager (me: mutable)
-  returns TextManager from WNT;
-        ---C++: return const &
-        ---Category: Inquire methods
-
-  MFT_Font (me: mutable; anIndex: Integer)
-  returns FontManager from MFT;
-        ---C++: return const &
-        ---Category: Inquire methods
-
-  MFT_Size (me: mutable; anIndex: Integer)
-  returns ShortReal;
-        ---Category: Inquire methods
-
-fields
-  myAllocators,
-  myAllocator        : Address               from Standard;
-  myWNTWindow        : Window                from WNT;
-  myPixelToUnit      : Real                  from Standard;
-
-  myColors           : HColorTable           from WNT;
-  myFonts            : HFontTable            from WNT;
-  myTypeIdxs         : HArray1OfInteger      from TColStd;
-  myWidthIdxs        : HArray1OfInteger      from TColStd;
-  myMarkerIdxs       : HArray1OfInteger      from TColStd;
-
-  myMFTFonts         : HListOfMFTFonts       from WNT;
-  myMFTSizes         : HArray1OfShortReal    from TShort;
-  myTextManager      : TextManager           from WNT;
-
-end WDriver;