editres - a dynamic resource editor for X Toolkit applications


   editres [ -toolkitoption ... ]


   Editres accepts all of the standard X Toolkit command line options (see
   X(7)).  The order of the command line options is not important.


   Editres is a tool that allows users and application developers to  view
   the  full widget hierarchy of any X Toolkit application that speaks the
   Editres protocol.  In addition, editres will help  the  user  construct
   resource  specifications,  allow  the user to apply the resource to the
   application and view the results dynamically.  Once the user  is  happy
   with  a  resource specification editres will append the resource string
   to the user's X Resources file.


   Editres provides a window consisting of the following four areas:

   Menu Bar                 A set of  popup  menus  that  allow  you  full
                            access to editres's features.

   Panner                   The  panner  allows  a  more  intuitive way to
                            scroll the application tree display.

   Message Area             Displays information to  the  user  about  the
                            action that editres expects of her.

   Application Widget Tree  This area will be used to display the selected
                            application's widget tree.

   To begin an editres session select the Get Widget Tree menu  item  from
   the  command  menu.  This will change the pointer cursor to cross hair.
   You should now select the application you wish look at by  clicking  on
   any  of  its  windows.   If  this  application  understands the editres
   protocol then editres will display the application's widget tree in its
   tree  window.   If  the  application  does  not  understand the editres
   protocol editres will inform you of this fact in the message area after
   a few seconds delay.

   Once  you  have  a widget tree you may now select any of the other menu
   options. The effect of each of these is described below.


   Get Widget Tree
           Allows the user to click on any  application  that  speaks  the
           editres protocol and receive its widget tree.

   Refresh Current Widget Tree
           Editres  only knows about the widgets that exist at the present
           time.  Many applications create and destroy widgets on the fly.
           Selecting  this  menu  item  will  cause  editres  to  ask  the
           application to  resend  its  widget  tree,  thus  updating  its
           information to the new state of the application.

           For  example, xman only creates the widgets for its topbox when
           it starts up.  None of the widgets for the manual  page  window
           are  created  until the user actually clicks on the Manual Page
           button.  If you retrieved xman's widget  tree  before  the  the
           manual  page is active, you may wish to refresh the widget tree
           after the manual page has been displayed.  This will allow  you
           to also edit the manual page's resources.

   Dump Widget Tree to a File
           For  documenting  applications it is often useful to be able to
           dump the entire application widget tree to an ASCII file.  This
           file  can  then be included in the manual page.  When this menu
           item is selected a popup dialog is activated.  Type the name of
           the  file  in  this  dialog,  and either select okay, or type a
           carriage-return.  Editres will now dump the widget tree to this
           file.  To cancel the file dialog, select the cancel button.

   Show Resource Box
           This  command  will  popup  a  resource  box  for  the  current
           application.  This resource box  (described  in  detail  below)
           will  allow  the user to see exactly which resources can be set
           for the widget that is currently selected in  the  widget  tree
           display.  Only one widget may be currently selected; if greater
           or fewer are  selected  editres  will  refuse  to  pop  up  the
           resource box and put an error message in the Message Area.

   Set Resource
           This  command  will  popup  a  simple dialog box for setting an
           arbitrary resource on all selected widgets.  You must  type  in
           the  resource  name, as well as the value.  You can use the Tab
           key to switch between the  resource  name  field  the  resource
           value field.

   Quit    Exits editres.


   The  Tree  menu  contains  several commands that allow operations to be
   performed on the widget tree.

   Select Widget in Client
          This  menu  item  allows  you  to  select  any  widget  in   the
          application;  editres  will  then  highlight  the  corresponding
          element the  widget  tree  display.   Once  this  menu  item  is
          selected  the pointer cursor will again turn to a crosshair, and
          you must click any pointer button in the widget you wish to have
          displayed.   Since  some  widgets  are  fully  obscured by their
          children, it is not possible to get to every  widget  this  way,
          but  this  mechanism  does give very useful feedback between the
          elements in the widget tree and those in the actual application.

   Select All

   Unselect All

   Invert All
          These functions allow the user to select,  unselect,  or  invert
          all widgets in the widget tree.

   Select Children

   Select Parents
          These  functions select the immediate parent or children of each
          of the currently selected widgets.

   Select Descendants

   Select Ancestors
          These functions select all parents or children of  each  of  the
          currently selected widgets.  This is a recursive search.

   Show Widget Names

   Show Class Names

   Show Widget IDs

   Show Widget Windows
          When  the  tree widget is initially displayed the labels of each
          widget in the  tree  correspond  to  the  widget  names.   These
          functions  will cause the label of all widgets in the tree to be
          changed to show the class name, IDs, or window  associated  with
          each widget in the application.  The widget IDs, and windows are
          shown as hex numbers.

   In addition there are  keyboard  accelerators  for  each  of  the  Tree
   operations.   If  the  input  focus is over an individual widget in the
   tree, then that operation will only effect that widget.  If  the  input
   focus is in the Tree background it will have exactly the same effect as
   the corresponding menu item.

   The translation entries shown may be  applied  to  any  widget  in  the
   application.   If  that  widget  is a child of the Tree widget, then it
   will only affect that widget, otherwise it will have the same effect as
   the commands in the tree menu.

   Flash Active Widgets
          This  command  is  the  inverse  of  the Select Widget in Client
          command, it will show the user each  widget  that  is  currently
          selected  in  the  widget  tree,  by  flashing the corresponding
          widget in the application numFlashes (three by default) times in
          the flashColor.

          Key     Option                     Translation Entry
          space   Unselect                   Select(nothing)
          w       Select                     Select(widget)
          s       Select                     Select(all)
          i       Invert                     Select(invert)
          c       Select Children            Select(children)
          d       Select Descendants         Select(descendants)
          p       Select Parent              Select(parent)
          a       Select Ancestors           Select(ancestors)
          N       Show Widget Names          Relabel(name)
          C       Show Class Names           Relabel(class)
          I       Show Widget IDs            Relabel(id)
          W       Show Widget Windows        Relabel(window)
          T       Toggle Widget/Class Name   Relabel(toggle)

          Clicking  button  1  on  a widget adds it to the set of selected
          widgets.  Clicking button 2 on  a  widget  deselects  all  other
          widgets and then selects just that widget.  Clicking button 3 on
          a widget toggles its label between the  widget's  instance  name
          the widget's class name.


   The  resource box contains five different areas.  Each of the areas, as
   they appear on the screen, from top to bottom will be discussed.

   The Resource Line
          This area at the top of  the  resource  box  shows  the  current
          resource  name exactly as it would appear if you were to save it
          to a file or apply it.

   The Widget Names and Classes
          This area allows  you  to  select  exactly  which  widgets  this
          resource will apply to.  The area contains four lines, the first
          contains the name of the selected widget and all its  ancestors,
          and  the  more  restrictive  dot (.) separator.  The second line
          contains less specific the Class names of each widget, and  well
          as  the  less  restrictive  star  (*) separator.  The third line
          contains a set of special buttons called Any Widget  which  will
          generalize  this  level  to  match  any  widget.   The last line
          contains a set of special buttons called Any Widget Chain  which
          will  turn  the single level into something that matches zero or
          more levels.

          The initial state of this area is the  most  restrictive,  using
          the  resource  names  and  the  dot separator.  By selecting the
          other buttons in this area you  can  ease  the  restrictions  to
          allow  more  and  more  widgets to match the specification.  The
          extreme case is to select all  the  Any  Widget  Chain  buttons,
          which  will  match  every  widget  in  the application.   As you
          select different buttons the tree display will  update  to  show
          you  exactly  which  widgets  will  be  effected  by the current
          resource specification.

   Normal and Constraint Resources
          The next area allows you to select the name  of  the  normal  or
          constraint resources you wish to set.  Some widgets may not have
          constraint resources, so that area will not appear.

   Resource Value
          This next area allows you to enter  the  resource  value.   This
          value  should  be  entered exactly as you would type a line into
          your resource file.  Thus it should contain  no  unescaped  new-
          lines.   There  are  a  few special character sequences for this

          \n - This will be replaced with a newline.

          \### - Where # is any octal digit.  This will be replaced with a
          single  byte that contains this sequence interpreted as an octal
          number.  For example, a value containing  a  NULL  byte  can  be
          stored by specifying \000.

          \<new-line> - This will compress to nothing.

          \\ - This will compress to a single backslash.

   Command Area
          This  area  contains  several command buttons, described in this

   Set Save File
          This button allows the user to modify file  that  the  resources
          will  be  saved to.  This button will bring up a dialog box that
          will ask you for a filename; once the filename has been entered,
          either  hit carriage-return or click on the okay button.  To pop
          down the dialog box without changing the save  file,  click  the
          cancel button.

   Save   This button will append the resource line described above to the
          end of the current save file.  If no save file has been set  the
          Set  Save  File  dialog box will be popped up to prompt the user
          for a filename.

   Apply  This button attempts  to  perform  a  XtSetValues  call  on  all
          widgets that match the resource line described above.  The value
          specified is applied directly to  all  matching  widgets.   This
          behavior  is  an  attempt to give a dynamic feel to the resource
          editor.  Since this feature allows users to put  an  application
          in  states  it  may  not  be  willing to handle, a hook has been
          provided to allow specific applications to block these SetValues
          requests (see Blocking Editres Requests below).

          Unfortunately  due  to design constraints imposed on the widgets
          by the X Toolkit and the Resource Manager, trying to  coerce  an
          inherently static system into dynamic behavior can cause strange
          results.  There is no guarantee that the  results  of  an  apply
          will be the same as what will happen when you save the value and
          restart the application.  This functionality is provided to  try
          to  give you a rough feel for what your changes will accomplish,
          and the results obtained should be considered suspect  at  best.
          Having  said  that,  this  is  one  of  the  neatest features of
          editres, and I strongly suggest that you play with it,  and  see
          what it can do.

   Save and Apply
          This  button combines the Save and Apply actions described above
          into one button.

   Popdown Resource Box
          This button will remove the resource box from the display.


   The editres protocol has been built into the Athena Widget  set.   This
   allows all applications that are linked against Xaw to be able to speak
   to the resource editor.  While this provides great flexibility, and  is
   a useful tool, it can quite easily be abused.  It is therefore possible
   for any Xaw  application  to  specify  a  value  for  the  editresBlock
   resource  described  below,  to keep editres from divulging information
   about its internals, or to disable the SetValues part of the protocol.

   editresBlock (Class EditresBlock)
           Specifies which type of blocking  this  application  wishes  to
           impose on the editres protocol.

   The accepted values are:

   all            Block all requests.

   setValues      Block  all  SetValues  requests.   As  this  is the only
                  editres request that actually modifies the  application,
                  this  is in effect stating that the application is read-

   none           Allow all editres requests.

   Remember that these resources are  set  on  any  Xaw  application,  not
   editres.  They allow individual applications to keep all or some of the
   requests editres makes from ever succeeding.   Of  course,  editres  is
   also  an  Xaw  application,  so  it  may also be viewed and modified by
   editres (rather recursive, I know), these commands can  be  blocked  by
   setting the editresBlock resource on editres itself.


   For editres the available application resources are:

   numFlashes (Class NumFlashes)
           Specifies  the  number  of times the widgets in the application
           will be  flashed  when  the  Show  Active  Widgets  command  in

   flashTime (Class FlashTime)
           Amount of time between the flashes described above.

   flashColor (Class flashColor)
           Specifies  the  color  used  to  flash  application widgets.  A
           bright color should be used that  will  immediately  draw  your
           attention to the area being flashed, such as red or yellow.

   saveResourcesFile (Class SaveResourcesFile)
           This  is  the file the resource line will be append to when the
           Save button activated in the resource box.


   In order to specify resources, it is useful to know  the  hierarchy  of
   the  widgets which compose editres.  In the notation below, indentation
   indicates hierarchical structure.   The  widget  class  name  is  given
   first, followed by the widget instance name.

   Editres  editres
        Paned  paned
             Box  box
                  MenuButton  commands
                       SimpleMenu  menu
                       SmeBSB  sendTree
                       SmeBSB  refreshTree
                       SmeBSB  dumpTreeToFile
                       SmeLine  line
                       SmeBSB  getResourceList
                       SmeLine  line
                       SmeBSB  quit
                  MenuButton  treeCommands
                       SimpleMenu  menu
                       SmeBSB  showClientWidget
                       SmeBSB  selectAll
                       SmeBSB  unselectAll
                       SmeBSB  invertAll
                       SmeLine  line
                       SmeBSB  selectChildren
                       SmeBSB  selectParent
                       SmeBSB  selectDescendants
                       SmeBSB  selectAncestors
                       SmeLine  line
                       SmeBSB  showWidgetNames
                       SmeBSB  showClassNames
                       SmeBSB  showWidgetIDs
                       SmeBSB  showWidgetWindows
                       SmeLine  line
                       SmeBSB  flashActiveWidgets
             Paned  hPane
                  Panner  panner
                  Label  userMessage
                  Grip  grip
             Porthole  porthole
                  Tree  tree
                       Toggle  <name of widget in application>
                       TransientShell  resourceBox
                       Paned  pane
                       Label  resourceLabel
                       Form  namesAndClasses
                       Toggle  dot
                       Toggle  star
                       Toggle  any
                       Toggle  name
                       Toggle  class
                       Label  namesLabel
                       List  namesList
                       Label  constraintLabel
                       List  constraintList
                       Form  valueForm
                       Label  valueLabel
                       Text  valueText
                       Box  commandBox
                       Command  setFile
                       Command  save
                       Command  apply
                       Command  saveAndApply
                       Command  cancel
                       Grip  grip
             Grip  grip


   DISPLAY to get the default host and display number.

           to  get  the  name of a resource file that overrides the global
           resources stored in the RESOURCE_MANAGER property.


          specifies required resources


   X(7), xrdb(1), Athena Widget Set


   This is a prototype, there are lots of nifty features I would  love  to
   add,  but  I  hope  this will give you some ideas about what a resource
   editor can do.


   Chris D. Peterson, formerly MIT X Consortium


Personal Opportunity - Free software gives you access to billions of dollars of software at no cost. Use this software for your business, personal use or to develop a profitable skill. Access to source code provides access to a level of capabilities/information that companies protect though copyrights. Open source is a core component of the Internet and it is available to you. Leverage the billions of dollars in resources and capabilities to build a career, establish a business or change the world. The potential is endless for those who understand the opportunity.

Business Opportunity - Goldman Sachs, IBM and countless large corporations are leveraging open source to reduce costs, develop products and increase their bottom lines. Learn what these companies know about open source and how open source can give you the advantage.

Free Software

Free Software provides computer programs and capabilities at no cost but more importantly, it provides the freedom to run, edit, contribute to, and share the software. The importance of free software is a matter of access, not price. Software at no cost is a benefit but ownership rights to the software and source code is far more significant.

Free Office Software - The Libre Office suite provides top desktop productivity tools for free. This includes, a word processor, spreadsheet, presentation engine, drawing and flowcharting, database and math applications. Libre Office is available for Linux or Windows.

Free Books

The Free Books Library is a collection of thousands of the most popular public domain books in an online readable format. The collection includes great classical literature and more recent works where the U.S. copyright has expired. These books are yours to read and use without restrictions.

Source Code - Want to change a program or know how it works? Open Source provides the source code for its programs so that anyone can use, modify or learn how to write those programs themselves. Visit the GNU source code repositories to download the source.


Study at Harvard, Stanford or MIT - Open edX provides free online courses from Harvard, MIT, Columbia, UC Berkeley and other top Universities. Hundreds of courses for almost all major subjects and course levels. Open edx also offers some paid courses and selected certifications.

Linux Manual Pages - A man or manual page is a form of software documentation found on Linux/Unix operating systems. Topics covered include computer programs (including library and system calls), formal standards and conventions, and even abstract concepts.