DESCRIPTION: This module tests the bundled entries and other workstation facilities for text. These entries control the appearance of text when they are under bundled (as opposed to individual) control. SEMANTIC REQUIREMENTS: *** *** *** text index inquiry *** *** ***#F 303
SR1. If current element is text index then <inquire current element type and size> returns the element type as text index and the appropriate size.
#F 304
SR2. If current element is text index then <inquire current element content> returns the appropriate data for text index.
*** *** *** *** Text index *** *** *** ***#F 27
SR3. Upon traversal of a "text" or "text 3" element, the current text index in the PTSL is bound to the resulting primitive.
#F 27
SR4. <Set text index> creates a "set text index" element (in the open structure), whose associated value is taken from the function's parameter.
#F 27
SR5. Upon traversal of a "set text index" element, the current text index entry in the PHIGS traversal state list (PTSL) is set to the element's associated value.
#F 27
SR6. When a text primitive is displayed, if its bound text index is defined on the workstation, then the indicated bundle is the source for the bundled aspects of that primitive.
#F 27
SR7. When a text primitive is displayed, if its bound text index is undefined on the workstation, then bundle number 1 in the text bundle table is the source for the bundled aspects of that primitive.
*** *** *** Text index: network traversal *** *** ***#F
SR8. At the start of a top-level traversal of a structure network (not a sub-traversal caused by execute structure), the current text index of the PTSL is set to 1.
#F 113
SR9. As part of the PTSL, the current text index is saved (but not changed) by execute structure and then, upon completion of the sub-traversal of the invoked network, restored to the saved value.
*** *** *** Text representation *** *** ***#F 65
SR10. <Set text representation> causes an entry to be defined.
#F 65
SR11. <Set text representation> sets the text bundle's text font, text precision, character expansion factor, character spacing, and text colour index.
#F 226
SR12. <Inquire list of text indices> returns the list of defined text indices.
#F 226 227
SR13. <Inquire text representation> works for all defined entries.
#F 227
SR14. <Inquire text representation> returns the bundle's text font, text precision, character expansion factor, character spacing, and text colour index as set, when type of returned values specified as SET.
#F 227
SR15. <Inquire text representation> returns the bundle's text font, text precision, character expansion factor, character spacing, and text colour index as realized, when type of returned values specified as REALIZED.
#F 226 227
SR16. <Inquire text representation> returns the representation for bundle number 1, if type of returned values is REALIZED, and bundle index is undefined.
*** *** *** Maximum Size of Bundle Table *** *** ***#F 285
SR17. <Inquire workstation state table lengths> returns the maximum size of text bundle table.
#F 65 285
SR18. There are at least 20 settable entries available in the text bundle table.
*** *** *** Predefined Bundle Facilities *** *** ***#F 266
SR19. <Inquire text facilities> returns the number of predefined text bundle entries.
#F 267
SR20. <Inquire predefined text representation> returns the font, precision, character expansion factor, character spacing, and text color index for a predefined text bundle.
#F 266 267
SR21. All workstation types have at least 6 predefined text bundles.
#F 267
SR22. No two of the first 6 predefined text bundles have identical sets of attributes.
#F 267
SR23. The n predefined text bundles in the Workstation Description Table (WDT) are indexed as 1-n.
#F 226 227 267 3
SR24. Immediately after <open workstation>, for each WDT predefined text entry there exists a Workstation State List (WSL) text entry with the same attributes, including the same text index.
#F 226 227 266 3
SR25. Immediately after <open workstation>, the text bundle table contains nothing but the entries initialized from the WDT predefined text bundle table.
*** *** *** Validity of Predefined Bundles *** *** ***#F 266 267
SR26. The text font and precision pair of every predefined text bundle is among those available for that workstation type.
#F 266 267
SR27. If a predefined text bundle specifies text precision of STRING or CHAR, then its character expansion factor is among those explicitly available for that workstation type.
#F 227 267
SR28. Each predefined text bundle has a realizable value for character spacing, given its text precision.
#F 267 277
SR29. Each predefined text bundle has a color index within range of the predefined color indices.
*** *** *** Font Precision Pairs Support *** *** ***#F 266
SR30. The list of text font and precision pairs returned by <inquire text facilities> contains font 1 and font 2.
#F 266
SR31. The list of text font and precision pairs contains STROKE precision for font 1 and font 2.
#F 65 266
SR32. Every workstation directly supports at least one STRING precision font.
#F 65 266
SR33. Every workstation directly supports at least one CHAR precision font.
#F 65 227 266 267
SR34. The valid values for text precision are: STRING, CHAR, or STROKE.
#F 65 227 266
SR35. All text font precision pairs in the list of text font and precision pairs are valid and realizable for the workstation.
#F 65 266
SR36. If a font is available at a given precision, it is also available at all lower precisions.
#F 266
SR37. The highest precision available for a font is always reported in the list of text font and precision pairs.
#F 27 62 65
SR38. When a text primitive is displayed, if its text font ASF is bundled, then its text font aspect is taken from the text bundle determined by the text index.
#F 27 62 65
SR39. When a text primitive is displayed, if its text precision ASF is bundled, then its requested text precision is taken from the text bundle determined by the text index.
#F 65 266
SR40. When a text primitive is displayed, then the appearance of the text font agrees with the implementor documentation and, if the text font is greater than 2, with the ISO register.
#F
SR41. Text fonts 1 and 2 both contain all the ASCII characters, i.e. those defined within ANSI X3.4-1986.
#F
SR42. Text fonts 1 and 2 are visually distinguishable.
#F
SR43. For all text fonts, a character body in TLC, before application of character up vector, is a rectangle generally surrounding the character, aligned such that the top, cap, half, base, and bottom lines are all parallel to the TLC x-axis and the left, centre, and right lines are all parallel to the TLC y-axis.
#F
SR44. All text fonts are either monospaced or proportionately spaced. All character bodies within a monospaced font have the same font nominal height and the same font nominal width. All character bodies within a proportionately spaced font have the same font nominal height.
#F
SR45. Text font 1 is monospaced.
#F
SR46. If a requested character in a text primitive is not available within the font, an implementation dependent representation is generated to so indicate.
#F 65 227 266
SR47. A valid text precision (one that may be set by <set text representation>, together with the specified text font) is realized as itself or some higher precision.
#F
SR48. For text precision = STRING, the text string as a whole is displayed with the appropriate text font and the nearest DC character expansion factor available on the workstation, based on the first character in the text string.
#F
SR49. For text precision = CHAR, each character of the text is displayed with the requested text font and the nearest DC character expansion factor available on the workstation. Character spacing and text alignment aspects are applied exactly.
#F
SR50. For text precision = STROKE, text is displayed with all text aspects applied exactly.
*** *** Character Expansion Factor Support *** ***#F 266
SR51. <Inquire text facilities> describes the realizable character expansion factors for a specified workstation type, via the number of available character expansion factors, minimum character expansion factor and maximum character expansion factor.
#F 266
SR52. The minimum character expansion factor and maximum character expansion factor are both positive.
#F 65 266
SR53. All workstation types support at least one character expansion factor for STRING and CHAR precisions.
#F 266
SR54. The range of character expansion factors returned by <Inquire text facilities> is for font 1.
#F 65 227 266
SR55. The workstation supports a continuous range of character expansion factors for CHAR and STRING precision, if the number of available character expansion factors is 0.
#F 65
SR56. Any character expansion factor, whether or not realized exactly (by the workstation), may be specified for a text bundle when invoking <set text representation>.
#F 27 62 65
SR57. When a text primitive is displayed, if its character expansion factor ASF is bundled, then its TLC character expansion factor is taken from the text bundle determined by the text index.
#F 269
SR58. The magnitude of the TLC character expansion factor specifies the amount by which the font nominal width/height ratio of individual TLC character bodies is multiplied to yield the actual TLC width/height ratio.
#F 266
SR59. When a text primitive is displayed, then the actual DC character expansion factor used when displaying the text is the nearest available to the requested DC character expansion factor resulting from its TLC character expansion factor (after undergoing modelling, viewing and workstation transformations). The requested DC character expansion factor equals the requested DC width to height ratio times the character's font nominal height to width ratio.
*** *** *** Character Spacing Support *** *** ***#F 65
SR60. Any character spacing value, whether or not realized exactly (by the workstation), may be specified for a text bundle when invoking <set text representation>.
#F 27 62 65
SR61. When a text primitive is displayed, if its character spacing ASF is bundled, then its requested character spacing is taken from the text bundle determined by the text index.
#F 269
SR62. Character spacing specifies the TLC distance (positive) or overlap (negative) between adjacent character bodies, expressed in units of the font nominal character height.
*** *** *** Text Color Index Support *** *** ***#F 65
SR63. Any non-negative text color index, whether or not defined for that workstation, may be specified for a text bundle when invoking <set text representation>.
#F 27 62 65
SR64. When a text primitive is displayed, if its text colour index ASF is bundled, then its requested text colour index is taken from the text bundle determined by the text index.
#F 227 235
SR65. When text is displayed, if its requested text colour index is defined on the workstation, then the text colour index is realized as itself.
#F 227 235
SR66. When text is displayed, if its requested text colour index is not defined on the workstation, then the text colour index is realized as number 1.
LOCAL DICTIONARY:
Functions --- 003: popwk <open workstation> 027: pstxi <set text index> 062: psiasf <set individual asf> 065: pstxr <set text representation> 113: pexst <execute structure> 226: pqetxi <inquire list of text indices> 227: pqtxr <inquire text representation> 235: pqeci <inquire list of colour indices> 266: pqtxf <inquire text facilities> 267: pqptxr <inquire predefined text representation> 269: pqtxx <inquire text extent> 277: pqcf <inquire colour facilities> 285: pqwksl <inquire workstation state table lengths> 303: pqcets <inquire current element type and size> 304: pqceco <inquire current element content> Data Structures --- 2 ... phigs_description_table 2.7 ... list_of_available_character_sets 2.12 ... default_text_attributes 2.12.1 ... default_text_index 3 ... phigs_traversal_state_list 3.3 ... current_text_attributes 3.3.1 ... current_text_index 3.3.7 ... current_text_font_asf 3.3.8 ... current_text_precision_asf 3.3.9 ... current_character_expansion_factor_asf 3.3.10 ... current_character_spacing_asf 3.3.11 ... current_text_colour_index_asf 5 ... workstation_state_list 5.11 ... text_entry 5.11.1 ... number_of_text_bundle_table_entries 5.11.2 ... text_bundle_table 5.11.2.1 ... text_index 5.11.2.2 ... text_font 5.11.2.3 ... text_precision 5.11.2.4 ... character_expansion_factor 5.11.2.5 ... character_spacing 5.11.2.6 ... text_colour_index 5.15 ... colour_entry 5.15.3 ... colour_table 6 ... workstation_description_table 6.12 ... text_entry 6.12.1 ... text_facilities 6.12.1.1 ... number_of_text_font_and_precision_pairs 6.12.1.2 ... list_of_text_font_and_precision_pairs 6.12.1.2.1 ... text_font_and_precision_pair 6.12.1.6 ... number_of_available_character_expansion_factors 6.12.1.7 ... minimum_character_expansion_factor 6.12.1.8 ... maximum_character_expansion_factor 6.12.1.9 ... number_of_predefined_text_indices 6.12.2 ... predefined_text_bundle_table 6.12.2.1 ... text_font 6.12.2.2 ... text_precision 6.12.2.3 ... character_expansion_factor 6.12.2.4 ... character_spacing 6.12.2.5 ... text_colour_index 6.17 ... colour_entry 6.17.2 ... colour_facilities 6.17.2.4 ... number_of_predefined_colour_indices 6.21 ... maximum_table_lengths 6.21.3 ... maximum_number_of_text_bundle_table_entries 7 ... structure_state_list 7.3 ... list_of_structure_elements 7.3.1 ... graphical_primitives 7.3.1.5 ... text_3 7.3.1.6 ... text 7.3.2 ... primitive_attributes 7.3.2.1 ... bundle_index_attributes 7.3.2.1.3 ... text_index LOCAL SUBROUTINES: DISTXB selects SAMP predefined bundles at random from the text bundle table which are distinct in all their attributes. If there are not SAMP completely distinct bundles, DISTXB tries to maximize the number of different attributes. DRWTXT draws a set of text primitives where the actual texts are drawn using the specified bundle values, and a set of expected text primitives are drawn using the attribute values returned by <inquire predefined text representation>. It draws the expected text primitive incorrectly at the specified position.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.
You may inspect either the design or code for this program.