{
    "mode": "man",
    "parameter": "editres",
    "section": "1",
    "url": "https://www.chedong.com/phpMan.php/man/editres/1/json",
    "generated": "2026-05-30T05:10: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\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\n\n\nX Version 11                                editres 1.0.7                                 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"
        }
    ]
}