rfddriv.gml
来自「开放源码的编译器open watcom 1.6.0版的源代码」· GML 代码 · 共 958 行 · 第 1/2 页
GML
958 行
:FIG place=inline frame=box.
&gml.BOLDEND
&gml.value.
%binary1($27)%text('p')
&gml.evalue.
&gml.eBOLDEND.
:FIGCAP.Example of the BOLDEND Block
:eFIG.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies the sequence to be output to stop
the bolding of text,
:INCLUDE file='rfdvalue'.
:H3.UNDERSTART Block
:P.
The :HP2.understart:eHP2.
:I2 refid='ddrive'.understart block
:I1.underscoring
:I1.underlining
block defines
the method by which &WGML. will
cause text to be underscored in the output.
If this block is not specified,
underscoring of text is obtained by overprinting
the output line.
If overprinting is used, a newline block with an advance
of zero must be specified.
:FIG place=inline frame=box.
&gml.UNDERSTART
&gml.value.
<device functions>
&gml.evalue.
&gml.eUNDERSTART.
:FIGCAP.The UNDERSTART Block
:eFIG.
:P.
The understart block begins with the :HP2.&gml.understart:eHP2.
:IH1 print='&gml.understart tag'.understart tag
:I1.understart tag
tag and ends with the :HP2.&gml.eunderstart:eHP2.
:IH1 print='&gml.eunderstart tag'.eunderstart tag
:I1.eunderstart tag
tag.
The value section must be specified.
:FIG place=inline frame=box.
&gml.UNDERSTART
&gml.value.
%binary1($27)%text('u')
&gml.evalue.
&gml.eUNDERSTART.
:FIGCAP.Example of the UNDERSTART Block
:eFIG.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies
the sequence to be output to obtain
the underscoring,
:INCLUDE file='rfdvalue'.
:H3.UNDEREND Block
:P.
The :HP2.underend:eHP2.
:I2 refid='ddrive'.underend block
block defines the
sequences needed to stop the underscoring
of text.
The underend block is required if an understart block is specified.
:FIG place=inline frame=box.
&gml.UNDEREND
&gml.value.
<device functions>
&gml.evalue.
&gml.eUNDEREND.
:FIGCAP.The UNDEREND Block
:eFIG.
:P.
The underend block begins with the :HP2.&gml.underend:eHP2.
:IH1 print='&gml.underend tag'.underend tag
:I1.underend tag
tag and ends with the :HP2.&gml.eunderend:eHP2.
:IH1 print='&gml.eunderend tag'.eunderend tag
:I1.eunderend tag
tag.
The value section must be specified.
:FIG place=inline frame=box.
&gml.UNDEREND
&gml.value.
%binary1($27)%text('w')
&gml.evalue.
&gml.eUNDEREND.
:FIGCAP.Example of the UNDEREND Block
:eFIG.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies the sequence to be output to stop
the underscoring of text,
:INCLUDE file='rfdvalue'.
:H3.FONTSWITCH Block
:P.
The :HP2.fontswitch:eHP2.
:I2 refid='ddrive'.fontswitch block
block identifies a method for switching fonts.
With some output devices, different fonts are available when
control sequences are used to switch from the default font.
A separate fontswitch block may be specified for each type
of font switch method available with the device.
:FIG place=inline frame=box.
&gml.FONTSWITCH
type=string
&gml.startvalue.
<device functions>
&gml.estartvalue.
&gml.endvalue.
<device functions>
&gml.eendvalue.
&gml.eFONTSWITCH.
:FIGCAP.The FONTSWITCH Block
:eFIG.
:P.
The fontswitch block begins with the :HP2.&gml.fontswitch:eHP2.
:IH1 print='&gml.fontswitch tag'.fontswitch tag
:I1 id='dafonts'.fontswitch tag
tag and ends with the :HP2.&gml.efontswitch:eHP2.
:IH1 print='&gml.efontswitch tag'.efontswitch tag
:I1.efontswitch tag
tag.
The type attribute and the value section must be specified.
:FIG place=inline frame=box.
&gml.FONTSWITCH
type='qume proportional on'
&gml.startvalue.
%binary1(27)%text('$')
&gml.estartvalue.
&gml.endvalue.
%binary1(27)%text('x')
%recordbreak()
&gml.eendvalue.
&gml.eFONTSWITCH.
:FIGCAP.Example of the FONTSWITCH Block
:eFIG.
:H4 id='fswtype'.TYPE Attribute
:P.
The character value of the :HP2.type:eHP2.
:I2 refid='dafonts'.type attribute
attribute provides
an identifier for the font switch method.
This identifier is referenced in the device definition when
specifying the fonts available for the device.
The attribute value must be unique among the font switch blocks
in the driver definition.
:H4.STARTVALUE Section
:P.
The :HP2.startvalue:eHP2.
:I2 refid='dafonts'.startvalue section
section specifies
the sequence to be output to perform
the font switch,
and is started
with the :HP2.&gml.startvalue:eHP2.
:IH1 print='&gml.startvalue tag'.startvalue tag
:I1.startvalue tag
tag.
Device functions are then entered after the &gml.startvalue tag, and
may be specified on more than one line.
The :HP2.&gml.estartvalue:eHP2.
:IH1 print='&gml.estartvalue tag'.estartvalue tag
:I1.estartvalue tag
tag delimits the end of a startvalue section,
and must be the first non-space characters in the line.
:P.
When a switch between two fonts is necessary,
the startvalue sections of the two fonts are evaluated.
The font switch is only performed if the results of the
two evaluations are different.
:H4.ENDVALUE Section
:P.
The :HP2.endvalue:eHP2.
:I2 refid='dafonts'.endvalue section
section specifies
the sequence to be output before the font switch
sequence of the new font is performed,
and is started
with the :HP2.&gml.endvalue:eHP2.
:IH1 print='&gml.endvalue tag'.endvalue tag
:I1.endvalue tag
tag.
Device functions are then entered after the &gml.endvalue tag, and
may be specified on more than one line.
The :HP2.&gml.eendvalue:eHP2.
:IH1 print='&gml.eendvalue tag'.eendvalue tag
:I1.eendvalue tag
tag delimits the end of an endvalue section,
and must be the first non-space characters in the line.
:H3.PAGEADDRESS Block
:P.
As text is placed on the output page,
the X and Y components of the address are adjusted to make a new
address.
With some output devices, this adjustment is added (positive) to
the address.
The adjustment is subtracted (negative) with other output devices.
The :HP2.pageaddress:eHP2.
:I2 refid='ddrive'.pageaddress block
block specifies
whether the adjustment is positive or negative.
If the output device does not support page addressing, this
block should not be specified.
(See :HDREF refid='devpgad'. for more information).
:FIG place=inline frame=box.
&gml.PAGEADDRESS
x_positive = YES | NO
y_positive = YES | NO
&gml.ePAGEADDRESS.
:FIGCAP.The PAGEADDRESS Block
:eFIG.
:P.
The pageaddress block begins with the :HP2.&gml.pageaddress:eHP2.
:IH1 print='&gml.pageaddress tag'.pageaddress tag
:I1 id='dapagea'.pageaddress tag
tag and ends
with the :HP2.&gml.epageaddress:eHP2.
:IH1 print='&gml.epageaddress tag'.epageaddress tag
:I1.epageaddress tag
tag.
The two attributes must be specified.
:FIG place=inline frame=box.
&gml.PAGEADDRESS
x_positive = yes
y_positive = yes
&gml.ePAGEADDRESS.
:FIGCAP.Example of the PAGEADDRESS Block
:eFIG.
:H3.ABSOLUTEADDRESS Block
:P.
When an output device supports page addressing,
the :HP2.absoluteaddress:eHP2.
:I1.absolute addressing
:I2 refid='ddrive'.absoluteaddress block
block specifies the
mechanism for absolute page addressing.
If the output device does not support page addressing, this
block should not be specified.
:FIG place=inline frame=box.
&gml.ABSOLUTEADDRESS
&gml.value.
<device functions>
&gml.evalue.
&gml.eABSOLUTEADDRESS.
:FIGCAP.The ABSOLUTEADDRESS Block
:eFIG.
:P.
The absoluteaddress block begins with the :HP2.&gml.absoluteaddress:eHP2.
:IH1 print='&gml.absoluteaddress tag'.absoluteaddress tag
:I1 id='daabsol'.absoluteaddress tag
tag and ends with the :HP2.&gml.eabsoluteaddress:eHP2.
:IH1 print='&gml.eabsoluteaddress tag'.eabsoluteaddress tag
:I1.eabsoluteaddress tag
tag.
The value section must be specified.
:FIG place=inline frame=box.
&gml.ABSOLUTEADDRESS
&gml.value.
%binary1($27)%text('a')
%text(decimal(%x_address()))
%text(',')%decimal(%y_address())
%binary1($15)
&gml.evalue.
&gml.eABSOLUTEADDRESS.
:FIGCAP.Example of the ABSOLUTEADDRESS Block
:eFIG.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies
the sequence to be output to set a new absolute address,
:INCLUDE file='rfdvalue'.
:H3.HLINE Block
:P.
The :HP2.hline:eHP2.
:I1.horizontal lines
:I1.rule lines
:I2 refid='ddrive'.hline block
block specifies the
mechanism for creating horizontal rule lines.
If this block is not specified, rule lines will be created with
characters.
:FIG place=inline frame=box.
&gml.HLINE
thickness = number
&gml.value.
<device functions>
&gml.evalue.
&gml.eHLINE.
:FIGCAP.The HLINE Block
:eFIG.
:P.
The hline block begins with the :HP2.&gml.hline:eHP2.
:IH1 print='&gml.hline tag'.hline tag
:I1 id='dahline'.hline tag
tag and ends with the :HP2.&gml.ehline:eHP2.
:IH1 print='&gml.ehline tag'.ehline tag
:I1.ehline tag
tag.
The thickness attribute and value section must be specified.
The special symbols :HP1.%x_size:eHP1. and :HP1.%thickness:eHP1.
are defined prior to processing the hline block.
The symbol %x_size is set to the width of the horizontal line, from
the left edge to the right edge.
The symbol %thickness is set to the value specified by the
hline blocks thickness attribute.
&WGML. positions to the bottom left corner of the line before
creating the rule line, and assumes the current point of the device
is set to the bottom right corner of the line when finished.
:FIG place=inline frame=box.
&gml.HLINE
thickness=4
&gml.value.
%binary1(27)%text('x')
%text(%decimal(%x_address()))%text(',')
%text(%decimal(%y_address()))%text(',')
%text(%decimal(%x_size()))%text(',')
%text(%decimal(%thickness()))%text(',')%binary1(10)
&gml.evalue.
&gml.eHLINE.
:FIGCAP.Example of the HLINE Block
:eFIG.
:H4.THICKNESS Attribute
:P.
The :HP2.thickness:eHP2. attribute specifies
the thickness of the horizontal line.
This value is in terms of the device horizontal base units.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies
the sequence to be output to create a horizontal rule line,
:INCLUDE file='rfdvalue'.
:H3.VLINE Block
:P.
The :HP2.vline:eHP2.
:I1.vertical lines
:I1.rule lines
:I2 refid='ddrive'.vline block
block specifies the
mechanism for creating vertical rule lines.
If this block is not specified, rule lines will be created with
characters.
:FIG place=inline frame=box.
&gml.VLINE
thickness = number
&gml.value.
<device functions>
&gml.evalue.
&gml.eVLINE.
:FIGCAP.The VLINE Block
:eFIG.
:P.
The vline block begins with the :HP2.&gml.vline:eHP2.
:IH1 print='&gml.vline tag'.vline tag
:I1 id='davline'.vline tag
tag and ends with the :HP2.&gml.evline:eHP2.
:IH1 print='&gml.evline tag'.evline tag
:I1.evline tag
tag.
The thickness attribute and value section must be specified.
The special symbols :HP1.%y_size:eHP1. and :HP1.%thickness:eHP1.
are defined prior to processing the vline block.
The symbol %y_size is set to the height of the vertical line,
from the top edge to the bottom edge.
The symbol %thickness is set to the value specified by the
vline blocks thickness attribute.
&WGML. positions to the bottom left corner of the line before
creating the rule line, and assumes the current point of the device
is set to the top left corner of the line when finished.
:FIG place=inline frame=box.
&gml.VLINE
thickness=4
&gml.value.
%binary1(27)%text('y')
%text(%decimal(%x_address()))%text(',')
%text(%decimal(%y_address()))%text(',')
%text(%decimal(%y_size()))%text(',')
%text(%decimal(%thickness()))%text(',')%binary1(10)
&gml.evalue.
&gml.eVLINE.
:FIGCAP.Example of the VLINE Block
:eFIG.
:H4.THICKNESS Attribute
:P.
The :HP2.thickness:eHP2. attribute specifies
the thickness of the vertical line.
This value is in terms of the device horizontal base units.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies
the sequence to be output to create a vertical rule line,
:INCLUDE file='rfdvalue'.
:H3.DBOX Block
:P.
The :HP2.dbox:eHP2.
:I1.framing
:I1.boxes
:I1.rule lines
:I2 refid='ddrive'.dbox block
block specifies the
mechanism for creating a box.
If this block is not specified, rule lines will be created with
the hline and vline block definitions.
:FIG place=inline frame=box.
&gml.DBOX
thickness = number
&gml.value.
<device functions>
&gml.evalue.
&gml.eDBOX.
:FIGCAP.The DBOX Block
:eFIG.
:P.
The dbox block begins with the :HP2.&gml.dbox:eHP2.
:IH1 print='&gml.dbox tag'.dbox tag
:I1 id='dadbox'.dbox tag
tag and ends with the :HP2.&gml.edbox:eHP2.
:IH1 print='&gml.edbox tag'.edbox tag
:I1.edbox tag
tag.
The thickness attribute and value section must be specified.
The special symbols :HP1.%x_size:eHP1.,
:HP1.%y_size:eHP1. and :HP1.%thickness:eHP1.
are defined prior to processing the dbox block.
The symbol %x_size is set to the width of the
horizontal component of the box,
from the left edge to the right edge.
The symbol %y_size is set to the height of the vertical component of the box,
from the top edge to the bottom edge.
The symbol %thickness is set to the value specified by the
dbox thickness attribute.
&WGML. positions to the bottom left corner of the box before
creating the box lines, and assumes the current point of the device
is set to the bottom right corner of the box when finished.
:FIG place=inline frame=box.
&gml.DBOX
thickness=10
&gml.value.
%recordbreak()
%text(%decimal(%divide(%thickness(),2)))
%text(' ')
%text(%decimal(%divide(%thickness(),2)))
%text(' rmoveto')
%recordbreak()
%text('0 ')%text(%decimal(%y_size()))%text(' rlineto ')
%recordbreak()
%text(%decimal(%subtract(%x_size(),%thickness())))
%text(' 0 rlineto ')
%recordbreak()
%text('0 -')%text(%decimal(%y_size()))%text(' rlineto ')
%recordbreak()
%text('-')%text(%decimal(%subtract(%x_size(),%thickness())))
%text(' 0 rlineto')
%recordbreak()
%text('closepath ')
%text(%decimal(%thickness()))
%text(' setlinewidth stroke')
%recordbreak()
%text(%decimal(%add(%x_address(),%x_size())))
%text(' ')%text(%decimal(%y_address()))
%text(' moveto')
%recordbreak()
&gml.evalue.
&gml.eDBOX.
:FIGCAP.Example of the DBOX Block
:eFIG.
:H4.THICKNESS Attribute
:P.
The :HP2.thickness:eHP2. attribute specifies
the thickness of the box lines.
This value is in terms of the device horizontal base units.
:H4.VALUE Section
:P.
The :HP2.value:eHP2. section specifies
the sequence to be output to create a box,
:INCLUDE file='rfdvalue'.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?