1 -- File: WNT_WDriver.cdl
2 -- Created: Thu Jan 25 16:02:32 1996
3 -- Authors: LAVNIKOV Alexey & PLOTNIKOV Eugeny
4 ---Copyright: Matra Datavision 1996
6 class WDriver from WNT inherits WindowDriver from Aspect
8 ---Purpose: This class defines Windows NT window driver
12 ExtendedString from TCollection,
16 PlaneAngle from Quantity,
17 Array1OfShortReal from TShort,
18 TypeOfResize from Aspect,
19 TypeOfDrawMode from Aspect,
20 TypeOfText from Aspect,
29 HArray1OfInteger from TColStd,
30 FontMapEntry from WNT,
33 HListOfMFTFonts from WNT,
34 HArray1OfShortReal from TShort,
39 DriverDefinitionError from Aspect,
40 DriverError from Aspect
44 Create ( aWindow : Window from WNT )
45 returns mutable WDriver from WNT
46 raises DriverDefinitionError from Aspect;
48 ---Purpose: Creates Windows NT window driver associated
49 -- with the Windows NT window
52 Destroy ( me : mutable )
53 raises DriverError from Aspect is virtual;
55 ---Purpose: Destroy the Driver
56 ---Category: Methods to modify the class definition
59 SelectBuffer( me; aRetainBuffer: Integer from Standard) returns Address from Standard;
61 ---Purpose: Selects RetainBuffer for output
62 ---Category: Methods to manage buffers
67 aDoubleBuffer : Boolean = Standard_True;
68 aRetainBuffer : Integer = 0
70 ---Purpose: Begin graphics and drawn directly to the Window or Pixmap if
71 --<aRetainBuffer> is 0 or in the retain buffer if > 0.
72 raises DriverError from Aspect is virtual;
73 ---Trigger: Raises if the retain buffer is not open.
74 -- call BufferIsOpen() method before.
76 EndDraw ( me : mutable; aSynchronize : Boolean = Standard_False ) is virtual;
78 ---Purpose: Called by the method Graphic2d_View::Update, this
79 -- method manages the buffer flushing and Wait after up to date
80 -- display when Synchronize is TRUE.
81 ---Category: Methods to modify the class definition
83 ResizeSpace ( me: mutable )
84 returns TypeOfResize from Aspect
86 ---Purpose: Resizes the WorkSpace depending of the Window size
87 -- MUST be call after a Resize or Move WindowDriver Event
88 -- Returns the TypeOfResize gravity mode.
89 -- Trigger: Raises if the type of resizing is unknown.
90 raises DriverError from Aspect is virtual;
91 ---Category: Methods to modify the class definition
94 ---------------------------------------------
95 -- Category: Methods to set the attributes
96 ---------------------------------------------
99 SetHighlightColor ( me; aColorIdx : Integer from Standard )
100 returns Boolean from Standard is static;
102 ---Purpose: Sets the highlight color for the drawing. Returns False
103 -- if the graphic device does not support palette mechanism.
107 aMode : TypeOfDrawMode from Aspect
111 ---Purpose: Change the current drawing mode of the Driver
112 -- TODM_REPLACE : the primitive is drawn with his defined color.
113 -- TODM_ERASE : the primitive is erased from the window.
114 -- TODM_XOR : the primitive is xored to the window.
115 -- TODM_XORLIGHT: the primitive is xored depending of the current
116 -- highlight and background colors.
120 ColorIndex : Integer from Standard;
121 TypeIndex : Integer from Standard;
122 WidthIndex : Integer from Standard
125 ---Purpose: Sets the line attributes.
126 -- Category: Methods to set the line attributes
127 -- Trigger: Raises if one of the index is out of range.
128 raises DriverError from Aspect is virtual;
132 ColorIndex : Integer from Standard;
133 FontIndex : Integer from Standard
136 ---Purpose: Sets the text attributes.
137 -- Category: Methods to set the text attributes
138 -- Trigger: Raises if one of the index is out of range.
139 raises DriverError from Aspect is virtual;
143 ColorIndex : Integer from Standard;
144 FontIndex : Integer from Standard;
145 aSlant : PlaneAngle from Quantity;
146 aHScale : Factor from Quantity;
147 aWScale : Factor from Quantity;
148 isUnderlined : Boolean from Standard = Standard_False
151 ---Purpose: Sets the Extended text attributes.
152 -- Category: Methods to set the text attributes
153 -- Trigger: Raises if one of the index is out of range.
154 raises DriverError from Aspect is virtual;
158 ColorIndex : Integer from Standard;
159 TileIndex : Integer from Standard;
160 DrawEdgeFlag : Boolean from Standard = Standard_False
163 ---Purpose: Sets the polygon attributes.
165 -- <ColorIndex> is the background poly color index.
166 -- <TileIndex> is the background poly fill rule index.
167 -- If <DrawEdgeFlag> is TRUE the edge of the poly is drawn with the
168 -- current line attributes.
169 -- Category: Methods to set the poly attributes
170 -- Trigger: Raises if one of the index is out of range.
171 raises DriverError from Aspect is virtual;
175 ColorIndex : Integer from Standard;
176 TileIndex : Integer from Standard;
177 PolygonMode : Integer from Standard;
178 DrawEdgeFlag : Boolean from Standard = Standard_False
181 ---Purpose: Sets the polygon attributes.
183 -- <PolygonMode> way to fill consecutive lines
184 -- Category: Methods to set the poly attributes
185 -- Trigger: Raises if one of the index is out of range.
186 raises DriverError from Aspect;
190 ColorIndex : Integer from Standard;
191 EdgeWidthIndex : Integer from Standard;
192 FillMarker : Boolean from Standard = Standard_False
195 ---Purpose: Sets the marker attributes.
197 -- <ColorIndex> is the edge or fill marker color index.
198 -- <EdgeWidthIndex> is the edge marker thickness index.
199 -- If <FillMarker> is TRUE the marker is filled on the first set
200 -- of consecutive drawn points.
201 -- Trigger: Raises if one of the index is out of range.
202 raises DriverError from Aspect is virtual;
205 -----------------------------------------
206 -- Category: Methods to manage the images
207 -----------------------------------------
209 IsKnownImage ( me : mutable; anImage : Transient from Standard )
210 returns Boolean from Standard is virtual;
212 ---Purpose: Returns Standard_True if the associated driver
213 -- have stored the image and Standard_False if not.
217 anImageFile : CString from Standard;
218 aWidth,aHeight : out Integer from Standard
220 returns Boolean from Standard is virtual;
222 ---Purpose: Returns Standard_True and the Image Size in PIXEL
223 -- if the image file exist and can be computed by the driver,
224 -- NOTE that only XWD and DIB image file type are recognized
229 anImageId : Transient from Standard
233 ---Purpose: Clears the image in <me>.
237 anImageFile : CString from Standard
241 ---Purpose: Clears the image associated with the image file.
245 anImageId : Transient from Standard;
246 aX, aY : ShortReal from Standard
249 ---Purpose: Draws the image in <me>.
250 -- <aX>, <aY> is the center of the image.
251 -- Image center must be defined in DWU space.
252 raises DriverError from Aspect is virtual;
253 ---Trigger: If the anImageId is not found
257 anImageFile : CString from Standard;
258 aX, aY : ShortReal from Standard;
259 aScale : Factor from Quantity = 1.0
262 ---Purpose: Draws the image file in <me>.
263 -- <aX>, <aY> is the center of the image.
264 -- <aScale> the scale factor which is apply on this image
265 -- Image center must be defined in DWU space.
266 -- anImageFile must be defined with the full pathname
267 -- of the form dev:\path\name.ext or $DIR\name.ext
268 -- with DIR defined in a setenv variable.
269 raises DriverError from Aspect is virtual;
270 ---Trigger: If the anImageFile is not found
271 -- or the Image type is neither XWD nor DIB.
275 anImageId : Transient from Standard;
276 aX, aY : ShortReal from Standard;
277 Width, Height : Integer from Standard;
278 anArrayOfPixels : Address from Standard
281 ---Purpose: Stores a complete image and draws it in <me>.
282 -- Image size must be defined in DWU space>
283 -- Trigger: Raises if the creation of the image failed.
284 raises DriverError from Aspect is virtual;
288 anImageId : Transient from Standard;
289 aX, aY : ShortReal from Standard;
290 anIndexOfLine, Width, Height : Integer from Standard;
291 anArrayOfPixels : Address from Standard
294 ---Purpose: Stores a line of an image and draws it in <me>.
295 -- Warning: 0<= anIndexOfLine < aHeight
296 -- anIndexOfLine = 0 must be the first call
297 -- Trigger: Raises if the creation of the image failed.
298 raises DriverError from Aspect is virtual;
301 ---------------------------------------
302 -- Category: Methods to draw primitives
303 ---------------------------------------
308 ListX : Array1OfShortReal from TShort;
309 ListY : Array1OfShortReal from TShort
312 ---Purpose: Draws the polyline depending of SetLineAttrib() attributes.
313 -- Warning: Coordinates must be defined in DWU space.
314 -- Trigger: Raises if Polyline has too many points (> 1024)
315 -- Raises if the length of <ListX> is not equal to
316 -- the length of <ListY>.
317 raises DriverError from Aspect is virtual;
321 ListX : Array1OfShortReal from TShort;
322 ListY : Array1OfShortReal from TShort
325 ---Purpose: Draws the polygone depending of SetPolyAttrib() attributes.
326 -- Warning: Coordinates must be defined in DWU space.
327 -- Trigger: Raises if Polygone has too many points (> 1024)
328 -- Raises if the length of <ListX> is not equal to
329 -- the length of <ListY>.
330 raises DriverError from Aspect is virtual;
334 X1, Y1 : ShortReal from Standard;
335 X2, Y2 : ShortReal from Standard
338 ---Purpose: Draws the segment depending of SetLineAttrib() attributes.
339 -- Warning: Coordinates must be defined in DWU space.
340 raises DriverError from Aspect is virtual;
344 Text : ExtendedString from TCollection;
345 Xpos, Ypos : ShortReal from Standard;
346 anAngle : ShortReal from Standard = 0.0;
347 aType : TypeOfText from Aspect = Aspect_TOT_SOLID
350 ---Purpose: Draws the text depending of SetTextAttrib() attributes.
351 -- Warning: Coordinates must be defined in DWU space.
352 -- Trigger: Raises if Text has too many chars (> 1024)
353 raises DriverError from Aspect is virtual;
357 Text : CString from Standard;
358 Xpos, Ypos : ShortReal from Standard;
359 anAngle : ShortReal from Standard = 0.0;
360 aType : TypeOfText from Aspect = Aspect_TOT_SOLID
363 ---Purpose: Draws the text depending of SetTextAttrib() attributes.
364 -- Warning: Coordinates must be defined in DWU space.
365 -- Angle must be defined in RADIAN.
366 -- Trigger: Raises if Text has too many chars (> 1024)
367 raises DriverError from Aspect is virtual;
371 aText : ExtendedString from TCollection;
372 Xpos : ShortReal from Standard;
373 Ypos : ShortReal from Standard;
374 aMarge : Ratio from Quantity = 0.1;
375 anAngle : ShortReal from Standard = 0.0;
376 aType : TypeOfText from Aspect = Aspect_TOT_SOLID
379 ---Purpose: Draws an framed text depending of the
380 -- SetTextAttrib() and SetPolyAttrib() attributes.
381 -- Warning: Coordinates must be defined in DWU space.
382 -- <aMarge> defines the ratio of the space between the
383 -- polygon borders and the bounding box of the text and
384 -- depending of the height of the text.
385 -- Trigger: Raises if Text has too many chars (> 1024)
386 -- or <aMarge is < 0 or > 1.
387 raises DriverError from Aspect is virtual;
391 aText : CString from Standard;
392 Xpos : ShortReal from Standard;
393 Ypos : ShortReal from Standard;
394 aMarge : Ratio from Quantity = 0.1;
395 anAngle : ShortReal from Standard = 0.0;
396 aType : TypeOfText from Aspect = Aspect_TOT_SOLID
399 ---Purpose: Draws an framed text depending of the
400 -- SetTextAttrib() and SetPolyAttrib() attributes.
401 -- Warning: Coordinates must be defined in DWU space.
402 -- <aMarge> defines the ratio of the space between the
403 -- polygon borders and the bounding box of the text and
404 -- depending of the height of the text.
405 -- Trigger: Raises if Text has too many chars (> 1024)
406 -- or <aMarge is < 0 or > 1.
407 raises DriverError from Aspect is virtual;
409 DrawPoint ( me : mutable; X, Y : ShortReal from Standard )
411 ---Purpose: Draws a 1 PIXEL point depending of the SetMarkerAttrib()
412 -- color attribute or add a point depending of the incremental
413 -- BeginXxxxxx() primitive used.
414 raises DriverError from Aspect is virtual;
418 aMarker : Integer from Standard;
419 Xpos, Ypos : ShortReal from Standard;
420 Width, Height : ShortReal from Standard;
421 Angle : ShortReal from Standard = 0.0
424 ---Purpose: Draws the previously defined marker depending of
425 -- the SetMarkerAttrib() attributes.
426 -- Warning: Coordinates and sizes must be defined in DWU space.
427 -- Angle must be defined in RADIAN.
428 -- A one pixel marker is drawn when aMarker index is undefined.
429 raises DriverError from Aspect is virtual;
433 X, Y : ShortReal from Standard;
434 aXradius, aYradius : ShortReal from Standard;
435 aStartAngle : ShortReal from Standard = 0.0;
436 anOpenAngle : ShortReal from Standard = 6.283185
440 ---Purpose: Draws an Ellipsoid arc of center <X,Y> and Radius
441 -- <aXradius,aYradius> of relative angle <anOpenAngle> from
442 -- the base angle <aStartAngle>
443 -- Warning: Returns FALSE if the hardware can't drawing this
444 -- primitive properly,application must to simulate it.
445 -- Trigger: Raises if one of <aXradius,aYradius> is <= 0.
446 raises DriverError from Aspect is virtual;
450 X, Y : ShortReal from Standard;
451 anXradius, anYradius : ShortReal from Standard;
452 aStartAngle : ShortReal from Standard = 0.0;
453 anOpenAngle : ShortReal from Standard = 6.283185
457 ---Purpose: Draws an filled Ellipsoid arc of center <X,Y> and Radius
458 -- <anXradius,anYradius> of relative angle <anOpenAngle> from
459 -- the base angle <aStartAngle> and depending of the
460 -- SetPolyAttrib() attributes.
461 -- Warning: Returns FALSE if the hardware can't drawing this
462 -- primitive properly,application must to simulate it.
463 -- Trigger: Raises if one of <aXradius,aYradius> is <= 0.
464 raises DriverError from Aspect is virtual;
466 BeginPolyline ( me : mutable; aNumber : Integer ) is virtual;
468 ---Purpose: Begin a polyline primitive of <aNumber> of points.
469 -- Warning: Points must be added by the DrawPoint() method.
471 BeginPolygon ( me : mutable; aNumber : Integer ) is virtual;
473 ---Purpose: Begin a polygon primitive of <aNumber> of points .
474 -- Warning: Points must be added by the DrawPoint() method.
476 BeginSegments ( me : mutable ) is virtual;
478 ---Purpose: Begin a set of segments .
479 -- Warning: Segments must be added by DrawSegment() method.
481 BeginArcs ( me : mutable ) is virtual;
483 ---Purpose: Begin a set of circles or ellips .
484 -- Warning: Arcs must be added by the DrawArc() method.
486 BeginPolyArcs ( me : mutable ) is virtual;
488 ---Purpose: Begin a set of polygon circles or ellips .
489 -- Warning: Arcs must be added by the DrawPolyArc() method.
491 BeginMarkers ( me : mutable ) is virtual;
493 ---Purpose: Begin a set of markers .
494 -- Warning: Markers must be added by the DrawMarker() method.
496 BeginPoints ( me : mutable ) is virtual;
498 ---Purpose: Begin a set of points .
499 -- Warning: Points must be added by the DrawPoint() method.
501 ClosePrimitive ( me : mutable )
503 ---Purpose: Close the last Begining primitive
504 -- Trigger: Raises if no primitive have been opened by BeginXxxxxx().
505 raises DriverError from Aspect is virtual;
508 ---------------------------------------------
509 -- Category: Methods to define the attributes
510 ---------------------------------------------
515 Colormap : ColorMap from Aspect
518 ---Purpose: Defines the color map.
520 -- Trigger: Raises if the definition failed.
521 raises DriverError from Aspect is virtual protected;
522 ---Category: Methods to define the color indices.
526 Typemap : TypeMap from Aspect
528 ---Purpose: Defines the line type map.
530 -- Trigger: Raises if the definition failed.
531 raises DriverError from Aspect is virtual protected;
532 ---Category: Methods to define the type of line indices.
536 Widthmap : WidthMap from Aspect
538 ---Purpose: Defines the width line map.
540 -- Trigger: Raises if the definition failed.
541 raises DriverError from Aspect is virtual protected;
542 ---Category: Methods to define the width of line indices.
546 Fontmap : FontMap from Aspect
548 ---Purpose: Defines the font map.
550 -- Trigger: Raises if the definition failed.
551 raises DriverError from Aspect is virtual protected;
552 ---Category: Methods to define the font indices.
556 Markmap : MarkMap from Aspect
558 ---Purpose: Defines the mark map.
560 -- Trigger: Raises if the definition failed.
561 raises DriverError from Aspect is virtual protected;
562 ---Category: Methods to define the marker indices.
565 -------------------------------------------------------------
566 -- Category: Methods to define or edit a buffer of primitives
567 -------------------------------------------------------------
570 aRetainBuffer : Integer;
574 aColorIndex : Integer;
575 aWidthIndex : Integer;
576 aTypeIndex : Integer;
577 aFontIndex : Integer;
578 aDrawMode : TypeOfDrawMode = Aspect_TODM_REPLACE
580 returns Address is private;
584 aRetainBuffer : Integer;
585 aPivotX : ShortReal = 0.0;
586 aPivotY : ShortReal = 0.0;
587 aWidthIndex : Integer = 0;
588 aColorIndex : Integer = 0;
589 aFontIndex : Integer = 0;
590 aDrawMode : TypeOfDrawMode = Aspect_TODM_REPLACE
592 returns Boolean is virtual;
593 ---Purpose: Allocate the retain buffer <aRetainBuffer> ,
594 -- Defines the DWU coordinates of the pivot point for all primitives
596 -- Defines the buffer color and font index :
597 -- the default color is the highlight color of the colormap.
598 -- the default font is the default system font of the fontmap.
599 -- The other attributes are fixed :
600 -- line type is Solid,
601 -- line width is 1 Pixel,
602 -- polygon fill mode is Solid,
603 -- Returns TRUE if the buffer is allocated and enabled for drawing.
607 aRetainBuffer : Integer;
608 aPivotX : ShortReal = 0.0;
609 aPivotY : ShortReal = 0.0;
610 aWidthIndex : Integer = 0;
611 aColorIndex : Integer = 0;
612 aFontIndex : Integer = 0;
613 aDrawMode : TypeOfDrawMode = Aspect_TODM_REPLACE
616 ---Purpose: Allocate the retain buffer <aRetainBuffer> ,
617 -- Defines the DWU coordinates of the pivot point for all primitives
619 -- Defines the buffer color and font index :
620 -- the default color is the highlight color of the colormap.
621 -- the default font is the default system font of the fontmap.
622 -- the default line type,
623 -- the default line width,
624 -- the default polygon fill mode,
625 -- Returns TRUE if the buffer is allocated and enabled for drawing.
630 aRetainBuffer: Integer
632 ---Purpose: Clear & Deallocate the retain buffer <aRetainBuffer>.
633 raises DriverError from Aspect is virtual;
634 ---Trigger: Raises if the retain buffer is not opened.
635 -- call BufferIsOpen() method before.
639 aRetainBuffer: Integer
641 ---Purpose: Erase & Clear ALL primitives retains in the buffer <aRetainBuffer>.
642 raises DriverError from Aspect is virtual;
643 ---Trigger: Raises if the retain buffer is not opened.
644 -- call BufferIsOpen() method before.
646 DrawBuffer ( me; aRetainBuffer : Integer )
647 ---Purpose: Draw ALL primitives retains in the buffer <aRetainBuffer>.
648 -- Warning: Note that the aspect of a retain buffer drawing is
649 -- mono-colored with the current buffer Attributes and
650 -- Depending of the DoubleBuffer state flag at the BeginDraw() buffer time,
651 -- when DB is TRUE,an XOR method is use for drawing and erasing buffers in the
652 -- same way.In this case,some color side effect can occurs depending of the
653 -- traversal primitive colors and the supported hardware.
654 -- when DB is FALSE and the background drawing has been generated with
655 -- DB at TRUE,no color side effect occurs because the DB is used for restoring
656 -- the drawing context at EraseBuffer() time,this is more powerfull for the
657 -- drawing quality excepted for large buffers (flicking) .
658 raises DriverError from Aspect is virtual;
659 ---Trigger: Raises if the retain buffer is not opened.
660 -- call BufferIsOpen() method before.
662 EraseBuffer ( me; aRetainBuffer : Integer )
663 ---Purpose: Erase ALL primitives retains in the buffer <aRetainBuffer>.
664 raises DriverError from Aspect is virtual;
665 ---Trigger: Raises if the retain buffer is not opened.
666 -- call BufferIsOpen() method before.
670 aRetainBuffer : Integer;
671 aPivotX : ShortReal = 0.0;
672 aPivotY : ShortReal = 0.0
674 ---Purpose: Erase , Translate and reDraw ALL primitives retains in the buffer
676 -- <aPivotX,aPivotY> are the new DWU attached point absolute coordinates
677 -- of the buffer pivot point.
678 raises DriverError from Aspect is virtual;
679 ---Trigger: Raises if the retain buffer is not opened
680 -- call BufferIsOpen() method before.
684 aRetainBuffer : Integer;
685 aScaleX : Factor = 1.0;
686 aScaleY : Factor = 1.0
688 ---Purpose: Erase , Scale the buffer from the Pivot point and reDraw ALL primitives
689 -- retains in the buffer <aRetainBuffer>.
690 -- <aScaleX,aScaleY> are the absolute scale factors apply on the two axis.
691 -- Warning: Note that the scalling of some primitives can provided some bad
692 -- smoothing side effect (i.e: Circles,...)
693 raises DriverError from Aspect is virtual;
694 ---Trigger: Raises if the retain buffer is not opened or
695 --one of <aScale> factor is <= 0.
696 -- call BufferIsOpen() method before.
700 aRetainBuffer : Integer;
701 anAngle : PlaneAngle = 0.0
703 ---Purpose: Erase , Rotate the buffer from the Pivot point and reDraw ALL primitives
704 -- retains in the buffer <aRetainBuffer>.
705 -- <anAngle> is the absolute counter-clockwise rotation angle from the
707 raises DriverError from Aspect is virtual;
708 ---Trigger: Raises if the retain buffer is not opened.
709 -- call BufferIsOpen() method before.
712 ----------------------------
713 -- Category: Inquire methods
714 ----------------------------
716 WorkSpace ( me; Width, Heigth : out Length from Quantity ) is virtual;
718 ---Purpose: Returns the Available WorkSpace in DWU coordinates
720 Convert ( me; PV : Integer from Standard )
721 returns Length from Quantity is virtual;
723 ---Purpose: Returns the DWU value depending of
726 Convert ( me; DV : Length from Quantity )
727 returns Integer from Standard is virtual;
729 ---Purpose: Returns the PIXEL value depending of
734 PX, PY : Integer from Standard;
735 DX, DY : out Length from Quantity
739 ---Purpose: Returns the DWU position depending of
740 -- the PIXEL position .
744 DX, DY : Length from Quantity;
745 PX, PY : out Integer from Standard
749 ---Purpose: Returns the PIXEL position depending of
750 -- the DWU position .
752 ProcessColorIndex( me; ColorIndex : Integer) returns Integer from Standard is private;
754 ProcessWidthIndex( me; WidthIndex : Integer) returns Length from Quantity is private;
756 ProcessTypeIndex ( me; TypeIndex : Integer) returns Integer from Standard is private;
758 BufferIsOpen ( me; aRetainBuffer : Integer )
759 returns Boolean is virtual;
760 ---Purpose: Returns TRUE if the retain buffer <aRetainBuffer> is enabled
763 BufferIsEmpty ( me; aRetainBuffer : Integer )
764 returns Boolean is virtual;
765 ---Purpose: Returns TRUE if the retain buffer has not been opened or empty.
766 --- Returns FALSE if a lot of primitives have been stored inside
767 -- because a BeginDraw(..,<aRetainBuffer>) has been done previously.
769 BufferIsDrawn ( me; aRetainBuffer : Integer )
770 returns Boolean is virtual;
771 ---Purpose: Returns TRUE if the retain buffer s actually displayed at screen.
773 AngleOfBuffer ( me; aRetainBuffer : Integer; anAngle: out PlaneAngle )
774 ---Purpose: Returns the current buffer rotate angle from the X axis.
775 raises DriverError from Aspect is virtual;
776 ---Trigger: Raises if the retain buffer is not opened.
777 -- call BufferIsOpen() method before.
779 ScaleOfBuffer ( me; aRetainBuffer : Integer; aScaleX,aScaleY : out Factor )
780 ---Purpose: Returns the current buffer scale factors.
781 raises DriverError from Aspect is virtual;
782 ---Trigger: Raises if the retain buffer is not opened.
783 -- call BufferIsOpen() method before.
787 aRetainBuffer : Integer;
788 aPivotX, aPivotY : out ShortReal
790 ---Purpose: Returns the current buffer position.
791 raises DriverError from Aspect is virtual;
792 ---Trigger: Raises if the retain buffer is not opened.
793 -- call BufferIsOpen() method before.
797 aText : ExtendedString from TCollection;
798 aWidth, aHeight : out ShortReal from Standard;
799 aFontIndex : Integer from Standard = -1
802 ---Purpose: Returns the TEXT size in DWU space depending
803 -- of the required FontIndex if aFontIndex is >= 0
804 -- or the current FontIndex if < 0 (default).
805 -- Trigger: Raises if font is not defined.
806 raises DriverError from Aspect is virtual;
807 ---Category: Inquire methods
811 aText : ExtendedString from TCollection;
812 aWidth, aHeight, anXoffset, anYoffset : out ShortReal from Standard;
813 aFontIndex: Integer from Standard = -1)
815 ---Purpose: Returns the TEXT size and offsets
816 -- in DWU space depending
817 -- of the required FontIndex if aFontIndex is >= 0
818 -- or the current FontIndex if < 0 (default).
819 -- Trigger: Raises if font is not defined.
820 raises DriverError from Aspect is virtual;
821 ---Category: Inquire methods
825 aText : CString from Standard;
827 anXoffset, anYoffset : out ShortReal from Standard;
828 aFontIndex : Integer from Standard = -1
831 ---Purpose: Returns the TEXT size in DWU space depending
832 -- of the required FontIndex if aFontIndex is >= 0
833 -- or the current FontIndex if < 0 (default).
834 -- Trigger: Raises if font is not defined.
835 raises DriverError from Aspect is virtual;
836 ---Category: Inquire methods
840 aSlant : out PlaneAngle from Quantity;
841 aSize,aBheight : out ShortReal from Standard;
842 aFontIndex : Integer from Standard = -1
844 returns CString from Standard
846 ---Purpose: Returns the font string,slant,size and
847 -- baseline height in DWU space depending
848 -- of the required FontIndex if aFontIndex is >= 0
849 -- or the current FontIndex if < 0 (default).
850 -- Trigger: Raises if font is not defined.
851 raises DriverError from Aspect is virtual;
852 ---Category: Inquire methods
854 ColorBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
858 -- Returns the min and max driver virtual color indexs.
859 ---Category: Inquire methods
861 LocalColorIndex(me; anIndex : Integer from Standard)
862 returns Integer from Standard is redefined;
865 -- Returns the local colormap hardware index from a virtual driver color
866 -- index or returns -1 if the index is not defined.
867 ---Category: Inquire methods
869 FontBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
873 -- Returns the min and max driver virtual font indexs.
874 ---Category: Inquire methods
876 LocalFontIndex(me; anIndex : Integer from Standard)
877 returns Integer from Standard is redefined;
880 -- Returns the associated fontmap hardware index from a virtual driver font
881 -- index or returns -1 if the index is not defined.
882 ---Category: Inquire methods
884 TypeBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
888 -- Returns the min and max driver virtual type indexs.
889 ---Category: Inquire methods
891 LocalTypeIndex(me; anIndex : Integer from Standard)
892 returns Integer from Standard is redefined;
895 -- Returns the associated typemap hardware index from a virtual driver type
896 -- index or returns -1 if the index is not defined.
897 ---Category: Inquire methods
899 WidthBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
903 -- Returns the min and max driver virtual width indexs.
904 ---Category: Inquire methods
906 LocalWidthIndex(me; anIndex : Integer from Standard)
907 returns Integer from Standard is redefined;
910 -- Returns the associated widthmap hardware index from a virtual driver width
911 -- index or returns -1 if the index is not defined.
912 ---Category: Inquire methods
914 MarkBoundIndexs(me; aMinIndex,aMaxIndex : out Integer from Standard)
918 -- Returns the min and max driver virtual marker indexs.
919 ---Category: Inquire methods
921 LocalMarkIndex(me; anIndex : Integer from Standard)
922 returns Integer from Standard is redefined;
925 -- Returns the local markmap hardware index from a virtual driver marker
926 -- index or returns -1 if the index is not defined.
927 ---Category: Inquire methods
929 TextManager (me: mutable)
930 returns TextManager from WNT;
931 ---C++: return const &
932 ---Category: Inquire methods
934 MFT_Font (me: mutable; anIndex: Integer)
935 returns FontManager from MFT;
936 ---C++: return const &
937 ---Category: Inquire methods
939 MFT_Size (me: mutable; anIndex: Integer)
941 ---Category: Inquire methods
946 myAllocator : Address from Standard;
947 myWNTWindow : Window from WNT;
948 myPixelToUnit : Real from Standard;
950 myColors : HColorTable from WNT;
951 myFonts : HFontTable from WNT;
952 myTypeIdxs : HArray1OfInteger from TColStd;
953 myWidthIdxs : HArray1OfInteger from TColStd;
954 myMarkerIdxs : HArray1OfInteger from TColStd;
956 myMFTFonts : HListOfMFTFonts from WNT;
957 myMFTSizes : HArray1OfShortReal from TShort;
958 myTextManager : TextManager from WNT;