(LOGO.JPG) Python for OpenVMS

(go to: table of contents, index, list of vms_smg, prev: PUT_CHARS_HIGHWIDE, next: PUT_CHARS_WIDE)


PUT_CHARS_MULTI - Put Text with Multiple Renditions to Display

Write text with multiple renditions to the virtual display.

Format:

    status = vms_smg.put_chars_multi (display_id, text,         \
                    [start_row], [start_column], [flags],       \
                    [rendition_string], [rendition_complement], \
                    [character_set])
Returns:
status
Condition code as returned from SMG$PUT_CHARS_MULTI. Either SS$_NORMAL or SMG$_WILUSERMS are returned here - all other codes produce a Python exception.
Arguments:
display_id
Identifier of the virtual display in which to put the text.
text
Characters to be written to the virtual display.
start_row
Row number at which to put the characters. If omitted, the position of the current virtual cursor is used.
start_column
Column number at which to put the characters. If omitted, the position of the current virtual cursor is used.
flags
Bit mask that specifies the action to take before the specified text is output. Values like SMG_M_ERASE_TO_EOL are in module 'vms_smgdef'.
rendition_string
Optional bit mask string that controls the video attributes. Each attribute set causes the corresponding attribute to be set for the corresponding byte in the text string in the display. Bit mask values like SMG_M_BOLD are in module 'vms_smgdef'.
rendition_complement
Optional bit mask string that controls the video attributes. There are no symbolic names available - please see the OpenVMS documentation for details.
character_set
The default character set for all text. Constants like SMG_C_ASCII are in module 'vms_smgdef'.
Examples:
>>> import vms_smg
>>> import vms_smgdef

>>> # create a new DECwindows terminal using SMG
>>> status, pasteboard_id, number_of_pasteboard_rows, \
... number_of_pasteboard_columns, type_of_terminal,   \
... device_name = vms_smg.create_pasteboard           \
...   (None, vms_smgdef.SMG_M_WORKSTATION)
>>>

>>> # create virtual display
>>> status, vtdpy1 = vms_smg.create_virtual_display \
...         (5, 10, vms_smgdef.SMG_M_BORDER, None, None)
>>>

>>> # paste virtual display
>>> status = vms_smg.paste_virtual_display \
...          (vtdpy1, pasteboard_id, 3, 5, None)
>>>

>>> # write to virtual display
>>> status = vms_smg.put_chars_multi (vtdpy1, 'VTDPY1', 1, 1)
>>>

>>> # write to virtual display - graphics
>>> status = vms_smg.put_chars_multi (vtdpy1, 'qnqxq', 2, 2, 0, \
...        None, None, vms_smgdef.SMG_C_SPEC_GRAPHICS)
>>>

>>> rendition_string = chr(vms_smgdef.SMG_M_BOLD)    + \
...                    chr(vms_smgdef.SMG_M_REVERSE) + \
...                    chr(vms_smgdef.SMG_M_UNDERLINE) 
>>> # caution - these are control characters that can screw up
>>> #           a terminal's setting! - use repr() for inspection
>>> print repr (rendition_string)
'\001\002\010'
>>>
>>> status = vms_smg.put_chars_multi (vtdpy1, 'bru', 4, 1, 0, \
...        rendition_string, None, vms_smgdef.SMG_C_ASCII)
>>>

Screen layout, file: VMS_SMG_036.JPG

(picture VMS_SMG_036.JPG)


(go to: table of contents, index, list of vms_smg, prev: PUT_CHARS_HIGHWIDE, next: PUT_CHARS_WIDE)

10-SEP-2000 ZE.