home *** CD-ROM | disk | FTP | other *** search
/ IRIX Base Documentation 2001 May / SGI IRIX Base Documentation 2001 May.iso / usr / share / catman / p_man / cat5 / WML.z / WML
Encoding:
Text File  |  2001-04-17  |  27.0 KB  |  595 lines

  1.  
  2.  
  3.  
  4.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           _W_M_L - The widget meta-language file format for creating uil
  10.           compilers
  11.  
  12.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  13.           The widget meta-language facility (WML) is used to generate
  14.           the components of the user interface language (UIL) compiler
  15.           that can change depending on the widget set. Using WML you
  16.           can add support in UIL for new widgets to the Motif widget
  17.           set or for a totally new widget set.
  18.  
  19.         FFFFiiiilllleeee
  20.           WML files are ASCII files that you can modify with any
  21.           standard text editor. They are accessed in the ttttoooooooollllssss////wwwwmmmmllll
  22.           directory by WML.  By convention WML files have the suffix
  23.           ....wwwwmmmmllll.  The Motif widget set is described in the mmmmoooottttiiiiffff....wwwwmmmmllll
  24.           file.  This is also the default WML file when using the WML
  25.           facility.
  26.  
  27.           When adding new widgets or changing widget characteristics,
  28.           you should start with a copy of the mmmmoooottttiiiiffff....wwwwmmmmllll file.  If you
  29.           are creating a new widget set for use with UIL, you should
  30.           start from scratch.  In either case the mmmmoooottttiiiiffff....wwwwmmmmllllfile is a
  31.           good example of WML syntax, and you should familiarize
  32.           yourself with it before writing your own WML file.
  33.  
  34.           WML files have a simple syntax, similar in structure to UIL.
  35.           It is made up of the following elements:
  36.  
  37.              +o  Comments
  38.  
  39.              +o  Data Type Definitions
  40.  
  41.              +o  Character Set Definitions
  42.  
  43.              +o  Enumeration Set Definitions
  44.  
  45.              +o  Control List Definitions
  46.  
  47.              +o  Class Definitions
  48.  
  49.              +o  Child Definitions
  50.  
  51.              +o  Resource Definitions
  52.  
  53.           You can use space, tabs, or newlines anywhere in the syntax,
  54.           as long as you do not split up keywords or strings, except
  55.           that comments end at a newline.  The order of elements is
  56.           not important to the syntax.
  57.  
  58.           This description uses the following additional conventions
  59.           to describe the syntax of the widget meta-language:
  60.  
  61.  
  62.  
  63.      Page 1                                           (printed 4/6/01)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  71.  
  72.  
  73.  
  74.           [  ]      Indicates optional elements.
  75.  
  76.           ...       Indicates where an element of syntax can be
  77.                     repeated.
  78.  
  79.           |         Indicates a choice among multiple items.
  80.  
  81.         CCCCoooommmmmmmmeeeennnnttttssss
  82.           You can include comments in the WML file.  Comments have the
  83.           following syntax:
  84.  
  85.           [any.element]!any.comment
  86.  
  87.           Comments begin with an exclamation point and extend to the
  88.           end of the line. A comment can begin on a line by itself or
  89.           follow any part of another element. A comment does not
  90.           change the meaning of any other element.  For example:
  91.  
  92.           !This is a comment
  93.           !  that spans two lines.
  94.           DataType    !This is a comment following code.
  95.  
  96.         DDDDaaaattttaaaa TTTTyyyyppppeeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  97.           Data type definitions register all the resource data types
  98.           used in the file. You must register all the data types used
  99.           in your WML file.  Data type definitions have the following
  100.           syntax:
  101.  
  102.           DataType
  103.                any.datatype [{ InternalLiteral = internal.name |
  104.                     DocName = "_s_t_r_i_n_g"; [...]}];
  105.                [...]
  106.  
  107.           A data type definition begins with the keyword DDDDaaaattttaaaaTTTTyyyyppppeeee.
  108.           Following the DDDDaaaattttaaaaTTTTyyyyppppeeee keyword is a list of data types that
  109.           can be further modified with
  110.  
  111.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  112.                     This forces the value of the internal symbol table
  113.                     literal definition of the data type name. This
  114.                     modifier is only used to get around symbol table
  115.                     definitions hard coded into the UIL compiler.  It
  116.                     should rarely be used.
  117.  
  118.           DDDDooooccccNNNNaaaammmmeeee   This gives an arbitrary string for use in the
  119.                     documentation.  This string is meant to supply a
  120.                     different name for the data type for use in the
  121.                     documentation, or a single name for the data type
  122.                     if the data type has aliases.
  123.  
  124.           For example:
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                           (printed 4/6/01)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  137.  
  138.  
  139.  
  140.           DataType OddNumber {DocName="OddNumber";};
  141.                    NewString;
  142.  
  143.         CCCChhhhaaaarrrraaaacccctttteeeerrrr SSSSeeeetttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  144.           Character set definitions register the Motif Toolkit name
  145.           and other information for the character set names used in
  146.           UIL.  Character set definitions have the following syntax:
  147.  
  148.           CharacterSet
  149.                any.character.set
  150.                     { [ FontListElementTag | XmStringCharsetName ] = "_s_t_r_i_n_g";
  151.                          [ Alias = "_s_t_r_i_n_g" ...; |
  152.                          Direction = [ LeftToRight | RightToLeft ]; |
  153.                          ParseDirection = [ LeftToRight | RightToLeft ]; |
  154.                          CharacterSize = [ OneByte | TwoByte ]; ]
  155.                          [ ... ] };
  156.                [ ... ]
  157.  
  158.           A character set definition begins with the keyword
  159.           CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSeeeetttt.  Following the CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSeeeetttt keyword is a list
  160.           of character sets that can be further modified with
  161.  
  162.           FFFFoooonnnnttttLLLLiiiissssttttEEEElllleeeemmmmeeeennnnttttTTTTaaaagggg | _X_m_S_t_r_i_n_g_C_h_a_r_s_e_t_N_a_m_e
  163.                     Specifies the name of the character set, which
  164.                     will become the character set component of a
  165.                     compound string segment created using this
  166.                     character set.  This modifier is required.
  167.  
  168.           AAAAlllliiiiaaaassss     Specifies one or more aliases for the character
  169.                     set name.  Each alias can be used within UIL to
  170.                     refer to the same character set.
  171.  
  172.           DDDDiiiirrrreeeeccccttttiiiioooonnnn Specifies the direction of a compound string
  173.                     segment created using this character set.  The
  174.                     default is LLLLeeeeffffttttTTTTooooRRRRiiiigggghhhhtttt.
  175.  
  176.           PPPPaaaarrrrsssseeeeDDDDiiiirrrreeeeccccttttiiiioooonnnn
  177.                     Specifies the direction in which an input string
  178.                     is parsed when a compound string segment is
  179.                     created using this character set.  The default is
  180.                     whatever DDDDiiiirrrreeeeccccttttiiiioooonnnn is specified.
  181.  
  182.           CCCChhhhaaaarrrraaaacccctttteeeerrrrSSSSiiiizzzzeeee
  183.                     Specifies the number of bytes in each character of
  184.                     a compound string segment created using this
  185.                     character set.  The default is OOOOnnnneeeeBBBByyyytttteeee.
  186.  
  187.           For example:
  188.  
  189.           CharacterSet
  190.             iso_latin1
  191.               { XmStringCharsetName = "ISO8859-1";
  192.  
  193.  
  194.  
  195.      Page 3                                           (printed 4/6/01)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  203.  
  204.  
  205.  
  206.                 Alias = "ISOLatin1"; };
  207.             iso_hebrew_lr
  208.               { XmStringCharsetName = "ISO8859-8";
  209.                 Alias = "iso_latin8_lr";
  210.                 Direction = RightToLeft;
  211.                 ParseDirection = LeftToRight; };
  212.             ksc_korean
  213.               { XmStringCharsetName = "KSC5601.1987-0";
  214.                 CharacterSize = TwoByte; };
  215.  
  216.         EEEEnnnnuuuummmmeeeerrrraaaattttiiiioooonnnn SSSSeeeetttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  217.           Enumeration set definitions register the named constants
  218.           used in the Motif Toolkit to specify some resource values.
  219.           Enumeration set definitions have the following syntax:
  220.  
  221.           EnumerationSet
  222.                resource.name: resource.type
  223.                     { enum.value.name; [ ... ] };
  224.  
  225.           An enumeration set definition begins with the keyword
  226.           EEEEnnnnuuuummmmeeeerrrraaaattttiiiioooonnnnSSSSeeeetttt.  For each enumeration set defined, the name
  227.           and type of the resource are listed.  The resource name is
  228.           the Motif Toolkit resource name, with the beginning XXXXmmmmNNNN
  229.           removed and with the initial letter capitalized.  For
  230.           example, the name of the Motif Toolkit resource
  231.           XXXXmmmmNNNNrrrroooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee is RRRRoooowwwwCCCCoooolllluuuummmmnnnnTTTTyyyyppppeeee.  The resource type is the
  232.           data type for the resource; for most resources, this is
  233.           _i_n_t_e_g_e_r.  Following the resource name and type is a list of
  234.           names of enumeration values that can be used as settings for
  235.           the resource.  These names are the same as those in the
  236.           Motif Toolkit.
  237.  
  238.           For example:
  239.  
  240.           EnumerationSet
  241.             RowColumnType: integer
  242.               { XmWORK_AREA; XmMENU_BAR; XmMENU_POPUP;
  243.                 XmMENU_PULLDOWN; XmMENU_OPTION; };
  244.  
  245.           Enumeration sets also support Boolean values.
  246.  
  247.         CCCCoooonnnnttttrrrroooollll LLLLiiiisssstttt DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  248.           Control list definitions assign a name to groups of
  249.           controls.  You can use these control lists later in class
  250.           definitions to simplify the structure of your WML file.
  251.           Control list definitions have the following syntax:
  252.  
  253.           ControlList
  254.                any.control.list [{ any.control; [...]}];
  255.  
  256.           A control list definition starts with the CCCCoooonnnnttttrrrroooollllLLLLiiiisssstttt
  257.           keyword.  Following the CCCCoooonnnnttttrrrroooollllLLLLiiiisssstttt keyword are any number
  258.  
  259.  
  260.  
  261.      Page 4                                           (printed 4/6/01)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  269.  
  270.  
  271.  
  272.           of control list definitions. Control list definitions are
  273.           made up of a control list name followed by the set of
  274.           controls it represents. For example:
  275.  
  276.           ControlList
  277.                   Buttons {PushButton;
  278.                            RadioButton;
  279.                            CascadeButton;
  280.                            NewCascadebutton;};
  281.  
  282.           Each control specified in the control list must be defined
  283.           as a class in the file.
  284.  
  285.         CCCCllllaaaassssssss DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  286.           Class definitions describe a particular widget class
  287.           including its position in the class hierarchy, toolkit
  288.           convenience function, resources, and controls. There should
  289.           be one class definition for each widget or gadget in the
  290.           widget set you want to support in UIL.  Class definitions
  291.           have the following syntax:
  292.  
  293.           Class class.name: MetaClass | Widget | Gadget
  294.                [{[
  295.                SuperClass = class.name; |
  296.                ParentClass = parent.class.name; |
  297.                InternalLiteral = internal.name; |
  298.                Alias = _a_l_i_a_s; |
  299.                ConvenienceFunction = convenience.function; |
  300.                WidgetClass = widget.class; |
  301.                DocName = "_s_t_r_i_n_g"; |
  302.                DialogClass = True | False; |
  303.                Resources { any.resource.name [{
  304.                          Default = new.default.value; |
  305.                          Exclude = True |
  306.                          False;
  307.                          [...]} ];
  308.                     [...]}; |
  309.                Controls { any.control.name; [...]};
  310.                Children { any.child.name; [...] };
  311.                [...]
  312.                ]}];
  313.  
  314.           Class definitions start with the CCCCllllaaaassssssss keyword.  For each
  315.           class defined, the name of the class and whether the class
  316.           is a metaclass, widget, or gadget is listed.  Each class
  317.           definition can be further modified with the keywords
  318.           described in the following list.
  319.  
  320.           SSSSuuuuppppeeeerrrrCCCCllllaaaassssssss
  321.                     This indicates the name of the parent class.  Only
  322.                     the root of the hierarchy does not specify a
  323.                     SuperClass.
  324.  
  325.  
  326.  
  327.      Page 5                                           (printed 4/6/01)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  335.  
  336.  
  337.  
  338.           PPPPaaaarrrreeeennnnttttCCCCllllaaaassssssss
  339.                     This indicates the name of the widget's
  340.                     automatically created parent class if one exists.
  341.                     This allows resources for that automatically
  342.                     created class to be used in instances of this
  343.                     class.  For example, _X_m_B_u_l_l_e_t_i_n_B_o_a_r_d_D_i_a_l_o_g creates
  344.                     both an XXXXmmmmBBBBuuuulllllllleeeettttiiiinnnnBBBBooooaaaarrrrdddd and an XXXXmmmmDDDDiiiiaaaallllooooggggSSSShhhheeeellllllll. To
  345.                     access the resources of the XXXXmmmmDDDDiiiiaaaallllooooggggSSSShhhheeeellllllll parent
  346.                     class it must be specified here.
  347.  
  348.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  349.                     This forces the value of the internal symbol table
  350.                     literal definition of the class name. This
  351.                     modifier is only used to get around symbol table
  352.                     definitions hard coded into the UIL compiler.  It
  353.                     should rarely be used.
  354.  
  355.           AAAAlllliiiiaaaassss     This indicates alternate names for the class for
  356.                     use in a UIL specification.
  357.  
  358.           CCCCoooonnnnvvvveeeennnniiiieeeennnncccceeeeFFFFuuuunnnnccccttttiiiioooonnnn
  359.                     This indicates the name of the creation
  360.                     convenience function for this class. All widget
  361.                     and gadget classes must have a
  362.                     CCCCoooonnnnvvvveeeennnniiiieeeennnncccceeeeFFFFuuuunnnnccccttttiiiioooonnnn....
  363.  
  364.           WWWWiiiiddddggggeeeettttCCCCllllaaaassssssss
  365.                     This indicates the associated widget class of
  366.                     gadget type classes.  Presently, nothing is done
  367.                     with this value.
  368.  
  369.           DDDDooooccccNNNNaaaammmmeeee   This defines an arbitrary string for use in the
  370.                     documentation.  Presently, nothing is done with
  371.                     this value.
  372.  
  373.           DDDDiiiiaaaallllooooggggCCCCllllaaaassssssss
  374.                     This indicates whether the class is a dialog
  375.                     class.  Presently, nothing is done with this
  376.                     value.
  377.  
  378.           RRRReeeessssoooouuuurrrrcccceeeessss This lists the resources of the widget class. This
  379.                     keyword can be further modified with
  380.  
  381.                     DDDDeeeeffffaaaauuuulllltttt   This specifies a new default value for
  382.                               this resource. Resource default values
  383.                               are usually set in the resource
  384.                               definition. If an inherited resource's
  385.                               default value is changed by the class,
  386.                               the new default value should be noted
  387.                               here.
  388.  
  389.                     EEEExxxxcccclllluuuuddddeeee   This specifies whether an inherited
  390.  
  391.  
  392.  
  393.      Page 6                                           (printed 4/6/01)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  401.  
  402.  
  403.  
  404.                               resource should be excluded from the
  405.                               resource list of the class. EEEExxxxcccclllluuuuddddeeee is
  406.                               False by default.
  407.  
  408.           CCCChhhhiiiillllddddrrrreeeennnn  This lists the names of the automatically created
  409.                     children of this class, so that those children can
  410.                     be accessed in the UIL file.
  411.  
  412.           CCCCoooonnnnttttrrrroooollllssss  This lists the controls that the widget class
  413.                     allows. The controls can be other classes or a
  414.                     control list from the control list definition.
  415.  
  416.           The following example uses the examples from the data type
  417.           definitions and control list definitions above.
  418.  
  419.           Class
  420.                TopLevelWidget: MetaClass
  421.                     {
  422.                     Resources
  423.                          {
  424.                          XtbNfirstResource;
  425.                          XtbNsecondResource;
  426.                          };
  427.                     };
  428.                NewWidget: Widget
  429.                     {
  430.                     SuperClass = TopLevelWidget;
  431.                     ConvenienceFunction =
  432.                         XtbCreateNewWidget;
  433.                     Resources
  434.                          {
  435.                          XtbNnewResource;
  436.                          XtbNfirstResource
  437.                             {Default="XtbNEW_VALUE";};
  438.                          XtbNsecondResource
  439.                             {Exclude=True;};
  440.                          };
  441.                     Controls
  442.                          {
  443.                          NewWidget;
  444.                          Buttons;
  445.                          };
  446.                     };
  447.  
  448.         CCCChhhhiiiilllldddd DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  449.           Child definitions register the classes of automatically
  450.           created children. Automatically created children are
  451.           referenced elsewhere in a uuuuiiiillll file using the CCCChhhhiiiillllddddrrrreeeennnn
  452.           keyword within a class definition.  Child definitions have
  453.           the following syntax:
  454.  
  455.           CCCChhhhiiiillllddddcccchhhhiiiilllldddd....nnnnaaaammmmeeee :::: ccccllllaaaassssssss....nnnnaaaammmmeeee;;;;[...]
  456.  
  457.  
  458.  
  459.      Page 7                                           (printed 4/6/01)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  467.  
  468.  
  469.  
  470.           Where cccchhhhiiiilllldddd....nnnnaaaammmmeeee is the name of the automatically created
  471.           child and ccccllllaaaassssssss....nnnnaaaammmmeeee is the name of the class of that child.
  472.  
  473.         RRRReeeessssoooouuuurrrrcccceeee DDDDeeeeffffiiiinnnniiiittttiiiioooonnnnssss
  474.           Resource definitions describe a particular resource
  475.           including its type, and default value.  There should be a
  476.           resource definition for each new resource referenced in the
  477.           class definitions.  Resource definitions have the following
  478.           syntax:
  479.  
  480.           Resource
  481.                resource.name: Argument | Reason | Constraint | SubResource
  482.                     [{[
  483.                     Type = _t_y_p_e;
  484.                     [ResourceLiteral = resource.literal; ]
  485.                     [InternalLiteral = internal.name; ]
  486.                     [Alias = _a_l_i_a_s; ]
  487.                     [Related = _r_e_l_a_t_e_d; ]
  488.                     [Default = _d_e_f_a_u_l_t; ]
  489.                     [DocName = doc.name; ]
  490.                     [...]}]
  491.                [...]
  492.  
  493.           Resource definitions start with the RRRReeeessssoooouuuurrrrcccceeee keyword.  For
  494.           each resource definition, the name of the resource and
  495.           whether the resource is an argument, reason, constraint or
  496.           subresource is listed.
  497.  
  498.           AAAArrrrgggguuuummmmeeeennnntttt  Indicates a standard resource
  499.  
  500.           RRRReeeeaaaassssoooonnnn    Indicates a callback resource
  501.  
  502.           CCCCoooonnnnssssttttrrrraaaaiiiinnnntttt
  503.                     Indicates a constraint resource
  504.  
  505.           SSSSuuuubbbbRRRReeeessssoooouuuurrrrcccceeee
  506.                     Presently, nothing is done with this value
  507.  
  508.           The resource definition can be further modified with the
  509.           following keywords:
  510.  
  511.           TTTTyyyyppppeeee      This indicates the data type of the resource. It
  512.                     must be listed in the data type definition.
  513.  
  514.           RRRReeeessssoooouuuurrrrcccceeeeLLLLiiiitttteeeerrrraaaallll
  515.                     This indicates the keyword used in the UIL file to
  516.                     reference the resource. In Motif, the resource
  517.                     name is the same as the RRRReeeessssoooouuuurrrrcccceeeeLLLLiiiitttteeeerrrraaaallll.
  518.  
  519.           IIIInnnntttteeeerrrrnnnnaaaallllLLLLiiiitttteeeerrrraaaallll
  520.                     This forces the value of the internal symbol table
  521.                     literal definition of the resource name. This
  522.  
  523.  
  524.  
  525.      Page 8                                           (printed 4/6/01)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))         UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV         WWWWMMMMLLLL((((ffffiiiilllleeee ffffoooorrrrmmmmaaaattttssss))))
  533.  
  534.  
  535.  
  536.                     modifier is only used to get around symbol table
  537.                     definitions hard coded into the UIL compiler.  It
  538.                     should rarely be used.
  539.  
  540.           AAAAlllliiiiaaaassss     This indicates alternate names for the resource
  541.                     for use in a UIL specification.
  542.  
  543.           RRRReeeellllaaaatttteeeedddd   This is a special purpose field that allows
  544.                     resources that act as a counter for the current
  545.                     resources to be related to the resource.  UIL
  546.                     automatically sets the value of this related
  547.                     resource to the number of items in the compiled
  548.                     instance of type rrrreeeessssoooouuuurrrrcccceeee....nnnnaaaammmmeeee.
  549.  
  550.           DDDDeeeeffffaaaauuuulllltttt   This indicates the default value of the resource.
  551.  
  552.           DDDDooooccccNNNNaaaammmmeeee   This defines an arbitrary string for use in the
  553.                     documentation.  Presently, nothing is done with
  554.                     this value.
  555.  
  556.           The following example uses the examples from the data type
  557.           definitions, control list definitions and class definitions
  558.           above.
  559.  
  560.           Resource
  561.                XtbNfirstResource: Argument
  562.                     { Type = OddNumber;
  563.                       Default = "XtbOLD_VALUE";};
  564.                XtbNsecondResource: Argument
  565.                     { Type = NewString;
  566.                       Default = "XtbNEW_STRING"; };
  567.                XtbNnewResource: Argument
  568.                     { Type = OddNumber;
  569.                       Default = "XtbODD_NUMBER"; };
  570.  
  571.  
  572.  
  573.  
  574.  
  575.  
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582.  
  583.  
  584.  
  585.  
  586.  
  587.  
  588.      Page 9                                           (printed 4/6/01)
  589.  
  590.  
  591.  
  592.  
  593.  
  594.  
  595.