[comp.windows.x] Proposed Standard X Window Properties

ellis@EDDIE.MIT.EDU@siemens.UUCP (02/25/87)

                     Standard X Window Properties
                        which should be set by
                            X Applications


                             Ellis Cohen
                             Mark Biggers
                             Joe Camaratta

                   Siemens RTL Tiled Window Project

              Siemens Research & Technology Laboratories
                         105 College Road East
                        Princeton NJ 08540-6668

                       ...!siemens!ellis (uucp)
                 ellis@siemens.siemens-rtl.com (csnet)
                  Ellis.Cohen@a.gp.cs.cmu.edu (arpa)

                           25 February 1987


X  Applications  may set X Window properties which may be examined by a
window manager.

In this note, we list what we believe are  standard  window  properties
which  can  or  should  be set by every application and the reasons for
each.

A separate note, "The Role of a Window Manager  for  X"  provides  more
detailed justifications for these properties.

This  list  is  based  on our experience building the Siemens RTL Tiled
Window Manager which runs under SunView and is now being ported to X.



1. Identification

This list of strings are used for identifying a window to the user, for
setting  default  properties  from  a  profile,  and for seting initial
locations and properties from a saved layout file.

   1. WindowClass
      Type: STRING8

          Meaning: The "class" of a window -- used for setting
          default  window  properties from a profile.  Classes
          could be emacs, dbx, clock, etc.

   2. WindowInfo
      Type: STRING8

          Meaning: Information about the  application  or  its
          current  state  which  is  optionally  placed in the
          header of an open window, its icon, and in the  menu
          of closed windows.

   3. Command
      Type: STRING8

          Meaning: The command used to start the application.

   4. Identification
      Type: STRING8

          Meaning:  A string which is useful in distinguishing
          two instances of the same  application.    Saved  in
          configuration  files and used to associate the right
          set  of  window  properties  with  the   appropriate
          instance  of  an  application  upon  startup.   Also
          optionally appears in the window header and icon.

   5. Hostname
      Type: STRING8

          Meaning: Machine on which application is running  --
          this  OUGHT  to  be  available  directly  from the X
          server.



2. Dimensions

Window managers which control layout, especially those which tile,  may
make  use  of  constraints  on  window  dimensions.   These include the
minimum and maximum size of the window body, the  desired  size  (which
should be achieved if the space is not needed to satisfy other windows'
minimum sizes), and the minimum and maximum aspect ratios.  For windows
which  prefer  discrete  sizes, a list of reasonable heights and widths
may be specified, or a height or width increment may be provided.

   1. MinHeight
      Type: CARD16

          Meaning: Minimum height of the window body

   2. MinWidth
      Type: CARD16

          Meaning: Minimum width of the window body

   3. MaxHeight
      Type: CARD16

          Meaning: Maximum height of the window body

   4. MaxWidth
      Type: CARD16

          Meaning: Maximum width of the window body

   5. DesiredHeight
      Type: CARD16

          Meaning: Desired height of the window body

   6. DesiredWidth
      Type: CARD16

          Meaning: Desired width of the window body

   7. ReasonableHeights
      Type: LISTofCARD16

          Meaning: A list of reasonable heights in  increasing
          order.    Intermediate  heights  may  be  set by the
          window manager, but will generally be avoided.

   8. ReasonableWidths
      Type: LISTofCARD16

          Meaning: A list of reasonable widths  in  increasing
          order.  Intermediate widths may be set by the window
          manager, but will generally be avoided.

   9. IncrHeight
      Type: CARD16

          Meaning:  A  multiple  of  this  may  be  added   to
          MinHeight to get a list of reasonable heights.

  10. IncrWidth
      Type: CARD16

          Meaning: A multiple of this may be added to MinWidth
          to get a list of reasonable widths.

  11. MinAspect
      Type: CARD32

          Meaning: Minimum acceptable aspect ratio -- (2^16  *
          height)/width

  12. MaxAspect
      Type: CARD32

          Meaning:  Maximum acceptable aspect ratio -- (2^16 *
          height)/width



3. Icons

Icons may be drawn automatically by a window manager.  However, we  can
allow applications to handle the drawing of icons in two ways:

   - Either  the  application can provide a list of PIXMAPs (which
     can be updated by the application if necessary) and an  index
     which  is  used  to  select  one  of  the PIXMAPs as the icon
     contents.
   - Or, it can draw the icon contents directly into a  window  --
     this can either be the same as the main window or a different
     window.

   1. IconPixmaps
      Type: LISTofPIXMAP

          Meaning: A list  of  PIXMAPs  to  be  used  as  icon
          contents.

   2. IconPixmapIndex
      Type: CARD16

          Meaning:  Used  to select the k'th IconPixmap as the
          icon contents.  A value of  zero  tells  the  window
          manager  to  produce a default icon instead of using
          one of the PIXMAPs.

          If there are n IconPixmaps, then a value of  i*(n+1)
          +  k, uses the k'th IconPixmap, but highlights it in
          the i'th way.  An i of 1 reverses the icon.    Other
          i's are to be determined.

   3. IconWindow
      Type: WINDOW

          Meaning: The id of a window in which the contents of
          the icon will be drawn by the application.   If  the
          id  of  the  IconWindow is the same as the window to
          which it is attached, then the same window  will  be
          used  for  drawing  when  the window is open and for
          drawing the contents of the icon.



4. Dialogue Windows

Some window managers may wish to manage dialogue windows in  connection
with the parent window over which it is popped up.

   1. DialogueParent
      Type: WINDOW

          Meaning:  The id of the parent application window of
          this popup/dialogue window.