{
    "mode": "man",
    "parameter": "EDITRES",
    "section": "",
    "url": "https://www.chedong.com/phpMan.php/man/EDITRES/json",
    "generated": "2026-10-22T12:59:00Z",
    "sections": {
        "NAME": {
            "content": "editres - a dynamic resource editor for X Toolkit applications\n",
            "subsections": []
        },
        "SYNTAX": {
            "content": "editres [ -toolkitoption ... ]\n",
            "subsections": []
        },
        "OPTIONS": {
            "content": "Editres  accepts all of the standard X Toolkit command line options (see X(7)).  The order of\nthe command line options is not important.\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "Editres is a tool that allows users and application developers to view the full widget  hier‐\narchy  of  any  X Toolkit application that speaks the Editres protocol.  In addition, editres\nwill help the user construct resource specifications, allow the user to apply the resource to\nthe application and view the results dynamically.  Once the user is  happy  with  a  resource\nspecification editres will append the resource string to the user's X Resources file.\n",
            "subsections": []
        },
        "USING EDITRES": {
            "content": "Editres provides a window consisting of the following four areas:\n\nMenu Bar                 A  set  of  popup menus that allow you full access to editres's fea‐\ntures.\n\nPanner                   The panner allows a more intuitive way  to  scroll  the  application\ntree display.\n\nMessage Area             Displays  information  to the user about the action that editres ex‐\npects of her.\n\nApplication Widget Tree  This area will be used to display the selected application's  widget\ntree.\n\nTo begin an editres session select the Get Widget Tree menu item from the command menu.  This\nwill change the pointer cursor to cross hair.  You should now select the application you wish\nlook  at by clicking on any of its windows.  If this application understands the editres pro‐\ntocol then editres will display the application's widget tree in its tree window.  If the ap‐\nplication does not understand the editres protocol editres will inform you of  this  fact  in\nthe message area after a few seconds delay.\n\nOnce  you  have a widget tree you may now select any of the other menu options. The effect of\neach of these is described below.\n",
            "subsections": []
        },
        "COMMANDS": {
            "content": "Get Widget Tree\nAllows the user to click on any application that speaks the editres protocol and  re‐\nceive its widget tree.\n\nRefresh Current Widget Tree\nEditres  only  knows about the widgets that exist at the present time.  Many applica‐\ntions create and destroy widgets on the fly.  Selecting this menu item will cause ed‐\nitres to ask the application to resend its widget tree, thus updating its information\nto the new state of the application.\n\nFor example, xman only creates the widgets for its topbox when it starts up.  None of\nthe widgets for the manual page window are created until the user actually clicks  on\nthe  Manual  Page  button.  If you retrieved xman's widget tree before the the manual\npage is active, you may wish to refresh the widget tree after  the  manual  page  has\nbeen displayed.  This will allow you to also edit the manual page's resources.\n\nDump Widget Tree to a File\nFor  documenting applications it is often useful to be able to dump the entire appli‐\ncation widget tree to an ASCII file.  This file can then be included  in  the  manual\npage.  When this menu item is selected a popup dialog is activated.  Type the name of\nthe  file in this dialog, and either select okay, or type a carriage-return.  Editres\nwill now dump the widget tree to this file.  To cancel the file  dialog,  select  the\ncancel button.\n\nShow Resource Box\nThis  command  will  popup a resource box for the current application.  This resource\nbox (described in detail below) will allow the user to see  exactly  which  resources\ncan  be  set  for  the  widget that is currently selected in the widget tree display.\nOnly one widget may be currently selected; if greater or fewer are  selected  editres\nwill refuse to pop up the resource box and put an error message in the Message Area.\n\nSet Resource\nThis  command will popup a simple dialog box for setting an arbitrary resource on all\nselected widgets.  You must type in the resource name, as well as the value.  You can\nuse the Tab key to switch between the resource name field the resource value field.\n\nQuit    Exits editres.\n",
            "subsections": []
        },
        "TREE COMMANDS": {
            "content": "The Tree menu contains several commands that allow operations to be performed on  the  widget\ntree.\n\nSelect Widget in Client\nThis  menu  item allows you to select any widget in the application; editres will then\nhighlight the corresponding element the widget tree display.  Once this menu  item  is\nselected  the  pointer  cursor  will again turn to a crosshair, and you must click any\npointer button in the widget you wish to have displayed.  Since some widgets are fully\nobscured by their children, it is not possible to get to every widget  this  way,  but\nthis  mechanism does give very useful feedback between the elements in the widget tree\nand those in the actual application.\n\nSelect All\n\nUnselect All\n\nInvert All\nThese functions allow the user to select, unselect, or invert all widgets in the  wid‐\nget tree.\n\nSelect Children\n\nSelect Parents\nThese  functions  select the immediate parent or children of each of the currently se‐\nlected widgets.\n\nSelect Descendants\n\nSelect Ancestors\nThese functions select all parents or children of each of the currently selected  wid‐\ngets.  This is a recursive search.\n\nShow Widget Names\n\nShow Class Names\n\nShow Widget IDs\n\nShow Widget Windows\nWhen the tree widget is initially displayed the labels of each widget in the tree cor‐\nrespond  to  the widget names.  These functions will cause the label of all widgets in\nthe tree to be changed to show the class name, IDs, or  window  associated  with  each\nwidget in the application.  The widget IDs, and windows are shown as hex numbers.\n\nIn  addition  there  are keyboard accelerators for each of the Tree operations.  If the input\nfocus is over an individual widget in the tree, then that operation  will  only  effect  that\nwidget.  If the input focus is in the Tree background it will have exactly the same effect as\nthe corresponding menu item.\n\nThe  translation entries shown may be applied to any widget in the application.  If that wid‐\nget is a child of the Tree widget, then it will only affect that widget,  otherwise  it  will\nhave the same effect as the commands in the tree menu.\n\nFlash Active Widgets\nThis  command  is the inverse of the Select Widget in Client command, it will show the\nuser each widget that is currently selected in the widget tree, by flashing the corre‐\nsponding widget in the application numFlashes (three by default) times in  the  flash‐\nColor.\n\nKey     Option                     Translation Entry\n-\nspace   Unselect                   Select(nothing)\nw       Select                     Select(widget)\ns       Select                     Select(all)\ni       Invert                     Select(invert)\nc       Select Children            Select(children)\nd       Select Descendants         Select(descendants)\np       Select Parent              Select(parent)\na       Select Ancestors           Select(ancestors)\nN       Show Widget Names          Relabel(name)\nC       Show Class Names           Relabel(class)\nI       Show Widget IDs            Relabel(id)\nW       Show Widget Windows        Relabel(window)\nT       Toggle Widget/Class Name   Relabel(toggle)\n\nClicking button 1 on a widget adds it to the set of selected widgets.  Clicking button\n2 on a widget deselects all other widgets and then selects just that widget.  Clicking\nbutton 3 on a widget toggles its label between the widget's instance name the widget's\nclass name.\n\n",
            "subsections": []
        },
        "USING THE RESOURCE BOX": {
            "content": "The  resource  box  contains  five different areas.  Each of the areas, as they appear on the\nscreen, from top to bottom will be discussed.\n\nThe Resource Line\nThis area at the top of the resource box shows the current resource name exactly as it\nwould appear if you were to save it to a file or apply it.\n\nThe Widget Names and Classes\nThis area allows you to select exactly which widgets this resource will apply to.  The\narea contains four lines, the first contains the name of the selected widget  and  all\nits  ancestors,  and the more restrictive dot (.) separator.  The second line contains\nless specific the Class names of each widget, and well as the  less  restrictive  star\n(*)  separator.   The  third  line contains a set of special buttons called Any Widget\nwhich will generalize this level to match any widget.  The last line contains a set of\nspecial buttons called Any Widget Chain which will turn the single  level  into  some‐\nthing that matches zero or more levels.\n\nThe  initial  state of this area is the most restrictive, using the resource names and\nthe dot separator.  By selecting the other buttons in this area you can ease  the  re‐\nstrictions  to  allow  more  and more widgets to match the specification.  The extreme\ncase is to select all the Any Widget Chain buttons, which will match every  widget  in\nthe  application.    As  you  select different buttons the tree display will update to\nshow you exactly which widgets will be effected by the current resource specification.\n\nNormal and Constraint Resources\nThe next area allows you to select the name of the normal or constraint resources  you\nwish  to  set.   Some widgets may not have constraint resources, so that area will not\nappear.\n\nResource Value\nThis next area allows you to enter the resource value.  This value should  be  entered\nexactly  as  you would type a line into your resource file.  Thus it should contain no\nunescaped new-lines.  There are a few special character sequences for this file:\n\n\\n - This will be replaced with a newline.\n\n\\### - Where # is any octal digit.  This will be replaced with a single byte that con‐\ntains this sequence interpreted as an octal number.  For example, a value containing a\nNULL byte can be stored by specifying \\000.\n\n\\<new-line> - This will compress to nothing.\n\n\\\\ - This will compress to a single backslash.\n\nCommand Area\nThis area contains several command buttons, described in this section.\n\nSet Save File\nThis button allows the user to modify file that the resources will be saved to.   This\nbutton  will bring up a dialog box that will ask you for a filename; once the filename\nhas been entered, either hit carriage-return or click on the okay button.  To pop down\nthe dialog box without changing the save file, click the cancel button.\n\nSave   This button will append the resource line described above to the end  of  the  current\nsave  file.   If no save file has been set the Set Save File dialog box will be popped\nup to prompt the user for a filename.\n\nApply  This button attempts to perform a XtSetValues call on all widgets that match  the  re‐\nsource  line described above.  The value specified is applied directly to all matching\nwidgets.  This behavior is an attempt to give a dynamic feel to the  resource  editor.\nSince  this feature allows users to put an application in states it may not be willing\nto handle, a hook has been provided to allow specific applications to block these Set‐\nValues requests (see Blocking Editres Requests below).\n\nUnfortunately due to design constraints imposed on the widgets by the  X  Toolkit  and\nthe Resource Manager, trying to coerce an inherently static system into dynamic behav‐\nior  can  cause  strange  results.  There is no guarantee that the results of an apply\nwill be the same as what will happen when you save the value and restart the  applica‐\ntion.   This  functionality  is provided to try to give you a rough feel for what your\nchanges will accomplish, and the results obtained  should  be  considered  suspect  at\nbest.   Having  said  that,  this  is  one  of  the neatest features of editres, and I\nstrongly suggest that you play with it, and see what it can do.\n\nSave and Apply\nThis button combines the Save and Apply actions described above into one button.\n\nPopdown Resource Box\nThis button will remove the resource box from the display.\n",
            "subsections": []
        },
        "BLOCKING EDITRES REQUESTS": {
            "content": "The editres protocol has been built into the Athena Widget set.  This allows all applications\nthat are linked against Xaw to be able to speak to the resource editor.  While this  provides\ngreat flexibility, and is a useful tool, it can quite easily be abused.  It is therefore pos‐\nsible  for any Xaw application to specify a value for the editresBlock resource described be‐\nlow, to keep editres from divulging information about its internals, or to disable  the  Set‐\nValues part of the protocol.\n\neditresBlock (Class EditresBlock)\nSpecifies  which  type  of  blocking this application wishes to impose on the editres\nprotocol.\n\nThe accepted values are:\n\nall            Block all requests.\n\nsetValues      Block all SetValues requests.  As this is the only editres request that  actu‐\nally  modifies the application, this is in effect stating that the application\nis read-only.\n\nnone           Allow all editres requests.\n\nRemember that these resources are set on any Xaw application, not editres.  They allow  indi‐\nvidual  applications  to keep all or some of the requests editres makes from ever succeeding.\nOf course, editres is also an Xaw application, so it may also be viewed and modified  by  ed‐\nitres  (rather  recursive, I know), these commands can be blocked by setting the editresBlock\nresource on editres itself.\n",
            "subsections": []
        },
        "RESOURCES": {
            "content": "For editres the available application resources are:\n\nnumFlashes (Class NumFlashes)\nSpecifies the number of times the widgets in the application will be flashed when the\nShow Active Widgets command in invoked.\n\nflashTime (Class FlashTime)\nAmount of time between the flashes described above.\n\nflashColor (Class flashColor)\nSpecifies the color used to flash application widgets.  A bright color should be used\nthat will immediately draw your attention to the area being flashed, such as  red  or\nyellow.\n\nsaveResourcesFile (Class SaveResourcesFile)\nThis  is  the file the resource line will be append to when the Save button activated\nin the resource box.\n",
            "subsections": []
        },
        "WIDGETS": {
            "content": "In order to specify resources, it is useful to know the hierarchy of the widgets  which  com‐\npose editres.  In the notation below, indentation indicates hierarchical structure.  The wid‐\nget class name is given first, followed by the widget instance name.\n\nEditres  editres\nPaned  paned\nBox  box\nMenuButton  commands\nSimpleMenu  menu\nSmeBSB  sendTree\nSmeBSB  refreshTree\nSmeBSB  dumpTreeToFile\nSmeLine  line\nSmeBSB  getResourceList\nSmeLine  line\nSmeBSB  quit\nMenuButton  treeCommands\nSimpleMenu  menu\nSmeBSB  showClientWidget\nSmeBSB  selectAll\nSmeBSB  unselectAll\nSmeBSB  invertAll\nSmeLine  line\nSmeBSB  selectChildren\nSmeBSB  selectParent\nSmeBSB  selectDescendants\nSmeBSB  selectAncestors\nSmeLine  line\nSmeBSB  showWidgetNames\nSmeBSB  showClassNames\nSmeBSB  showWidgetIDs\nSmeBSB  showWidgetWindows\nSmeLine  line\nSmeBSB  flashActiveWidgets\nPaned  hPane\nPanner  panner\nLabel  userMessage\nGrip  grip\nPorthole  porthole\nTree  tree\nToggle  <name of widget in application>\n.\n.\n.\nTransientShell  resourceBox\nPaned  pane\nLabel  resourceLabel\nForm  namesAndClasses\nToggle  dot\nToggle  star\nToggle  any\nToggle  name\nToggle  class\n.\n.\n.\nLabel  namesLabel\nList  namesList\nLabel  constraintLabel\nList  constraintList\nForm  valueForm\nLabel  valueLabel\nText  valueText\nBox  commandBox\nCommand  setFile\nCommand  save\nCommand  apply\nCommand  saveAndApply\nCommand  cancel\nGrip  grip\nGrip  grip\n\n",
            "subsections": []
        },
        "ENVIRONMENT": {
            "content": "DISPLAY to get the default host and display number.\n\nXENVIRONMENT\nto  get the name of a resource file that overrides the global resources stored in the\nRESOURCEMANAGER property.\n",
            "subsections": []
        },
        "FILES": {
            "content": "/etc/X11/app-defaults/Editres\nspecifies required resources\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "X(7), xrdb(1), Athena Widget Set\n",
            "subsections": []
        },
        "RESTRICTIONS": {
            "content": "This is a prototype, there are lots of nifty features I would love to add, but  I  hope  this\nwill give you some ideas about what a resource editor can do.\n",
            "subsections": []
        },
        "AUTHOR": {
            "content": "Chris D. Peterson, formerly MIT X Consortium\n\n\nX Version 11                                editres 1.0.8                                 EDITRES(1)",
            "subsections": []
        }
    },
    "summary": "editres - a dynamic resource editor for X Toolkit applications",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "X",
            "section": "7",
            "url": "https://www.chedong.com/phpMan.php/man/X/7/json"
        },
        {
            "name": "xrdb",
            "section": "1",
            "url": "https://www.chedong.com/phpMan.php/man/xrdb/1/json"
        }
    ]
}