*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->Tru64 Unix man pages -> WML (5X)              
Title
Content
Arch
Section
 

WML(5X)

Contents


NAME    [Toc]    [Back]

       WML  -  The  widget meta-language file format for creating
       uil compilers

DESCRIPTION    [Toc]    [Back]

       The widget meta-language facility (WML) is used to  generate
  the  components  of the user interface language (UIL)
       compiler that can change  depending  on  the  widget  set.
       Using  WML  you  can add support in UIL for new widgets to
       the 1/Motif widget set or for a totally new widget set.

FILE FORMAT    [Toc]    [Back]

       WML files are ASCII files that you  can  modify  with  any
       standard  text editor.  They are accessed in the tools/wml
       directory by WML. By convention WML files have the  suffix
       The  Motif  widget set is described in the motif.wml file.
       This is also the default  WML  file  when  using  the  WML
       facility.

       When  adding  new  widgets or changing widget characteristics,
 you should start with a copy of the motif.wml  file.
       If you are creating a new widget set for use with UIL, you
       should start from scratch. In either  case  the  motif.wml
       file  is  a  good  example  of  WML syntax, and you should
       familiarize yourself with it before writing your  own  WML
       file.

       WML  files  have  a simple syntax, similar in structure to
       UIL. It is made up of  the  following  elements:  Comments
       Data  Type  Definitions Character Set Definitions Enumeration
 Set Definitions Control List Definitions Class  Definitions
 Child Definitions Resource Definitions

       You  can use space, tabs, or newlines anywhere in the syntax,
 as long as you do not split up keywords  or  strings,
       except  that  comments end at a newline. The order of elements
 is not important to the syntax.

       This description uses the following additional conventions
       to  describe the syntax of the widget meta-language: Indicates
 optional elements.  Indicates where  an  element  of
       syntax can be repeated.  Indicates a choice among multiple
       items.

   Comments    [Toc]    [Back]
       You can include comments in the WML  file.  Comments  have
       the following syntax:

       [any.element]!any.comment

       Comments begin with an exclamation point and extend to the
       end of the line.  A comment can begin on a line by  itself
       or follow any part of another element.  A comment does not
       change the meaning of any other element. For example:

       !This is a comment !   that  spans  two  lines.   DataType
       !This is a comment following code.






   Data Type Definitions    [Toc]    [Back]
       Data type definitions register all the resource data types
       used in the file.  You must register all  the  data  types
       used in your WML file. Data type definitions have the following
 syntax:

       DataType
            any.datatype[{ InternalLiteral = internal.name |
                DocName = "string";[...]}];
            [...]

       A data type definition begins with the  keyword  DataType.
       Following  the  DataType  keyword  is a list of data types
       that can be further modified with: This forces  the  value
       of  the  internal  symbol  table literal definition of the
       data type name.  This modifier is only used to get  around
       symbol table definitions hard coded into the UIL compiler.
       It should rarely be used.  which gives an arbitrary string
       for  use  in  the  documentation.  This string is meant to
       supply a different name for the data type for use  in  the
       documentation,  or  a single name for the data type if the
       data type has aliases.

       For example:

       DataType OddNumber {DocName="OddNumber";};
                NewString;


   Character Set Definitions    [Toc]    [Back]
       Character set definitions register the Motif Toolkit  name
       and  other information for the character set names used in
       UIL. Character set definitions have the following syntax:

       CharacterSet
         any.character.set
             {[FontListElementTag       |        XmStringCharsetName]="string";

              [Alias = "string" ...; |
              Direction =[LeftToRight | RightToLeft]; |
              ParseDirection =[LeftToRight | RightToLeft]; |
              CharacterSize =[OneByte | TwoByte];]
              [...]};
         [...]

       A character set definition begins with the keyword CharacterSet.
 Following the CharacterSet keyword is  a  list  of
       character  sets  that can be further modified with: Specifies
 the name of the character set, which will become  the
       character  set component of a compound string segment created
 using this character set. This modifier is  required.
       Specifies  one or more aliases for the character set name.
       Each alias can be used within UIL to  refer  to  the  same
       character  set.   Specifies  the  direction  of a compound
       string segment  created  using  this  character  set.  The
       default  is LeftToRight.  Specifies the direction in which
       an input string is parsed when a compound  string  segment
       is  created using this character set. The default is whatever
 Direction is  specified.   Specifies  the  number  of
       bytes  in each character of a compound string segment created
 using this character set. The default is OneByte.

       For example:

       CharacterSet
         iso_latin1
           { XmStringCharsetName = "ISO8859-1";
             Alias = "ISOLatin1"; };
         iso_hebrew_lr
           { XmStringCharsetName = "ISO8859-8";
             Alias = "iso_latin8_lr";
             Direction = RightToLeft;
             ParseDirection = LeftToRight; };
         ksc_korean
           { XmStringCharsetName = "KSC5601.1987-0";
             CharacterSize = TwoByte; };


   Enumeration Set Definitions    [Toc]    [Back]
       Enumeration set definitions register the  named  constants
       used in the Motif Toolkit to specify some resource values.
       Enumeration set definitions have the following syntax:

       EnumerationSet
            resource.name : resource.type
                { enum.value.name ; [...] } ;

       An enumeration set definition begins with the keyword EnumerationSet.
  For  each  enumeration set defined, the name
       and type of the resource are listed. The resource name  is
       the  Motif  Toolkit  resource name, with the beginning XmN
       removed and with  the  initial  letter  capitalized.   For
       example,  the  name  of the Motif Toolkit resource XmNrowColumnType
 is RowColumnType. The resource type is the data
       type  for  the resource; for most resources, this is integer.
  Following the resource name and type is  a  list  of
       names  of  enumeration values that can be used as settings
       for the resource. These names are the same as those in the
       Motif Toolkit.

       For example:

       EnumerationSet
         RowColumnType: integer
           { XmWORK_AREA; XmMENU_BAR; XmMENU_POPUP;
             XmMENU_PULLDOWN; XmMENU_OPTION; };


   Control List Definitions    [Toc]    [Back]
       Control  list  definitions assign a name to groups of controls.
 You can use these control lists later in class definitions
  to simplify the structure of your WML file. Control
 list definitions have the following syntax:

       ControlList
            any.control.list[{any.control; [...]}];

       A control list definition starts with the ControlList keyword.
  Following the ControlList keyword are any number of
       control list definitions.  Control  list  definitions  are
       made up of a control list name followed by the set of controls
 it represents.  For example:

       ControlList
               Buttons {PushButton;
                        RadioButton;
                        CascadeButton;
                        NewCascadebutton;};

       Each control specified in the control list must be defined
       as a class in the file.

   Class Definitions    [Toc]    [Back]
       Class  definitions  describe  a  particular  widget  class
       including its position in  the  class  hierarchy,  toolkit
       convenience  function,  resources,  and  controls.   There
       should be one class definition for each widget  or  gadget
       in  the widget set you want to support in UIL. Class definitions
 have the following syntax:

       Class class.name : MetaClass | Widget | Gadget
           [{[
           SuperClass = class.name; |
           ParentClass = parent.class.name; |
           InternalLiteral = internal.name; |
           Alias = alias; |
           ConvenienceFunction = convenience.function; |
           WidgetClass = widget.class; |
           DocName = "string"; |
           DialogClass = True | False; |
           Resources { any.resource.name [{
                    Default = new.default.value; |
                    Exclude = True |
                    False;
                    [...]} ];
                [...]}; |
           Controls { any.control.name; [...] };
           Children { any.child.name; [...] };
           [...]
           ]}];

       Class definitions start with the Class keyword.  For  each
       class defined, the name of the class and whether the class
       is a metaclass, widget, or gadget is  listed.  Each  class
       definition can be further modified with the following keywords:
 This indicates the name of the parent  class.  Only
       the  root  of the hierarchy does not specify a SuperClass.
       This indicates the name of the widgets automatically  created
  parent  class  if one exists.  This allows resources
       for  that  automatically  created  class  to  be  used  in
       instances  of this class. For example, XmBulletinBoardDialog
 creates both an XmBulletinBoard and an  XmDialogShell.
       To  access the resources of the XmDialogShell parent class
       it must be specified here.  This forces the value  of  the
       internal  symbol  table  literal  definition  of the class
       name.  This modifier is only used  to  get  around  symbol
       table  definitions  hard  coded  into the UIL compiler. It
       should rarely be used.  This indicates alternate names for
       the  class for use in a UIL specification.  This indicates
       the name of the creation  convenience  function  for  this
       class.   All  widget and gadget classes must have a ConvenienceFunction.
   This  indicates  the  associated  widget
       class  of  gadget type classes. Presently, nothing is done
       with this value.  This defines an arbitrary string for use
       in  the  documentation.   Presently,  nothing is done with
       this value.  This indicates whether the class is a  dialog
       class.  Presently,  nothing is done with this value.  This
       lists the resources of the widget class.  This keyword can
       be  further  modified  with:  This specifies a new default
       value for this resource.  Resource default values are usually
  set  in  the  resource  definition.  If an inherited
       resource's default value is changed by the class, the  new
       default  value  should  be  noted  here.   This  specifies
       whether an inherited resource should be excluded from  the
       resource  list of the class.  Exclude is False by default.
       This lists the names of the automatically created children
       of  this  class, so that those children can be accessed in
       the UIL file.  This lists the  controls  that  the  widget
       class allows.  The controls can be other classes or a control
 list from the control list definition.

       The example below uses the examples  from  the  data  type
       definitions and control list definitions above.

       Class
            TopLevelWidget : MetaClass
                 {
                 Resources
                      {
                      XtbNfirstResource;
                      XtbNsecondResource;
                      };
                 };
            NewWidget : Widget
                 {
                 SuperClass = TopLevelWidget;
                 ConvenienceFunction =
                     XtbCreateNewWidget;
                 Resources
                      {
                      XtbNnewResource;
                      XtbNfirstResource
                         {Default="XtbNEW_VALUE";};
                      XtbNsecondResource
                         {Exclude=True;};
                      };
                 Controls
                      {
                      NewWidget;
                      Buttons;
                      };
                 };


   Child Definitions    [Toc]    [Back]
       Child  definitions  register  the classes of automatically
       created children.  Automatically created children are referenced
 elsewhere in a uil file using the Children keyword
       within a class definition. Child definitions have the following
 syntax:

       Child
            child.name : class.name;
            [...]

       The  child.name  argument is the name of the automatically
       created child and class.name is the name of the  class  of
       that child.

   Resource Definitions    [Toc]    [Back]
       Resource   definitions   describe  a  particular  resource
       including its type, and default value. There should  be  a
       resource  definition  for  each new resource referenced in
       the class definitions. Resource definitions have the  following
 syntax:

       Resource
            resource.name : Argument | Reason | Constraint
                        | SubResource
                [{[
                Type = type ; |
                ResourceLiteral = resource.literal ; |
                InternalLiteral = internal.name; |
                Alias =  alias ; |
                Related = related ; |
                Default = default ; |
                DocName = doc.name ; ]
                [...]}]
            [...]

       Resource definitions start with the Resource keyword.  For
       each resource definition, the name  of  the  resource  and
       whether  the  resource is an argument, reason, constraint,
       or subresource is listed.  Indicates a standard  resource.
       Indicates  a  callback  resource.   Indicates a constraint
       resource.  Presently, nothing is done with this value.

       The resource definition can be further modified  with  the
       following  keywords:  This  indicates the data type of the
       resource.  It must be listed in the data type  definition.
       This  indicates the keyword used in the UIL file to reference
 the resource.  In Motif, the  resource  name  is  the
       same  as  the  ResourceLiteral.  which forces the value of
       the  internal  symbol  table  literal  definition  of  the
       resource  name.   This modifier is only used to get around
       symbol table definitions hard coded into the UIL compiler.
       It  should rarely be used.  This indicates alternate names
       for the resource for use in a UIL specification.  This  is
       a  special purpose field that allows resources that act as
       a counter for the current resources to be related  to  the
       resource.   UIL  automatically  sets  the  value  of  this
       related resource to the number of items  in  the  compiled
       instance   of  type  resource.name.   This  indicates  the
       default value of the resource.  This defines an  arbitrary
       string  for  use in the documentation.  Presently, nothing
       is done with this value.

       The example below uses the examples  from  the  data  type
       definitions,  control  list  definitions and class definitions
 above.

       Resource
            XtbNfirstResource : Argument
                 { Type = OddNumber;
                   Default = "XtbOLD_VALUE";};
            XtbNsecondResource : Argument
                 { Type = NewString;
                   Default = "XtbNEW_STRING"; };
            XtbNnewResource : Argument
                 { Type = OddNumber;
                   Default = "XtbODD_NUMBER"; };




                                                          WML(5X)
[ Back ]
 Similar pages
Name OS Title
UIL Tru64 The user interface language file format
UIL HP-UX The user interface language file format
ffsinfo FreeBSD dump all meta information of an existing ufs file system
properties_free FreeBSD functions to allow creating simple property lists from ASCII file data
property_find FreeBSD functions to allow creating simple property lists from ASCII file data
properties_read FreeBSD functions to allow creating simple property lists from ASCII file data
property FreeBSD functions to allow creating simple property lists from ASCII file data
DxfToIv IRIX converts an Autodesk Data Exchange File format (.DXF) file to Open Inventor 2.0 format
o32 IRIX Describes the options for the o32 ABI for the MIPSpro compilers
setmetamode Linux define the keyboard meta key handling
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service