home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1999 mARCH / PCWK3A99.iso / Linux / DDD331 / DDD-3_1_.000 / DDD-3_1_ / ddd-3.1.1 / ddd / resources.C < prev    next >
C/C++ Source or Header  |  1998-12-06  |  36KB  |  2,161 lines

  1. // $Id: resources.C,v 1.144.4.1 1998/12/06 12:59:23 zeller Exp $ -*- C++ -*-
  2. // DDD application resources
  3.  
  4. // Copyright (C) 1996-1998 Technische Universitaet Braunschweig, Germany.
  5. // Written by Andreas Zeller <zeller@ips.cs.tu-bs.de>.
  6. // 
  7. // This file is part of DDD.
  8. // 
  9. // DDD is free software; you can redistribute it and/or
  10. // modify it under the terms of the GNU General Public
  11. // License as published by the Free Software Foundation; either
  12. // version 2 of the License, or (at your option) any later version.
  13. // 
  14. // DDD is distributed in the hope that it will be useful,
  15. // but WITHOUT ANY WARRANTY; without even the implied warranty of
  16. // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  17. // See the GNU General Public License for more details.
  18. // 
  19. // You should have received a copy of the GNU General Public
  20. // License along with DDD -- see the file COPYING.
  21. // If not, write to the Free Software Foundation, Inc.,
  22. // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  23. // 
  24. // DDD is the data display debugger.
  25. // For details, see the DDD World-Wide-Web page, 
  26. // `http://www.cs.tu-bs.de/softech/ddd/',
  27. // or send a mail to the DDD developers <ddd@ips.cs.tu-bs.de>.
  28.  
  29. char resources_rcsid[] = 
  30.     "$Id: resources.C,v 1.144.4.1 1998/12/06 12:59:23 zeller Exp $";
  31.  
  32. #ifdef __GNUG__
  33. #pragma implementation
  34. #endif
  35.  
  36. #include "resources.h"
  37. #include "version.h"
  38. #include "AppData.h"
  39. #include "stty.h"
  40. #include "config.h"
  41.  
  42. #include <Xm/Xm.h>
  43.  
  44. // Application resource definitions
  45. XtResource ddd_resources[] = {
  46.     {
  47.     XtNsession,
  48.     XtCSessionID,
  49.     XtRString,
  50.     sizeof(String),
  51.     XtOffsetOf(AppData, session),
  52.     XtRString, 
  53.     XtPointer(NULL)
  54.     },
  55.  
  56.     {
  57.     XtNinitialSession,
  58.     XtCSessionID,
  59.     XtRString,
  60.     sizeof(String),
  61.     XtOffsetOf(AppData, initial_session),
  62.     XtRString, 
  63.     XtPointer(NULL)
  64.     },
  65.  
  66.     { 
  67.     XtNdebugger,
  68.     XtCDebugger,
  69.     XtRString, 
  70.     sizeof(String),
  71.     XtOffsetOf(AppData, debugger), 
  72.     XtRString, 
  73.     XtPointer("")
  74.     },
  75.  
  76.     { 
  77.     XtNdebuggerCommand,
  78.     XtCDebuggerCommand,
  79.     XtRString, 
  80.     sizeof(String),
  81.     XtOffsetOf(AppData, debugger_command), 
  82.     XtRString, 
  83.     XtPointer("")
  84.     },
  85.  
  86.     { 
  87.     XtNautoDebugger, 
  88.     XtCAutoDebugger, 
  89.     XmRBoolean,
  90.     sizeof(Boolean),
  91.     XtOffsetOf(AppData, auto_debugger),
  92.     XmRImmediate,
  93.     XtPointer(True)
  94.     },
  95.  
  96.     { 
  97.     XtNopenSelection, 
  98.     XtCOpenSelection, 
  99.     XmRBoolean,
  100.     sizeof(Boolean),
  101.     XtOffsetOf(AppData, open_selection),
  102.     XmRImmediate,
  103.     XtPointer(False)
  104.     },
  105.  
  106.     { 
  107.     XtNtrace, 
  108.     XtCTrace, 
  109.     XmRBoolean,
  110.     sizeof(Boolean),
  111.     XtOffsetOf(AppData, trace),
  112.     XmRImmediate, 
  113.     XtPointer(False)
  114.     },
  115.  
  116.     { 
  117.     XtNplayLog,
  118.     XtCPlayLog,
  119.     XtRString, 
  120.     sizeof(String),
  121.     XtOffsetOf(AppData, play_log), 
  122.     XtRString, 
  123.     XtPointer(NULL)
  124.     },
  125.  
  126.     { 
  127.     XtNgdbInitCommands, 
  128.     XtCInitCommands, 
  129.     XtRString,
  130.     sizeof(String),
  131.     XtOffsetOf(AppData, gdb_init_commands), 
  132.     XtRString,
  133.     XtPointer(
  134.         "set height 0\n"
  135.         "set width 0\n"
  136.         " set verbose off\n"
  137.         "set prompt (gdb) \n")
  138.     },
  139.  
  140.     { 
  141.     XtNgdbSettings, 
  142.     XtCSettings, 
  143.     XtRString,
  144.     sizeof(String),
  145.     XtOffsetOf(AppData, gdb_settings), 
  146.     XtRString,
  147.     XtPointer("")
  148.     },
  149.  
  150.     { 
  151.     XtNdbxInitCommands, 
  152.     XtCInitCommands, 
  153.     XtRString,
  154.     sizeof(String),
  155.     XtOffsetOf(AppData, dbx_init_commands), 
  156.     XtRString,
  157.     XtPointer("")
  158.     },
  159.  
  160.     { 
  161.     XtNdbxSettings, 
  162.     XtCSettings, 
  163.     XtRString,
  164.     sizeof(String),
  165.     XtOffsetOf(AppData, dbx_settings), 
  166.     XtRString,
  167.     XtPointer("")
  168.     },
  169.  
  170.     { 
  171.     XtNxdbInitCommands, 
  172.     XtCInitCommands, 
  173.     XtRString,
  174.     sizeof(String),
  175.     XtOffsetOf(AppData, xdb_init_commands), 
  176.     XtRString,
  177.     XtPointer("")
  178.     },
  179.  
  180.     { 
  181.     XtNxdbSettings, 
  182.     XtCSettings, 
  183.     XtRString,
  184.     sizeof(String),
  185.     XtOffsetOf(AppData, xdb_settings), 
  186.     XtRString,
  187.     XtPointer("")
  188.     },
  189.  
  190.     { 
  191.     XtNjdbInitCommands, 
  192.     XtCInitCommands, 
  193.     XtRString,
  194.     sizeof(String),
  195.     XtOffsetOf(AppData, jdb_init_commands), 
  196.     XtRString,
  197.     XtPointer("")
  198.     },
  199.  
  200.     { 
  201.     XtNjdbSettings, 
  202.     XtCSettings, 
  203.     XtRString,
  204.     sizeof(String),
  205.     XtOffsetOf(AppData, jdb_settings), 
  206.     XtRString,
  207.     XtPointer("")
  208.     },
  209.  
  210.     { 
  211.     XtNpydbInitCommands, 
  212.     XtCInitCommands, 
  213.     XtRString,
  214.     sizeof(String),
  215.     XtOffsetOf(AppData, pydb_init_commands), 
  216.     XtRString,
  217.     XtPointer("import os\n")
  218.     },
  219.  
  220.     { 
  221.     XtNpydbSettings, 
  222.     XtCSettings, 
  223.     XtRString,
  224.     sizeof(String),
  225.     XtOffsetOf(AppData, pydb_settings), 
  226.     XtRString,
  227.     XtPointer("")
  228.     },
  229.  
  230.     { 
  231.     XtNperlInitCommands, 
  232.     XtCInitCommands, 
  233.     XtRString,
  234.     sizeof(String),
  235.     XtOffsetOf(AppData, perl_init_commands), 
  236.     XtRString,
  237.     XtPointer("")
  238.     },
  239.  
  240.     { 
  241.     XtNperlSettings, 
  242.     XtCSettings, 
  243.     XtRString,
  244.     sizeof(String),
  245.     XtOffsetOf(AppData, perl_settings),
  246.     XtRString,
  247.     XtPointer("")
  248.     },
  249.  
  250.     {
  251.     XtNrestartCommands,
  252.     XtCInitCommands,
  253.     XtRString,
  254.     sizeof(String),
  255.     XtOffsetOf(AppData, restart_commands), 
  256.     XtRString,
  257.     XtPointer("")
  258.     },
  259.  
  260.     {
  261.     XtNsourceInitCommands,
  262.     XtCSourceInitCommands,
  263.     XtRBoolean,
  264.     sizeof(Boolean),
  265.     XtOffsetOf(AppData, source_init_commands),
  266.     XtRImmediate,
  267.     XtPointer(False)
  268.     },
  269.  
  270.     { 
  271.     XtNvslPath, 
  272.     XtCVSLPath, 
  273.     XtRString, 
  274.     sizeof(String),
  275.     XtOffsetOf(AppData, vsl_path),
  276.     XtRString, 
  277.     XtPointer(".")
  278.     },
  279.  
  280.     { 
  281.     XtNvslLibrary, 
  282.     XtCVSLLibrary, 
  283.     XtRString, 
  284.     sizeof(String),
  285.     XtOffsetOf(AppData, vsl_library), 
  286.     XtRString, 
  287.     XtPointer("builtin")
  288.     },
  289.  
  290.     { 
  291.     XtNdefaultFont, 
  292.     XtCFont, 
  293.     XtRString, 
  294.     sizeof(String),
  295.     XtOffsetOf(AppData, default_font),
  296.     XtRString, 
  297.     XtPointer("-*-helvetica-bold-r-*")
  298.     },
  299.  
  300.     { 
  301.     XtNvariableWidthFont, 
  302.     XtCFont,
  303.     XtRString, 
  304.     sizeof(String),
  305.     XtOffsetOf(AppData, variable_width_font),
  306.     XtRString,
  307.     XtPointer("-*-helvetica-medium-r-*")
  308.     },
  309.  
  310.     { 
  311.     XtNfixedWidthFont, 
  312.     XtCFont,
  313.     XtRString, 
  314.     sizeof(String),
  315.     XtOffsetOf(AppData, fixed_width_font),
  316.     XtRString,
  317.     XtPointer("-*-courier-medium-r-*")
  318.     },
  319.  
  320.     {
  321.     XtNdefaultFontSize,
  322.     XtCFontSize,
  323.     XtRCardinal,
  324.     sizeof(Cardinal),
  325.     XtOffsetOf(AppData, default_font_size),
  326.     XmRImmediate,
  327.     XtPointer(120)
  328.     },
  329.  
  330.     {
  331.     XtNvariableWidthFontSize,
  332.     XtCFontSize,
  333.     XtRCardinal,
  334.     sizeof(Cardinal),
  335.     XtOffsetOf(AppData, variable_width_font_size),
  336.     XmRImmediate,
  337.     XtPointer(120)
  338.     },
  339.  
  340.     {
  341.     XtNfixedWidthFontSize,
  342.     XtCFontSize,
  343.     XtRCardinal,
  344.     sizeof(Cardinal),
  345.     XtOffsetOf(AppData, fixed_width_font_size),
  346.     XmRImmediate,
  347.     XtPointer(120)
  348.     },
  349.  
  350.     { 
  351.     XtNfontSelectCommand, 
  352.     XtCFontSelectCommand,
  353.     XtRString,
  354.     sizeof(String),
  355.     XtOffsetOf(AppData, font_select_command),
  356.     XtRString,
  357.     XtPointer("xfontsel -print")
  358.     },
  359.  
  360.     { 
  361.     XtNvslDefs, 
  362.     XtCVSLDefs, 
  363.     XtRString, 
  364.     sizeof(String),
  365.     XtOffsetOf(AppData, vsl_defs),
  366.     XtRString, 
  367.     XtPointer("")
  368.     },
  369.  
  370.     { 
  371.     XtNvslBaseDefs, 
  372.     XtCVSLDefs, 
  373.     XtRString, 
  374.     sizeof(String),
  375.     XtOffsetOf(AppData, vsl_base_defs),
  376.     XtRString, 
  377.     XtPointer("")
  378.     },
  379.  
  380.     {
  381.     XtNtabWidth,
  382.     XtCTabWidth,
  383.     XtRCardinal,
  384.     sizeof(Cardinal),
  385.     XtOffsetOf(AppData, tab_width),
  386.     XmRImmediate,
  387.     XtPointer(8)
  388.     },
  389.  
  390.     {
  391.     XtNlinesAboveCursor,
  392.     XtCLinesAboveCursor,
  393.     XtRCardinal,
  394.     sizeof(Cardinal),
  395.     XtOffsetOf(AppData, lines_above_cursor),
  396.     XmRImmediate,
  397.     XtPointer(2)
  398.     },
  399.  
  400.     {
  401.     XtNlinesBelowCursor,
  402.     XtCLinesBelowCursor,
  403.     XtRCardinal,
  404.     sizeof(Cardinal),
  405.     XtOffsetOf(AppData, lines_below_cursor),
  406.     XmRImmediate,
  407.     XtPointer(3)
  408.     },
  409.  
  410.     {
  411.     XtNindentSource,
  412.     XtCIndent,
  413.     XtRCardinal,
  414.     sizeof(Cardinal),
  415.     XtOffsetOf(AppData, indent_source),
  416.     XmRImmediate,
  417.     XtPointer(4)
  418.     },
  419.  
  420.     {
  421.     XtNindentScript,
  422.     XtCIndent,
  423.     XtRCardinal,
  424.     sizeof(Cardinal),
  425.     XtOffsetOf(AppData, indent_script),
  426.     XmRImmediate,
  427.     XtPointer(4)
  428.     },
  429.  
  430.     {
  431.     XtNindentCode,
  432.     XtCIndent,
  433.     XtRCardinal,
  434.     sizeof(Cardinal),
  435.     XtOffsetOf(AppData, indent_code),
  436.     XmRImmediate,
  437.     XtPointer(4)
  438.     },
  439.  
  440.     {
  441.     XtNlineNumberWidth,
  442.     XtCLineNumberWidth,
  443.     XtRCardinal,
  444.     sizeof(Cardinal),
  445.     XtOffsetOf(AppData, line_number_width),
  446.     XmRImmediate,
  447.     XtPointer(4)
  448.     },
  449.  
  450.     {
  451.     XtNsourceEditing,
  452.     XtCSourceEditing,
  453.     XtRBoolean,
  454.     sizeof(Boolean),
  455.     XtOffsetOf(AppData, source_editing),
  456.     XtRImmediate,
  457.     XtPointer(False)
  458.     },
  459.  
  460.     {
  461.     XtNlineBufferedConsole,
  462.     XtCLineBuffered,
  463.     XtRBoolean,
  464.     sizeof(Boolean),
  465.     XtOffsetOf(AppData, line_buffered_console),
  466.     XtRImmediate,
  467.     XtPointer(True)
  468.     },
  469.  
  470.     {
  471.     XtNgdbDisplayShortcuts,
  472.     XtCDisplayShortcuts,
  473.     XtRString,
  474.     sizeof(String),
  475.     XtOffsetOf(AppData, gdb_display_shortcuts),
  476.     XtRString,
  477.     XtPointer("")
  478.     },
  479.  
  480.     {
  481.     XtNdbxDisplayShortcuts,
  482.     XtCDisplayShortcuts,
  483.     XtRString,
  484.     sizeof(String),
  485.     XtOffsetOf(AppData, dbx_display_shortcuts),
  486.     XtRString,
  487.     XtPointer("")
  488.     },
  489.  
  490.     {
  491.     XtNxdbDisplayShortcuts,
  492.     XtCDisplayShortcuts,
  493.     XtRString,
  494.     sizeof(String),
  495.     XtOffsetOf(AppData, xdb_display_shortcuts),
  496.     XtRString,
  497.     XtPointer("")
  498.     },
  499.  
  500.     {
  501.     XtNjdbDisplayShortcuts,
  502.     XtCDisplayShortcuts,
  503.     XtRString,
  504.     sizeof(String),
  505.     XtOffsetOf(AppData, jdb_display_shortcuts),
  506.     XtRString,
  507.     XtPointer("")
  508.     },
  509.  
  510.     {
  511.     XtNpydbDisplayShortcuts,
  512.     XtCDisplayShortcuts,
  513.     XtRString,
  514.     sizeof(String),
  515.     XtOffsetOf(AppData, pydb_display_shortcuts),
  516.     XtRString,
  517.     XtPointer("")
  518.     },
  519.  
  520.     {
  521.     XtNperlDisplayShortcuts,
  522.     XtCDisplayShortcuts,
  523.     XtRString,
  524.     sizeof(String),
  525.     XtOffsetOf(AppData, perl_display_shortcuts),
  526.     XtRString,
  527.     XtPointer("")
  528.     },
  529.  
  530.     {
  531.     XtNconsoleButtons,
  532.     XtCButtons,
  533.     XtRString,
  534.     sizeof(String),
  535.     XtOffsetOf(AppData, console_buttons),
  536.     XtRString,
  537.     XtPointer("")
  538.     },
  539.  
  540.     {
  541.     XtNsourceButtons,
  542.     XtCButtons,
  543.     XtRString,
  544.     sizeof(String),
  545.     XtOffsetOf(AppData, source_buttons),
  546.     XtRString,
  547.     XtPointer("")
  548.     },
  549.  
  550.     {
  551.     XtNdataButtons,
  552.     XtCButtons,
  553.     XtRString,
  554.     sizeof(String),
  555.     XtOffsetOf(AppData, data_buttons),
  556.     XtRString,
  557.     XtPointer("")
  558.     },
  559.  
  560.     {
  561.     XtNtoolButtons,
  562.     XtCButtons,
  563.     XtRString,
  564.     sizeof(String),
  565.     XtOffsetOf(AppData, tool_buttons),
  566.     XtRString,
  567.     XtPointer("run\n"
  568.           "interrupt^C\n"
  569.           "next\n"
  570.           "step\n"
  571.           "continue\n"
  572.           "finish\n"
  573.           "up\n"
  574.           "down")
  575.     },
  576.  
  577.     {
  578.     XtNlabelDelimiter,
  579.     XtCLabelDelimiter,
  580.     XtRString,
  581.     sizeof(String),
  582.     XtOffsetOf(AppData, label_delimiter),
  583.     XtRString,
  584.     XtPointer("//")
  585.     },
  586.  
  587.     {
  588.     XtNcommandToolBar,
  589.     XtCToolBar,
  590.     XtRBoolean,
  591.     sizeof(Boolean),
  592.     XtOffsetOf(AppData, command_toolbar),
  593.     XtRImmediate,
  594.     XtPointer(False)
  595.     },
  596.  
  597.     {
  598.     XtNcommonToolBar,
  599.     XtCToolBar,
  600.     XtRBoolean,
  601.     sizeof(Boolean),
  602.     XtOffsetOf(AppData, common_toolbar),
  603.     XtRImmediate,
  604.     XtPointer(True)
  605.     },
  606.  
  607.     {
  608.     XtNseparateDataWindow,
  609.     XtCSeparate,
  610.     XtRBoolean,
  611.     sizeof(Boolean),
  612.     XtOffsetOf(AppData, separate_data_window),
  613.     XtRImmediate,
  614.     XtPointer(False)
  615.     },
  616.  
  617.     {
  618.     XtNseparateSourceWindow,
  619.     XtCSeparate,
  620.     XtRBoolean,
  621.     sizeof(Boolean),
  622.     XtOffsetOf(AppData, separate_source_window),
  623.     XtRImmediate,
  624.     XtPointer(False)
  625.     },
  626.  
  627.     {
  628.     XtNseparateExecWindow,
  629.     XtCSeparate,
  630.     XtRBoolean,
  631.     sizeof(Boolean),
  632.     XtOffsetOf(AppData, separate_exec_window),
  633.     XtRImmediate,
  634.     XtPointer(False)
  635.     },
  636.  
  637.     {
  638.     XtNopenDataWindow,
  639.     XtCWindow,
  640.     XtRBoolean,
  641.     sizeof(Boolean),
  642.     XtOffsetOf(AppData, data_window),
  643.     XtRImmediate,
  644.     XtPointer(True)
  645.     },
  646.  
  647.     {
  648.     XtNopenSourceWindow,
  649.     XtCWindow,
  650.     XtRBoolean,
  651.     sizeof(Boolean),
  652.     XtOffsetOf(AppData, source_window),
  653.     XtRImmediate,
  654.     XtPointer(True)
  655.     },
  656.  
  657.     {
  658.     XtNopenDebuggerConsole,
  659.     XtCWindow,
  660.     XtRBoolean,
  661.     sizeof(Boolean),
  662.     XtOffsetOf(AppData, debugger_console),
  663.     XtRImmediate,
  664.     XtPointer(True)
  665.     },
  666.  
  667.     {
  668.     XtNautoCloseDataWindow,
  669.     XtCAutoClose,
  670.     XtRBoolean,
  671.     sizeof(Boolean),
  672.     XtOffsetOf(AppData, auto_close_data_window),
  673.     XtRImmediate,
  674.     XtPointer(True)
  675.     },
  676.  
  677.     {
  678.     XtNplotCommand,
  679.     XtCPlotCommand,
  680.     XtRString,
  681.     sizeof(String),
  682.     XtOffsetOf(AppData, plot_command),
  683.     XtRString,
  684.     XtPointer("gnuplot -name @NAME@")
  685.     },
  686.  
  687.     {
  688.     XtNplotTermType,
  689.     XtCPlotTermType,
  690.     XtRString,
  691.     sizeof(String),
  692.     XtOffsetOf(AppData, plot_term_type),
  693.     XtRString,
  694.     XtPointer("xlib")
  695.     },
  696.  
  697.     {
  698.     XtNplotWindowClass,
  699.     XtCPlotWindowClass,
  700.     XtRString,
  701.     sizeof(String),
  702.     XtOffsetOf(AppData, plot_window_class),
  703.     XtRString,
  704.     XtPointer("Gnuplot")
  705.     },
  706.  
  707.     {
  708.     XtNplotWindowDelay,
  709.     XtCWindowDelay,
  710.     XtRCardinal,
  711.     sizeof(Cardinal),
  712.     XtOffsetOf(AppData, plot_window_delay),
  713.     XtRImmediate,
  714.     XtPointer(2000)
  715.     },
  716.  
  717.     {
  718.     XtNplotInitCommands,
  719.     XtCPlotInitCommands,
  720.     XtRString,
  721.     sizeof(String),
  722.     XtOffsetOf(AppData, plot_init_commands),
  723.     XtRString,
  724.     XtPointer("set parametric")
  725.     },
  726.  
  727.     {
  728.     XtNplot2dSettings,
  729.     XtCPlotSettings,
  730.     XtRString,
  731.     sizeof(String),
  732.     XtOffsetOf(AppData, plot_2d_settings),
  733.     XtRString,
  734.     XtPointer("")
  735.     },
  736.  
  737.     {
  738.     XtNplot3dSettings,
  739.     XtCPlotSettings,
  740.     XtRString,
  741.     sizeof(String),
  742.     XtOffsetOf(AppData, plot_3d_settings),
  743.     XtRString,
  744.     XtPointer("")
  745.     },
  746.  
  747.     {
  748.     XtNtermCommand,
  749.     XtCTermCommand,
  750.     XtRString,
  751.     sizeof(String),
  752.     XtOffsetOf(AppData, term_command),
  753.     XtRString,
  754.     XtPointer("xterm -e /bin/sh -c")
  755.     },
  756.  
  757.     {
  758.     XtNtermType,
  759.     XtCTermType,
  760.     XtRString,
  761.     sizeof(String),
  762.     XtOffsetOf(AppData, term_type),
  763.     XtRString,
  764.     XtPointer("xterm")
  765.    },
  766.  
  767.    {
  768.     XtNuseTTYCommand,
  769.     XtCUseTTYCommand,
  770.     XtRBoolean,
  771.     sizeof(Boolean),
  772.     XtOffsetOf(AppData, use_tty_command),
  773.     XtRImmediate,
  774.     XtPointer(False)
  775.     },
  776.  
  777.     {
  778.     XtNquestionTimeout,
  779.     XtCQuestionTimeout,
  780.     XmRInt,
  781.     sizeof(int),
  782.     XtOffsetOf(AppData, question_timeout),
  783.     XtRImmediate,
  784.     XtPointer(5)
  785.     },
  786.  
  787.     {
  788.     XtNpositionTimeout,
  789.     XtCPositionTimeout,
  790.     XmRInt,
  791.     sizeof(int),
  792.     XtOffsetOf(AppData, position_timeout),
  793.     XtRImmediate,
  794.     XtPointer(500)
  795.     },
  796.  
  797.     {
  798.     XtNdisplayTimeout,
  799.     XtCDisplayTimeout,
  800.     XmRInt,
  801.     sizeof(int),
  802.     XtOffsetOf(AppData, display_timeout),
  803.     XtRImmediate,
  804.     XtPointer(2000)
  805.     },
  806.  
  807.     {
  808.     XtNsynchronousDebugger,
  809.     XtCSynchronousDebugger,
  810.     XtRBoolean,
  811.     sizeof(Boolean),
  812.     XtOffsetOf(AppData, synchronous_gdb),
  813.     XtRImmediate,
  814.     XtPointer(False)
  815.     },
  816.  
  817.     {
  818.     XtNterminateOnEOF,
  819.     XtCTerminateOnEOF,
  820.     XtRBoolean,
  821.     sizeof(Boolean),
  822.     XtOffsetOf(AppData, terminate_on_eof),
  823.     XtRImmediate,
  824.     XtPointer(False)
  825.     },
  826.  
  827.     {
  828.     XtNpollChildStatus,
  829.     XtCPollChildStatus,
  830.     XtRBoolean,
  831.     sizeof(Boolean),
  832.     XtOffsetOf(AppData, poll_child_status),
  833.     XtRImmediate,
  834.     XtPointer(True)
  835.     },
  836.  
  837.     {
  838.         XtNdebuggerHost,
  839.     XtCDebuggerHost,
  840.     XtRString,
  841.     sizeof(String),
  842.     XtOffsetOf(AppData, debugger_host),
  843.     XtRString,
  844.     XtPointer("")
  845.     },
  846.  
  847.     {
  848.         XtNdebuggerHostLogin,
  849.     XtCDebuggerHostLogin,
  850.     XtRString,
  851.     sizeof(String),
  852.     XtOffsetOf(AppData, debugger_host_login),
  853.     XtRString,
  854.     XtPointer("")
  855.     },
  856.  
  857.     {
  858.         XtNrHostInitCommands,
  859.     XtCRHostInitCommands,
  860.     XtRString,
  861.     sizeof(String),
  862.     XtOffsetOf(AppData, rhost_init_commands),
  863.     XtRString,
  864.     XtPointer(STTY_COMMAND)
  865.     },
  866.  
  867.     {
  868.         XtNdebuggerRHost,
  869.     XtCDebuggerRHost,
  870.     XtRString,
  871.     sizeof(String),
  872.     XtOffsetOf(AppData, debugger_rhost),
  873.     XtRString,
  874.     XtPointer("")
  875.     },
  876.  
  877.     {
  878.         XtNrshCommand,
  879.     XtCRshCommand,
  880.     XtRString,
  881.     sizeof(String),
  882.     XtOffsetOf(AppData, rsh_command),
  883.     XtRString,
  884.     XtPointer("rsh")
  885.     },
  886.  
  887.     {
  888.     XtNfilterFiles,
  889.     XtCFilterFiles,
  890.     XtRBoolean,
  891.     sizeof(Boolean),
  892.     XtOffsetOf(AppData, filter_files),
  893.     XtRImmediate,
  894.     XtPointer(True)
  895.     },
  896.  
  897.     {
  898.         XtNlistExecCommand,
  899.     XtCListExecCommand,
  900.     XtRString,
  901.     sizeof(String),
  902.     XtOffsetOf(AppData, list_exec_command),
  903.     XtRString,
  904.     XtPointer("file @MASK@ | grep  '.*:.*exec.*' | cut -d: -f1")
  905.     },
  906.  
  907.     {
  908.         XtNlistSourceCommand,
  909.     XtCListSourceCommand,
  910.     XtRString,
  911.     sizeof(String),
  912.     XtOffsetOf(AppData, list_source_command),
  913.     XtRString,
  914.     XtPointer("file @MASK@ | grep '.*:.*text.*' | cut -d: -f1")
  915.     },
  916.  
  917.     {
  918.         XtNlistCoreCommand,
  919.     XtCListCoreCommand,
  920.     XtRString,
  921.     sizeof(String),
  922.     XtOffsetOf(AppData, list_core_command),
  923.     XtRString,
  924.     XtPointer("file @MASK@ | grep '.*:.*core.*' | cut -d: -f1")
  925.     },
  926.  
  927.     {
  928.         XtNlistDirCommand,
  929.     XtCListDirCommand,
  930.     XtRString,
  931.     sizeof(String),
  932.     XtOffsetOf(AppData, list_dir_command),
  933.     XtRString,
  934.     XtPointer("file @MASK@ | grep '.*:.*directory.*' | cut -d: -f1")
  935.     },
  936.  
  937.     {
  938.         XtNuncompressCommand,
  939.     XtCUncompressCommand,
  940.     XtRString,
  941.     sizeof(String),
  942.     XtOffsetOf(AppData, uncompress_command),
  943.     XtRString,
  944.     XtPointer("gzip -d -c")
  945.     },
  946.  
  947.     {
  948.         XtNpsCommand,
  949.     XtCPsCommand,
  950.     XtRString,
  951.     sizeof(String),
  952.     XtOffsetOf(AppData, ps_command),
  953.     XtRString,
  954.     XtPointer("ps")
  955.     },
  956.  
  957.     {
  958.         XtNwwwPage,
  959.     XtCWWWPage,
  960.     XtRString,
  961.     sizeof(String),
  962.     XtOffsetOf(AppData, www_page),
  963.     XtRString,
  964.     XtPointer("http://www.cs.tu-bs.de/softech/ddd/")
  965.     },
  966.  
  967.     {
  968.         XtNwwwCommand,
  969.     XtCWWWCommand,
  970.     XtRString,
  971.     sizeof(String),
  972.     XtOffsetOf(AppData, www_command),
  973.     XtRString,
  974.     XtPointer("netscape @URL@")
  975.     },
  976.  
  977.     {
  978.         XtNshowInvocation,
  979.     XtCShowInvocation,
  980.     XtRBoolean,
  981.     sizeof(Boolean),
  982.     XtOffsetOf(AppData, show_invocation),
  983.     XtRImmediate,
  984.     XtPointer(False)
  985.     },
  986.  
  987.     {
  988.         XtNshowVersion,
  989.     XtCShowVersion,
  990.     XtRBoolean,
  991.     sizeof(Boolean),
  992.     XtOffsetOf(AppData, show_version),
  993.     XtRImmediate,
  994.     XtPointer(False)
  995.     },
  996.  
  997.     {
  998.         XtNshowConfiguration,
  999.     XtCShowConfiguration,
  1000.     XtRBoolean,
  1001.     sizeof(Boolean),
  1002.     XtOffsetOf(AppData, show_configuration),
  1003.     XtRImmediate,
  1004.     XtPointer(False)
  1005.     },
  1006.  
  1007.     {
  1008.         XtNshowManual,
  1009.     XtCShowManual,
  1010.     XtRBoolean,
  1011.     sizeof(Boolean),
  1012.     XtOffsetOf(AppData, show_manual),
  1013.     XtRImmediate,
  1014.     XtPointer(False)
  1015.     },
  1016.  
  1017.     {
  1018.         XtNshowLicense,
  1019.     XtCShowLicense,
  1020.     XtRBoolean,
  1021.     sizeof(Boolean),
  1022.     XtOffsetOf(AppData, show_license),
  1023.     XtRImmediate,
  1024.     XtPointer(False)
  1025.     },
  1026.  
  1027.     {
  1028.         XtNshowNews,
  1029.     XtCShowNews,
  1030.     XtRBoolean,
  1031.     sizeof(Boolean),
  1032.     XtOffsetOf(AppData, show_news),
  1033.     XtRImmediate,
  1034.     XtPointer(False)
  1035.     },
  1036.  
  1037.     {
  1038.         XtNshowFonts,
  1039.     XtCShowFonts,
  1040.     XtRBoolean,
  1041.     sizeof(Boolean),
  1042.     XtOffsetOf(AppData, show_fonts),
  1043.     XtRImmediate,
  1044.     XtPointer(False)
  1045.     },
  1046.  
  1047.     {
  1048.         XtNcheckConfiguration,
  1049.     XtCCheckConfiguration,
  1050.     XtRBoolean,
  1051.     sizeof(Boolean),
  1052.     XtOffsetOf(AppData, check_configuration),
  1053.     XtRImmediate,
  1054.     XtPointer(False)
  1055.     },
  1056.  
  1057.     {
  1058.         XtNprintCommand,
  1059.     XtCPrintCommand,
  1060.     XtRString,
  1061.     sizeof(String),
  1062.     XtOffsetOf(AppData, print_command),
  1063.     XtRString,
  1064.     XtPointer("lp")
  1065.     },
  1066.  
  1067.     {
  1068.         XtNpaperSize,
  1069.     XtCPaperSize,
  1070.     XtRString,
  1071.     sizeof(String),
  1072.     XtOffsetOf(AppData, paper_size),
  1073.     XtRString,
  1074.     XtPointer("210mm x 297mm")
  1075.     },
  1076.  
  1077.     {
  1078.         XtNgetCoreCommand,
  1079.     XtCGetCoreCommand,
  1080.     XtRString,
  1081.     sizeof(String),
  1082.     XtOffsetOf(AppData, get_core_command),
  1083.     XtRString,
  1084.     XtPointer("")
  1085.     },
  1086.  
  1087.     {
  1088.         XtNeditCommand,
  1089.     XtCEditCommand,
  1090.     XtRString,
  1091.     sizeof(String),
  1092.     XtOffsetOf(AppData, edit_command),
  1093.     XtRString,
  1094.     XtPointer("xterm -e vi +@LINE@ @FILE@")
  1095.     },
  1096.  
  1097.     {
  1098.         XtNpannedGraphEditor,
  1099.     XtCPannedGraphEditor,
  1100.     XtRBoolean,
  1101.     sizeof(Boolean),
  1102.     XtOffsetOf(AppData, panned_graph_editor),
  1103.     XtRImmediate,
  1104.     XtPointer(False)
  1105.     },
  1106.  
  1107.     {
  1108.         XtNfindWordsOnly,
  1109.     XtCFindWordsOnly,
  1110.     XtRBoolean,
  1111.     sizeof(Boolean),
  1112.     XtOffsetOf(AppData, find_words_only),
  1113.     XtRImmediate,
  1114.     XtPointer(True)
  1115.     },
  1116.  
  1117.     {
  1118.         XtNfindCaseSensitive,
  1119.     XtCFindCaseSensitive,
  1120.     XtRBoolean,
  1121.     sizeof(Boolean),
  1122.     XtOffsetOf(AppData, find_case_sensitive),
  1123.     XtRImmediate,
  1124.     XtPointer(True)
  1125.     },
  1126.  
  1127.     {
  1128.     XtNgroupIconify,
  1129.     XtCGroupIconify,
  1130.     XtRBoolean,
  1131.     sizeof(Boolean),
  1132.     XtOffsetOf(AppData, group_iconify),
  1133.     XtRImmediate,
  1134.     XtPointer(False)
  1135.     },
  1136.  
  1137.     {
  1138.     XtNuniconifyWhenReady,
  1139.     XtCUniconifyWhenReady,
  1140.     XtRBoolean,
  1141.     sizeof(Boolean),
  1142.     XtOffsetOf(AppData, uniconify_when_ready),
  1143.     XtRImmediate,
  1144.     XtPointer(True)
  1145.     },
  1146.  
  1147.     {
  1148.     XtNtransientDialogs,
  1149.     XtCTransientDialogs,
  1150.     XtRBoolean,
  1151.     sizeof(Boolean),
  1152.     XtOffsetOf(AppData, transient_dialogs),
  1153.     XtRImmediate,
  1154.     XtPointer(True)
  1155.     },
  1156.  
  1157.     {
  1158.     XtNglobalTabCompletion,
  1159.     XtCGlobalTabCompletion,
  1160.     XtRBoolean,
  1161.     sizeof(Boolean),
  1162.     XtOffsetOf(AppData, global_tab_completion),
  1163.     XtRImmediate,
  1164.     XtPointer(False)
  1165.     },
  1166.  
  1167.     {
  1168.     XtNsaveHistoryOnExit,
  1169.     XtCSaveHistoryOnExit,
  1170.     XtRBoolean,
  1171.     sizeof(Boolean),
  1172.     XtOffsetOf(AppData, save_history_on_exit),
  1173.     XtRImmediate,
  1174.     XtPointer(True)
  1175.     },
  1176.  
  1177.     {
  1178.     XtNcacheSourceFiles,
  1179.     XtCCacheSourceFiles,
  1180.     XtRBoolean,
  1181.     sizeof(Boolean),
  1182.     XtOffsetOf(AppData, cache_source_files),
  1183.     XtRImmediate,
  1184.     XtPointer(True)
  1185.     },
  1186.  
  1187.     {
  1188.     XtNcacheMachineCode,
  1189.     XtCCacheMachineCode,
  1190.     XtRBoolean,
  1191.     sizeof(Boolean),
  1192.     XtOffsetOf(AppData, cache_machine_code),
  1193.     XtRImmediate,
  1194.     XtPointer(True)
  1195.     },
  1196.  
  1197.     {
  1198.     XtNsuppressWarnings,
  1199.     XtCSuppressWarnings,
  1200.     XtRBoolean,
  1201.     sizeof(Boolean),
  1202.     XtOffsetOf(AppData, suppress_warnings),
  1203.     XtRImmediate,
  1204.     XtPointer(False)
  1205.     },
  1206.  
  1207.     {
  1208.     XtNwarnIfLocked,
  1209.     XtCWarnIfLocked,
  1210.     XtRBoolean,
  1211.     sizeof(Boolean),
  1212.     XtOffsetOf(AppData, warn_if_locked),
  1213.     XtRImmediate,
  1214.     XtPointer(False)
  1215.     },
  1216.  
  1217.     {
  1218.     XtNcheckOptions,
  1219.     XtCCheckOptions,
  1220.     XtRCardinal,
  1221.     sizeof(Cardinal),
  1222.     XtOffsetOf(AppData, check_options),
  1223.     XtRImmediate,
  1224.     XtPointer(30)
  1225.     },
  1226.  
  1227.     {
  1228.     XtNttyMode,
  1229.     XtCTTYMode,
  1230.     XtRBoolean,
  1231.     sizeof(Boolean),
  1232.     XtOffsetOf(AppData, tty_mode),
  1233.     XtRImmediate,
  1234.     XtPointer(False)
  1235.     },
  1236.  
  1237.     {
  1238.     XtNblockTTYInput,
  1239.     XtCBlockTTYInput,
  1240.     XtROnOff,
  1241.     sizeof(OnOff),
  1242.     XtOffsetOf(AppData, block_tty_input),
  1243.     XmRImmediate,
  1244.     XtPointer(Auto)
  1245.     },
  1246.  
  1247.     {
  1248.     XtNfullNameMode,
  1249.     XtCTTYMode,
  1250.     XtRBoolean,
  1251.     sizeof(Boolean),
  1252.     XtOffsetOf(AppData, full_name_mode),
  1253.     XtRImmediate,
  1254.     XtPointer(False)
  1255.     },
  1256.  
  1257.     {
  1258.     XtNdisplayGlyphs,
  1259.     XtCDisplayGlyphs,
  1260.     XtRBoolean,
  1261.     sizeof(Boolean),
  1262.     XtOffsetOf(AppData, display_glyphs),
  1263.     XtRImmediate,
  1264.     XtPointer(True)
  1265.     },
  1266.  
  1267.     {
  1268.     XtNmaxGlyphs,
  1269.     XtCMaxGlyphs,
  1270.     XtRCardinal,
  1271.     sizeof(Cardinal),
  1272.     XtOffsetOf(AppData, max_glyphs),
  1273.     XtRImmediate,
  1274.     XtPointer(10)
  1275.     },
  1276.  
  1277.     {
  1278.     XtNcacheGlyphImages,
  1279.     XtCCacheGlyphImages,
  1280.     XtRBoolean,
  1281.     sizeof(Boolean),
  1282.     XtOffsetOf(AppData, cache_glyph_images),
  1283.     XtRImmediate,
  1284. #if defined(__linux__) && XmVersion >= 2001
  1285.     // Motif 2.1 on XFree86 servers has trouble with cached images.
  1286.     XtPointer(False)
  1287. #else
  1288.     XtPointer(True)
  1289. #endif
  1290.     },
  1291.  
  1292.     {
  1293.     XtNglyphUpdateDelay,
  1294.     XtCGlyphUpdateDelay,
  1295.     XtRCardinal,
  1296.     sizeof(Cardinal),
  1297.     XtOffsetOf(AppData, glyph_update_delay),
  1298.     XtRImmediate,
  1299.     XtPointer(10)
  1300.     },
  1301.  
  1302.     {
  1303.     XtNdisplayLineNumbers,
  1304.     XtCDisplayLineNumbers,
  1305.     XtRBoolean,
  1306.     sizeof(Boolean),
  1307.     XtOffsetOf(AppData, display_line_numbers),
  1308.     XtRImmediate,
  1309.     XtPointer(False)
  1310.     },
  1311.  
  1312.     {
  1313.     XtNdisassemble,
  1314.     XtCDisassemble,
  1315.     XtRBoolean,
  1316.     sizeof(Boolean),
  1317.     XtOffsetOf(AppData, disassemble),
  1318.     XtRImmediate,
  1319.     XtPointer(False)
  1320.     },
  1321.  
  1322.     {
  1323.     XtNmaxDisassemble,
  1324.     XtCMaxDisassemble,
  1325.     XtRCardinal,
  1326.     sizeof(Cardinal),
  1327.     XtOffsetOf(AppData, max_disassemble),
  1328.     XmRImmediate,
  1329.     XtPointer(1024)
  1330.     },
  1331.  
  1332.     {
  1333.     XtNuseSourcePath,
  1334.     XtCUseSourcePath,
  1335.     XtRBoolean,
  1336.     sizeof(Boolean),
  1337.     XtOffsetOf(AppData, use_source_path),
  1338.     XtRImmediate,
  1339.     XtPointer(False)
  1340.     },
  1341.  
  1342.     {
  1343.     XtNallRegisters,
  1344.     XtCAllRegisters,
  1345.     XtRBoolean,
  1346.     sizeof(Boolean),
  1347.     XtOffsetOf(AppData, all_registers),
  1348.     XtRImmediate,
  1349.     XtPointer(False)
  1350.     },
  1351.  
  1352.     {
  1353.     XtNbuttonTips,
  1354.     XtCTips,
  1355.     XtRBoolean,
  1356.     sizeof(Boolean),
  1357.     XtOffsetOf(AppData, button_tips),
  1358.     XtRImmediate,
  1359.     XtPointer(True)
  1360.     },
  1361.  
  1362.     {
  1363.     XtNvalueTips,
  1364.     XtCTips,
  1365.     XtRBoolean,
  1366.     sizeof(Boolean),
  1367.     XtOffsetOf(AppData, value_tips),
  1368.     XtRImmediate,
  1369.     XtPointer(True)
  1370.     },
  1371.  
  1372.     {
  1373.     XtNbuttonDocs,
  1374.     XtCDocs,
  1375.     XtRBoolean,
  1376.     sizeof(Boolean),
  1377.     XtOffsetOf(AppData, button_docs),
  1378.     XtRImmediate,
  1379.     XtPointer(True)
  1380.     },
  1381.  
  1382.     {
  1383.     XtNvalueDocs,
  1384.     XtCDocs,
  1385.     XtRBoolean,
  1386.     sizeof(Boolean),
  1387.     XtOffsetOf(AppData, value_docs),
  1388.     XtRImmediate,
  1389.     XtPointer(True)
  1390.     },
  1391.  
  1392.     {
  1393.     XtNstartupTips,
  1394.     XtCStartupTips,
  1395.     XtRBoolean,
  1396.     sizeof(Boolean),
  1397.     XtOffsetOf(AppData, startup_tips),
  1398.     XtRImmediate,
  1399.     XtPointer(True)
  1400.     },
  1401.  
  1402.     {
  1403.     XtNstartupTipCount,
  1404.     XtCStartupTipCount,
  1405.     XmRInt,
  1406.     sizeof(int),
  1407.     XtOffsetOf(AppData, startup_tip_count),
  1408.     XtRImmediate,
  1409.     XtPointer(1)
  1410.     },
  1411.  
  1412.     {
  1413.     XtNstatusAtBottom,
  1414.     XtCStatusAtBottom,
  1415.     XtRBoolean,
  1416.     sizeof(Boolean),
  1417.     XtOffsetOf(AppData, status_at_bottom),
  1418.     XtRImmediate,
  1419.     XtPointer(True)
  1420.     },
  1421.  
  1422.     {
  1423.     XtNtoolbarsAtBottom,
  1424.     XtCToolbarsAtBottom,
  1425.     XtRBoolean,
  1426.     sizeof(Boolean),
  1427.     XtOffsetOf(AppData, toolbars_at_bottom),
  1428.     XtRImmediate,
  1429.     XtPointer(True)
  1430.     },
  1431.  
  1432.     {
  1433.     XtNmaxDisplayTitleLength,
  1434.     XtCMaxLength,
  1435.     XtRCardinal,
  1436.     sizeof(Cardinal),
  1437.     XtOffsetOf(AppData, max_display_title_length),
  1438.     XmRImmediate,
  1439.     XtPointer(20)
  1440.     },
  1441.  
  1442.     {
  1443.     XtNmaxPopupExprLength,
  1444.     XtCMaxLength,
  1445.     XtRCardinal,
  1446.     sizeof(Cardinal),
  1447.     XtOffsetOf(AppData, max_popup_expr_length),
  1448.     XmRImmediate,
  1449.     XtPointer(20)
  1450.     },
  1451.  
  1452.     {
  1453.     XtNmaxValueTipLength,
  1454.     XtCMaxLength,
  1455.     XtRCardinal,
  1456.     sizeof(Cardinal),
  1457.     XtOffsetOf(AppData, max_value_tip_length),
  1458.     XmRImmediate,
  1459.     XtPointer(32)
  1460.     },
  1461.  
  1462.     {
  1463.     XtNmaxValueDocLength,
  1464.     XtCMaxLength,
  1465.     XtRCardinal,
  1466.     sizeof(Cardinal),
  1467.     XtOffsetOf(AppData, max_value_doc_length),
  1468.     XmRImmediate,
  1469.     XtPointer(128)
  1470.     },
  1471.  
  1472.     {
  1473.     XtNbuttonTipDelay,
  1474.     XtCTipDelay,
  1475.     XtRCardinal,
  1476.     sizeof(Cardinal),
  1477.     XtOffsetOf(AppData, button_tip_delay),
  1478.     XmRImmediate,
  1479.     XtPointer(750)
  1480.     },
  1481.  
  1482.     {
  1483.     XtNvalueTipDelay,
  1484.     XtCTipDelay,
  1485.     XtRCardinal,
  1486.     sizeof(Cardinal),
  1487.     XtOffsetOf(AppData, value_tip_delay),
  1488.     XmRImmediate,
  1489.     XtPointer(750)
  1490.     },
  1491.  
  1492.     {
  1493.     XtNbuttonDocDelay,
  1494.     XtCDocDelay,
  1495.     XtRCardinal,
  1496.     sizeof(Cardinal),
  1497.     XtOffsetOf(AppData, button_doc_delay),
  1498.     XmRImmediate,
  1499.     XtPointer(0)
  1500.     },
  1501.  
  1502.     {
  1503.     XtNvalueDocDelay,
  1504.     XtCDocDelay,
  1505.     XtRCardinal,
  1506.     sizeof(Cardinal),
  1507.     XtOffsetOf(AppData, value_doc_delay),
  1508.     XmRImmediate,
  1509.     XtPointer(0)
  1510.     },
  1511.  
  1512.     {
  1513.     XtNclearDocDelay,
  1514.     XtCClearDelay,
  1515.     XtRCardinal,
  1516.     sizeof(Cardinal),
  1517.     XtOffsetOf(AppData, clear_doc_delay),
  1518.     XmRImmediate,
  1519.     XtPointer(1000)
  1520.     },
  1521.  
  1522.     {
  1523.     XtNclearTipDelay,
  1524.     XtCClearDelay,
  1525.     XtRCardinal,
  1526.     sizeof(Cardinal),
  1527.     XtOffsetOf(AppData, clear_tip_delay),
  1528.     XmRImmediate,
  1529.     XtPointer(50)
  1530.     },
  1531.  
  1532.     {
  1533.     XtNblinkWhileBusy,
  1534.     XtCBlinkWhileBusy,
  1535.     XmRBoolean,
  1536.     sizeof(Boolean),
  1537.     XtOffsetOf(AppData, blink_while_busy),
  1538.     XmRImmediate,
  1539.     XtPointer(True)
  1540.     },
  1541.  
  1542.     {
  1543.     XtNbusyBlinkRate,
  1544.     XmCBlinkRate,
  1545.     XtRCardinal,
  1546.     sizeof(Cardinal),
  1547.     XtOffsetOf(AppData, busy_blink_rate),
  1548.     XmRImmediate,
  1549.     XtPointer(500)
  1550.     },
  1551.  
  1552.     {
  1553.     XtNcheckGrabs,
  1554.     XtCCheckGrabs,
  1555.     XmRBoolean,
  1556.     sizeof(Boolean),
  1557.     XtOffsetOf(AppData, check_grabs),
  1558.     XmRImmediate,
  1559.     XtPointer(True)
  1560.     },
  1561.  
  1562.     {
  1563.     XtNcheckGrabDelay,
  1564.     XtCCheckGrabDelay,
  1565.     XtRCardinal,
  1566.     sizeof(Cardinal),
  1567.     XtOffsetOf(AppData, check_grab_delay),
  1568.     XmRImmediate,
  1569.     XtPointer(5000)
  1570.     },
  1571.  
  1572.     {
  1573.     XtNgrabActionDelay,
  1574.     XtCGrabActionDelay,
  1575.     XtRCardinal,
  1576.     sizeof(Cardinal),
  1577.     XtOffsetOf(AppData, grab_action_delay),
  1578.     XmRImmediate,
  1579.     XtPointer(10000)
  1580.     },
  1581.  
  1582.     {
  1583.     XtNgrabAction,
  1584.     XtCGrabAction,
  1585.     XtRString,
  1586.     sizeof(String),
  1587.     XtOffsetOf(AppData, grab_action),
  1588.     XmRImmediate,
  1589.     XtPointer("cont")
  1590.     },
  1591.  
  1592.     {
  1593.     XtNdetectAliases,
  1594.     XtCDetectAliases,
  1595.     XmRBoolean,
  1596.     sizeof(Boolean),
  1597.     XtOffsetOf(AppData, detect_aliases),
  1598.     XmRImmediate,
  1599.     XtPointer(False)
  1600.     },
  1601.  
  1602.     {
  1603.     XtNtypedAliases,
  1604.     XtCTypedAliases,
  1605.     XmRBoolean,
  1606.     sizeof(Boolean),
  1607.     XtOffsetOf(AppData, typed_aliases),
  1608.     XmRImmediate,
  1609.     XtPointer(True)
  1610.     },
  1611.  
  1612.     {
  1613.     XtNdeleteAliasDisplays,
  1614.     XtCDeleteAliasDisplays,
  1615.     XmRBoolean,
  1616.     sizeof(Boolean),
  1617.     XtOffsetOf(AppData, delete_alias_displays),
  1618.     XmRImmediate,
  1619.     XtPointer(True)
  1620.     },
  1621.  
  1622.     {
  1623.     XtNalign2dArrays,
  1624.     XtCAlign2dArrays,
  1625.     XmRBoolean,
  1626.     sizeof(Boolean),
  1627.     XtOffsetOf(AppData, align_2d_arrays),
  1628.     XmRImmediate,
  1629.     XtPointer(True)
  1630.     },
  1631.  
  1632.     {
  1633.     XtNexpandRepeatedValues,
  1634.     XtCExpandRepeatedValues,
  1635.     XmRBoolean,
  1636.     sizeof(Boolean),
  1637.     XtOffsetOf(AppData, expand_repeated_values),
  1638.     XmRImmediate,
  1639.     XtPointer(False)
  1640.     },
  1641.  
  1642.     {
  1643.     XtNbumpDisplays,
  1644.     XtCBumpDisplays,
  1645.     XmRBoolean,
  1646.     sizeof(Boolean),
  1647.     XtOffsetOf(AppData, bump_displays),
  1648.     XmRImmediate,
  1649.     XtPointer(True)
  1650.     },
  1651.  
  1652.     {
  1653.     XtNhideInactiveDisplays,
  1654.     XtCHideInactiveDisplays,
  1655.     XmRBoolean,
  1656.     sizeof(Boolean),
  1657.     XtOffsetOf(AppData, hide_inactive_displays),
  1658.     XmRImmediate,
  1659.     XtPointer(True)
  1660.     },
  1661.  
  1662.     {
  1663.     XtNshowBaseDisplayTitles,
  1664.     XtCShowDisplayTitles,
  1665.     XmRBoolean,
  1666.     sizeof(Boolean),
  1667.     XtOffsetOf(AppData, show_base_display_titles),
  1668.     XmRImmediate,
  1669.     XtPointer(True)
  1670.     },
  1671.  
  1672.     {
  1673.     XtNshowDependentDisplayTitles,
  1674.     XtCShowDisplayTitles,
  1675.     XmRBoolean,
  1676.     sizeof(Boolean),
  1677.     XtOffsetOf(AppData, show_dependent_display_titles),
  1678.     XmRImmediate,
  1679.     XtPointer(True)
  1680.     },
  1681.  
  1682.     {
  1683.     XtNclusterDisplays,
  1684.     XtCClusterDisplays,
  1685.     XmRBoolean,
  1686.     sizeof(Boolean),
  1687.     XtOffsetOf(AppData, cluster_displays),
  1688.     XmRImmediate,
  1689.     XtPointer(False)
  1690.     },
  1691.  
  1692.     {
  1693.     XtNstatusHistorySize,
  1694.     XtCHistorySize,
  1695.     XtRCardinal,
  1696.     sizeof(Cardinal),
  1697.     XtOffsetOf(AppData, status_history_size),
  1698.     XmRImmediate,
  1699.     XtPointer(10)
  1700.     },
  1701.  
  1702.     {
  1703.     XtNpopdownHistorySize,
  1704.     XtCHistorySize,
  1705.     XtRCardinal,
  1706.     sizeof(Cardinal),
  1707.     XtOffsetOf(AppData, popdown_history_size),
  1708.     XmRImmediate,
  1709.     XtPointer(0)
  1710.     },
  1711.  
  1712.     {
  1713.     XtNsortPopdownHistory,
  1714.     XtCSortPopdownHistory,
  1715.     XtRBoolean,
  1716.     sizeof(Boolean),
  1717.     XtOffsetOf(AppData, sort_popdown_history),
  1718.     XmRImmediate,
  1719.     XtPointer(True)
  1720.     },
  1721.  
  1722.     {
  1723.     XtNverifyButtons,
  1724.     XtCVerifyButtons,
  1725.     XmRBoolean,
  1726.     sizeof(Boolean),
  1727.     XtOffsetOf(AppData, verify_buttons),
  1728.     XmRImmediate,
  1729.     XtPointer(True)
  1730.     },
  1731.  
  1732.     {
  1733.     XtNautoRaiseTool,
  1734.     XtCAutoRaiseTool,
  1735.     XmRBoolean,
  1736.     sizeof(Boolean),
  1737.     XtOffsetOf(AppData, auto_raise_tool),
  1738.     XmRImmediate,
  1739.     XtPointer(True)
  1740.     },
  1741.  
  1742.     {
  1743.     XtNdecorateTool,
  1744.     XtCDecorate,
  1745.     XtROnOff,
  1746.     sizeof(OnOff),
  1747.     XtOffsetOf(AppData, decorate_tool),
  1748.     XmRImmediate,
  1749.     XtPointer(Auto)
  1750.     },
  1751.  
  1752.     {
  1753.     XtNstickyTool,
  1754.     XtCStickyTool,
  1755.     XmRBoolean,
  1756.     sizeof(Boolean),
  1757.     XtOffsetOf(AppData, sticky_tool),
  1758.     XmRImmediate,
  1759.     XtPointer(True)
  1760.     },
  1761.  
  1762.     {
  1763.     XtNtoolRightOffset,
  1764.     XtCToolOffset,
  1765.     XmRPosition,
  1766.     sizeof(Position),
  1767.     XtOffsetOf(AppData, tool_right_offset),
  1768.     XmRImmediate,
  1769.     XtPointer(8)
  1770.     },
  1771.  
  1772.     {
  1773.     XtNtoolTopOffset,
  1774.     XtCToolOffset,
  1775.     XmRPosition,
  1776.     sizeof(Position),
  1777.     XtOffsetOf(AppData, tool_top_offset),
  1778.     XmRImmediate,
  1779.     XtPointer(8)
  1780.     },
  1781.  
  1782.     {
  1783.     XtNbuttonCaptions,
  1784.     XtCButtonCaptions,
  1785.     XmRBoolean,
  1786.     sizeof(Boolean),
  1787.     XtOffsetOf(AppData, button_captions),
  1788.     XmRImmediate,
  1789.     XtPointer(True)
  1790.     },
  1791.  
  1792.     {
  1793.     XtNbuttonImages,
  1794.     XtCButtonImages,
  1795.     XmRBoolean,
  1796.     sizeof(Boolean),
  1797.     XtOffsetOf(AppData, button_images),
  1798.     XmRImmediate,
  1799.     XtPointer(True)
  1800.     },
  1801.  
  1802.     {
  1803.     XtNbuttonCaptionGeometry,
  1804.     XtCButtonCaptionGeometry,
  1805.     XmRString,
  1806.     sizeof(String),
  1807.     XtOffsetOf(AppData, button_caption_geometry),
  1808.     XmRImmediate,
  1809.     XtPointer("29x7+0-0")
  1810.     },
  1811.  
  1812.     {
  1813.     XtNbuttonImageGeometry,
  1814.     XtCButtonImageGeometry,
  1815.     XmRString,
  1816.     sizeof(String),
  1817.     XtOffsetOf(AppData, button_image_geometry),
  1818.     XmRImmediate,
  1819.     XtPointer("21x17+4+0")
  1820.     },
  1821.  
  1822.     {
  1823.     XtNflatToolbarButtons,
  1824.     XtCFlatButtons,
  1825.     XmRBoolean,
  1826.     sizeof(Boolean),
  1827.     XtOffsetOf(AppData, flat_toolbar_buttons),
  1828.     XmRImmediate,
  1829.     XtPointer(True)
  1830.     },
  1831.  
  1832.     {
  1833.     XtNflatDialogButtons,
  1834.     XtCFlatButtons,
  1835.     XmRBoolean,
  1836.     sizeof(Boolean),
  1837.     XtOffsetOf(AppData, flat_dialog_buttons),
  1838.     XmRImmediate,
  1839.     XtPointer(False)
  1840.     },
  1841.  
  1842.     {
  1843.     XtNbuttonColorKey,
  1844.     XtCColorKey,
  1845.     XtRString,
  1846.     sizeof(String),
  1847.     XtOffsetOf(AppData, button_color_key),
  1848.     XtRString,
  1849.     XtPointer("g")
  1850.     },
  1851.  
  1852.     {
  1853.     XtNactiveButtonColorKey,
  1854.     XtCColorKey,
  1855.     XtRString,
  1856.     sizeof(String),
  1857.     XtOffsetOf(AppData, active_button_color_key),
  1858.     XtRString,
  1859.     XtPointer("c")
  1860.     },
  1861.  
  1862.     {
  1863.     XtNsplashScreenColorKey,
  1864.     XtCColorKey,
  1865.     XtRString,
  1866.     sizeof(String),
  1867.     XtOffsetOf(AppData, splash_screen_color_key),
  1868.     XtRString,
  1869.     XtPointer("c")
  1870.     },
  1871.  
  1872.     {
  1873.     XtNautoCommands,
  1874.     XtCAutoCommands,
  1875.     XmRBoolean,
  1876.     sizeof(Boolean),
  1877.     XtOffsetOf(AppData, auto_commands),
  1878.     XmRImmediate,
  1879.     XtPointer(False)
  1880.     },
  1881.  
  1882.     {
  1883.     XtNautoCommandPrefix,
  1884.     XtCAutoCommandPrefix,
  1885.     XtRString,
  1886.     sizeof(String),
  1887.     XtOffsetOf(AppData, auto_command_prefix),
  1888.     XtRString,
  1889.     XtPointer(ddd_NAME ": ")
  1890.     },
  1891.  
  1892.     {
  1893.     XtNmaxBreakpointNumber,
  1894.     XtCMaxNumber,
  1895.     XmRInt,
  1896.     sizeof(int),
  1897.     XtOffsetOf(AppData, max_breakpoint_number),
  1898.     XmRImmediate,
  1899.     XtPointer(99)
  1900.     },
  1901.  
  1902.     {
  1903.     XtNmaxDisplayNumber,
  1904.     XtCMaxNumber,
  1905.     XmRInt,
  1906.     sizeof(int),
  1907.     XtOffsetOf(AppData, max_display_number),
  1908.     XmRImmediate,
  1909.     XtPointer(99)
  1910.     },
  1911.  
  1912.     {
  1913.     XtNsplashScreen,
  1914.     XtCSplashScreen,
  1915.     XmRBoolean,
  1916.     sizeof(Boolean),
  1917.     XtOffsetOf(AppData, splash_screen),
  1918.     XmRImmediate,
  1919.     XtPointer(True)
  1920.     },
  1921.  
  1922.     {
  1923.     XtNcolorWMIcons,
  1924.     XtCColorWMIcons,
  1925.     XmRBoolean,
  1926.     sizeof(Boolean),
  1927.     XtOffsetOf(AppData, color_wm_icons),
  1928.     XmRImmediate,
  1929.     XtPointer(True)
  1930.     },
  1931.  
  1932.     {
  1933.     XtNcutCopyPasteBindings,
  1934.     XtCBindingStyle,
  1935.     XtRBindingStyle,
  1936.     sizeof(BindingStyle),
  1937.     XtOffsetOf(AppData, cut_copy_paste_bindings),
  1938.     XmRImmediate,
  1939.     XtPointer(KDEBindings)
  1940.     },
  1941.  
  1942.     {
  1943.     XtNselectAllBindings,
  1944.     XtCBindingStyle,
  1945.     XtRBindingStyle,
  1946.     sizeof(BindingStyle),
  1947.     XtOffsetOf(AppData, select_all_bindings),
  1948.     XmRImmediate,
  1949.     XtPointer(KDEBindings)
  1950.     },
  1951.  
  1952.     {
  1953.     XtNmaxUndoDepth,
  1954.     XtCMaxUndoDepth,
  1955.     XmRInt,
  1956.     sizeof(int),
  1957.     XtOffsetOf(AppData, max_undo_depth),
  1958.     XmRImmediate,
  1959.     XtPointer(-1)
  1960.     },
  1961.  
  1962.     {
  1963.     XtNmaxUndoSize,
  1964.     XtCMaxUndoSize,
  1965.     XmRInt,
  1966.     sizeof(int),
  1967.     XtOffsetOf(AppData, max_undo_size),
  1968.     XmRImmediate,
  1969.     XtPointer(2000000)
  1970.     },
  1971.  
  1972.     {
  1973.     XtNmaintenance,
  1974.     XtCMaintenance,
  1975.     XmRBoolean,
  1976.     sizeof(Boolean),
  1977.     XtOffsetOf(AppData, maintenance),
  1978.     XmRImmediate,
  1979.     XtPointer(False)
  1980.     },
  1981.  
  1982.     {
  1983.     XtNdumpCore,
  1984.     XtCDumpCore,
  1985.     XmRBoolean,
  1986.     sizeof(Boolean),
  1987.     XtOffsetOf(AppData, dump_core),
  1988.     XmRImmediate,
  1989.     XtPointer(True)
  1990.     },
  1991.  
  1992.     {
  1993.     XtNdebugCoreDumps,
  1994.     XtCDebugCoreDumps,
  1995.     XmRBoolean,
  1996.     sizeof(Boolean),
  1997.     XtOffsetOf(AppData, debug_core_dumps),
  1998.     XmRImmediate,
  1999.     XtPointer(False)
  2000.     },
  2001.  
  2002.     {
  2003.     XtNlessTifVersion,
  2004.     XtCLessTifVersion,
  2005.     XmRInt,
  2006.     sizeof(int),
  2007.     XtOffsetOf(AppData, lesstif_version),
  2008.     XmRImmediate,
  2009. #if !defined(LesstifVersion)
  2010.     XtPointer(1000)        // Treat OSF/Motif like LessTif 1.0
  2011. #else
  2012.     XtPointer(LesstifVersion)
  2013. #endif
  2014.     },
  2015.  
  2016.     {
  2017.     XtNdddinitVersion,
  2018.     XtCVersion,
  2019.     XtRString,
  2020.     sizeof(String),
  2021.     XtOffsetOf(AppData, dddinit_version),
  2022.     XtRString,
  2023.     XtPointer(0)
  2024.     },
  2025.  
  2026.     {
  2027.     XtNappDefaultsVersion,
  2028.     XtCVersion,
  2029.     XtRString,
  2030.     sizeof(String),
  2031.     XtOffsetOf(AppData, app_defaults_version),
  2032.     XtRString,
  2033.     XtPointer(0)
  2034.     }
  2035. };
  2036.  
  2037. const int ddd_resources_size = XtNumber(ddd_resources);
  2038.  
  2039. // Application resources
  2040. AppData app_data;
  2041.  
  2042. // Make sure APP_DATA is initialized with above default values
  2043. struct AppDataInitializer {
  2044.     AppDataInitializer();
  2045. } app_data_initializer;
  2046.  
  2047.  
  2048. // Copy the SIZE bytes at FROM into the SIZE bytes at DEST, even if
  2049. // those two blocks of space overlap.  In the case of overlap, be
  2050. // careful to copy the original values of the bytes in the block at
  2051. // SRC, including those bytes which also belong to the block at DEST.
  2052. static void copy(char *dest, char *src, Cardinal size)
  2053. {
  2054.     // This is taken from libiberty's bcopy().
  2055.     if (dest < src)
  2056.     while (size--)
  2057.         *dest++ = *src++;
  2058.     else
  2059.     {
  2060.     char *lasts = src + (size - 1);
  2061.     char *lastd = dest + (size - 1);
  2062.     while (size--)
  2063.         *(char *)lastd-- = *(char *)lasts--;
  2064.     }
  2065. }
  2066.  
  2067. // Copy the value at SRC of size SIZE to the value at DEST.
  2068. static void CopyArg(XtPointer src, XtPointer dest, Cardinal size)
  2069. {
  2070.     // This stuff is taken from Xt11R6.3 _XtCopyArg().  I hope it
  2071.     // gets all possible conversions right...
  2072.  
  2073.     if (size > sizeof(XtArgVal))
  2074.     {
  2075.     copy((char *)dest, (char *)src, size);
  2076.     }
  2077.     else 
  2078.     {
  2079.     union {
  2080.         long longval;
  2081.         int intval;
  2082.         short shortval;
  2083.         char charval;
  2084.         char* charptr;
  2085.         XtPointer ptr;
  2086.     } u;
  2087.     char *p = (char*)&u;
  2088.     if (size == sizeof(long))
  2089.         u.longval = (long)src;
  2090.     else if (size == sizeof(int))
  2091.         u.intval = (int)(long)src;
  2092.     else if (size == sizeof(short))
  2093.         u.shortval = (short)(long)src;
  2094.     else if (size == sizeof(char))
  2095.         u.charval = (char)(long)src;
  2096.     else if (size == sizeof(XtPointer))
  2097.         u.ptr = (XtPointer)src;
  2098.     else if (size == sizeof(char*))
  2099.         u.charptr = (char*)src;
  2100.     else
  2101.         p = (char*)&src;
  2102.  
  2103.     copy((char *)dest, (char *)p, size);
  2104.     }
  2105. }
  2106.  
  2107.  
  2108. // This constructor is invoked before program start
  2109. AppDataInitializer::AppDataInitializer()
  2110. {
  2111.     // Copy resources to appropriate fields in APP_DATA
  2112.     for (int i = 0; i < int(ddd_resources_size); i++)
  2113.     {
  2114.     XtResource& res = ddd_resources[i];
  2115.     XtPointer src = res.default_addr;
  2116.     XtPointer dest = ((char *)&app_data) + res.resource_offset;
  2117.     Cardinal size = res.resource_size;
  2118.  
  2119.     CopyArg(src, dest, size);
  2120.     }
  2121. }
  2122.  
  2123. // Fallback resources
  2124. String ddd_fallback_resources[] = {
  2125. #if WITH_BUILTIN_APP_DEFAULTS
  2126. #include "Ddd.ad.h"
  2127. #endif
  2128. 0                // Terminating NULL
  2129. };
  2130.  
  2131. // Return a database of default settings
  2132. XrmDatabase app_defaults(Display *display)
  2133. {
  2134.     static XrmDatabase db = NULL;
  2135.     if (db != NULL)
  2136.     return db;
  2137.  
  2138.     // Add builtin fallback defaults.
  2139.     int i = 0;
  2140.     while (ddd_fallback_resources[i] != 0)
  2141.     XrmPutLineResource(&db, ddd_fallback_resources[i++]);
  2142.  
  2143.     // Add app-defaults file, overriding fallback defaults.
  2144.     static String app_name  = 0;
  2145.     static String app_class = 0;
  2146.  
  2147.     if (app_name == 0)
  2148.     XtGetApplicationNameAndClass(display, &app_name, &app_class);
  2149.  
  2150.     String app_defaults_file = 
  2151.     XtResolvePathname(display, NULL, app_class, NULL, NULL, NULL, 0, NULL);
  2152.     if (app_defaults_file != NULL)
  2153.     {
  2154.     XrmDatabase db2 = XrmGetFileDatabase(app_defaults_file);
  2155.     if (db2 != 0)
  2156.         XrmMergeDatabases(db2, &db);
  2157.     }
  2158.  
  2159.     return db;
  2160. }
  2161.