0023510: Integration of test grid "vis" into the new testing system
[occt.git] / src / Graphic2d / Graphic2d_FramedText.cdl
1 -- Created on: 1993-06-22
2 -- Created by: Jean Louis FRENKEL, Gerard GRAS
3 -- Copyright (c) 1993-1999 Matra Datavision
4 -- Copyright (c) 1999-2012 OPEN CASCADE SAS
5 --
6 -- The content of this file is subject to the Open CASCADE Technology Public
7 -- License Version 6.5 (the "License"). You may not use the content of this file
8 -- except in compliance with the License. Please obtain a copy of the License
9 -- at http://www.opencascade.org and read it completely before using this file.
10 --
11 -- The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
12 -- main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
13 --
14 -- The Original Code and all software distributed under the License is
15 -- distributed on an "AS IS" basis, without warranty of any kind, and the
16 -- Initial Developer hereby disclaims all such warranties, including without
17 -- limitation, any warranties of merchantability, fitness for a particular
18 -- purpose or non-infringement. Please see the License for the specific terms
19 -- and conditions governing the rights and limitations under the License.
20
21
22
23
24 class FramedText from Graphic2d inherits Text from Graphic2d
25
26         ---Purpose: The class defines the primitive FramedText
27
28 uses
29         Drawer          from Graphic2d,
30         GraphicObject   from Graphic2d,
31         PlaneAngle      from Quantity,
32         Length          from Quantity,
33         Ratio           from Quantity,
34         Factor          from Quantity,
35         ExtendedString  from TCollection,
36         TypeOfText      from Aspect,
37         FStream         from Aspect,
38         IFStream        from Aspect
39
40
41 is
42         -------------------------
43         -- Category: Constructors
44         -------------------------
45
46         Create (aGraphicObject: GraphicObject from Graphic2d;
47                 aText: ExtendedString from TCollection;
48                 X, Y: Real from Standard;
49                 anAngle: PlaneAngle from Quantity = 0.0;
50                 aMargin: Ratio from Quantity = 0.1;
51                 aType: TypeOfText from Aspect = Aspect_TOT_SOLID;
52                 aScale: Factor from Quantity = 1.0)
53         returns mutable FramedText from Graphic2d;
54         ---Level: Public
55         ---Purpose: Creates a framed text in a graphic object <aGraphicObject>
56         --          The text is <aText>.
57         --          The reference point is <X>, <Y>.
58         --          The orientation angle is <anAngle>.
59         --          The margin ratio is <aMargin>,defines the proportional
60         --          margin between the text height and the outline frame.
61         --          The type of text is <aType> and must be one of :
62         --              Aspect_TOT_SOLID,
63         --              Aspect_TOT_OUTLINE,
64         --          The scale factor apply to the original font size,
65         --          Angles are measured counterclockwise with 0 radian
66         --          at 3 o'clock.
67         -- 
68         --  Warning: a text can be orientable,slantable,zoomable or outlinable
69         -- only when this options are enable regardless of the graphic driver.
70         -- i.e: Xw driver does not,but Xdps or PS driver does.
71         ---Category: Constructors
72
73         ---------------------------------------------------
74         -- Category: Methods to modify the class definition
75         ---------------------------------------------------
76
77         SetFrameColorIndex (me:mutable; anIndex: Integer from Standard = 0)
78         is static;
79         ---Level: Public
80         ---Purpose: Sets the color index for the frame of the text <me>.
81         --          default color is 0 (the same color that the text).
82
83         SetFrameWidthIndex (me:mutable; anIndex: Integer from Standard = 0)
84         is static;
85         ---Level: Public
86         ---Purpose: Sets the width index for the frame of the text <me>.
87         --          default width is 0 (1 pixel out line frame is drawn).
88
89         Fit (me:mutable; aWidth,aHeight: Length from Quantity;
90                          Adjust: Boolean from Standard = Standard_True;
91                          Expand: Boolean from Standard = Standard_True)
92                         returns Boolean from Standard is redefined;
93         ---Level: Public
94         ---Purpose: Defines the size of the text according to a bounding
95         -- box. If Adjust corresponds to TRUE, text positioning
96         -- depends on the text origin and bottom line. The
97         -- method returns Standard_True if the current Driver is
98         -- compatible with the text size.
99         -- Warning
100         -- Fit computation is executed only if the dimension is > 0.
101
102         Trunc (me:mutable; aWidth: Length from Quantity)
103                         returns Boolean from Standard is redefined;
104         ---Level: Public
105         ---Purpose: Trunc the text when the Width of the text is greater
106         --          that the defined Width Max,
107         --          and returns Standard_True if the current Driver used is
108         --          enable to trunc the text size.
109
110         --------------------------
111         -- Category: Draw and Pick
112         --------------------------
113
114         Draw (me : mutable; aDrawer: Drawer from Graphic2d)
115         is redefined protected;
116         ---Level: Internal
117         ---Purpose: Draws the framed text <me>.
118
119         Pick (me : mutable; X, Y: ShortReal from Standard;
120                 aPrecision: ShortReal from Standard;
121                 aDrawer: Drawer from Graphic2d)
122         returns Boolean from Standard
123         is redefined protected;
124         ---Level: Internal
125         ---Purpose: Returns Standard_True if the framed text <me> is picked,
126         --          Standard_False if not.
127
128         ----------------------------
129         -- Category: Inquire methods
130         ----------------------------
131
132         TextSize (me; aWidth,aHeight,anXoffset,anYoffset: out Length from Quantity)
133                 returns Boolean from Standard is redefined;
134         ---Level: Public
135         ---Purpose: Returns Standard_True if the current Driver used is enabled
136         --         to get the right size and framed text offsets in the
137         --         world size parameter <aWidth>,<aHeight>,<anXoffset>,<anYoffset>
138         --         depending of the attributes of the text and the current scale
139         --         of the view.
140         --          NOTE that the text offsets defines the relative position of the
141         --         of the text string origin from the lower left corner of the framed text
142         --         boundary limits.
143         ---Category: Text management
144
145         Margin (me) returns Ratio from Quantity is static;
146         ---Level: Public
147         ---Purpose: Returns the text margin.
148
149         FrameColorIndex (me) returns Integer from Standard is static;
150         ---Level: Public
151         ---Purpose: Returns the text frame color index.
152  
153         FrameWidthIndex (me) returns Integer from Standard is static;
154         ---Level: Public
155         ---Purpose: Returns the text frame width index.
156
157         ----------------------------
158         -- Category: Private methods
159         ----------------------------
160
161         ComputeMinMax (me : mutable)
162                 returns Boolean from Standard is redefined private;
163         ---Level: Internal
164         ---Purpose: Computes the MinMax of the text if possible.
165
166         ----------------------------------------------------------------------
167
168         Save( me; aFStream: in out FStream from Aspect ) is virtual;
169 --      Retrieve( myclass; anIFStream: in out IFStream from Aspect );
170
171 fields
172         myFrameColorIndex:  Integer from Standard;
173         myFrameWidthIndex:  Integer from Standard;
174         myMargin:               ShortReal from Standard;
175  
176 end FramedText from Graphic2d;