home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / x / volume10 / contool / part06 / contool_ui.c
C/C++ Source or Header  |  1990-10-30  |  40KB  |  1,891 lines

  1. /*
  2.  * contool_ui.c - User interface object initialization functions.
  3.  * This file was generated by `gxv' from `contool.G'.
  4.  * DO NOT EDIT BY HAND.
  5.  */
  6.  
  7. #include <stdio.h>
  8. #include <sys/param.h>
  9. #include <sys/types.h>
  10. #include <xview/xview.h>
  11. #include <xview/canvas.h>
  12. #include <xview/icon_load.h>
  13. #include <xview/panel.h>
  14. #include <xview/scrollbar.h>
  15. #include <xview/svrimage.h>
  16. #include <xview/termsw.h>
  17. #include <xview/text.h>
  18. #include <xview/tty.h>
  19. #include <xview/xv_xrect.h>
  20. #include "contool_ui.h"
  21.  
  22. /*
  23.  * Create object `file_menu' in the specified instance.
  24.  
  25.  */
  26. Xv_opaque
  27. contool_file_menu_create(ip, owner)
  28.     caddr_t        *ip;
  29.     Xv_opaque    owner;
  30. {
  31.     extern Menu_item    popup_load_config();
  32.     extern Menu_item    popup_save_config();
  33.     extern Menu_item    start_logging();
  34.     extern Menu_item    stop_logging();
  35.     extern Menu_item    print_messages();
  36.     Xv_opaque    obj;
  37.     
  38.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  39.         XV_KEY_DATA, INSTANCE, ip,
  40.         MENU_ITEM,
  41.             XV_KEY_DATA, INSTANCE, ip,
  42.             MENU_STRING, "Load Configuration...",
  43.             MENU_GEN_PROC, popup_load_config,
  44.             NULL,
  45.         MENU_ITEM,
  46.             XV_KEY_DATA, INSTANCE, ip,
  47.             MENU_STRING, "Save Configuration...",
  48.             MENU_GEN_PROC, popup_save_config,
  49.             NULL,
  50.         MENU_ITEM,
  51.             XV_KEY_DATA, INSTANCE, ip,
  52.             MENU_STRING, "Start Logging",
  53.             MENU_GEN_PROC, start_logging,
  54.             NULL,
  55.         MENU_ITEM,
  56.             XV_KEY_DATA, INSTANCE, ip,
  57.             MENU_STRING, "Stop Logging",
  58.             MENU_GEN_PROC, stop_logging,
  59.             NULL,
  60.         MENU_ITEM,
  61.             XV_KEY_DATA, INSTANCE, ip,
  62.             MENU_STRING, "Print",
  63.             MENU_GEN_PROC, print_messages,
  64.             NULL,
  65.         MENU_DEFAULT, 2,
  66.         MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "File",
  67.         NULL);
  68.     return obj;
  69. }
  70.  
  71. /*
  72.  * Create object `view_menu' in the specified instance.
  73.  
  74.  */
  75. Xv_opaque
  76. contool_view_menu_create(ip, owner)
  77.     caddr_t        *ip;
  78.     Xv_opaque    owner;
  79. {
  80.     extern Menu_item    become_console();
  81.     extern Menu_item    clear_messages();
  82.     extern Menu_item    reset_filter();
  83.     Xv_opaque    obj;
  84.     
  85.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  86.         XV_KEY_DATA, INSTANCE, ip,
  87.         MENU_ITEM,
  88.             XV_KEY_DATA, INSTANCE, ip,
  89.             MENU_STRING, "Become Console",
  90.             MENU_GEN_PROC, become_console,
  91.             NULL,
  92.         MENU_ITEM,
  93.             XV_KEY_DATA, INSTANCE, ip,
  94.             MENU_STRING, "Clear Messages",
  95.             MENU_GEN_PROC, clear_messages,
  96.             NULL,
  97.         MENU_ITEM,
  98.             XV_KEY_DATA, INSTANCE, ip,
  99.             MENU_STRING, "Reset Filter",
  100.             MENU_GEN_PROC, reset_filter,
  101.             NULL,
  102.         MENU_DEFAULT, 2,
  103.         MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "View",
  104.         NULL);
  105.     return obj;
  106. }
  107.  
  108. /*
  109.  * Create object `edit_menu' in the specified instance.
  110.  
  111.  */
  112. Xv_opaque
  113. contool_edit_menu_create(ip, owner)
  114.     caddr_t        *ip;
  115.     Xv_opaque    owner;
  116. {
  117.     extern Menu_item    edit_filters();
  118.     extern Menu_item    edit_properties();
  119.     Xv_opaque    obj;
  120.     
  121.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  122.         XV_KEY_DATA, INSTANCE, ip,
  123.         MENU_ITEM,
  124.             XV_KEY_DATA, INSTANCE, ip,
  125.             MENU_STRING, "Filters...",
  126.             MENU_GEN_PROC, edit_filters,
  127.             NULL,
  128.         MENU_ITEM,
  129.             XV_KEY_DATA, INSTANCE, ip,
  130.             MENU_STRING, "Properties...",
  131.             MENU_GEN_PROC, edit_properties,
  132.             NULL,
  133.         MENU_DEFAULT, 2,
  134.         MENU_GEN_PIN_WINDOW, (Xv_opaque) ip[0], "Edit",
  135.         NULL);
  136.     return obj;
  137. }
  138.  
  139. /*
  140.  * Create object `filter_insert_menu' in the specified instance.
  141.  
  142.  */
  143. Xv_opaque
  144. contool_filter_insert_menu_create(ip, owner)
  145.     caddr_t        *ip;
  146.     Xv_opaque    owner;
  147. {
  148.     extern Menu        filter_insert_handler();
  149.     extern Menu_item    insert_at_top();
  150.     extern Menu_item    insert_above();
  151.     extern Menu_item    insert_below();
  152.     extern Menu_item    insert_at_bottom();
  153.     Xv_opaque    obj;
  154.     
  155.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  156.         XV_KEY_DATA, INSTANCE, ip,
  157.         MENU_GEN_PROC, filter_insert_handler,
  158.         MENU_ITEM,
  159.             XV_KEY_DATA, INSTANCE, ip,
  160.             MENU_STRING, "At top",
  161.             MENU_GEN_PROC, insert_at_top,
  162.             NULL,
  163.         MENU_ITEM,
  164.             XV_KEY_DATA, INSTANCE, ip,
  165.             MENU_STRING, "Above selection",
  166.             MENU_GEN_PROC, insert_above,
  167.             NULL,
  168.         MENU_ITEM,
  169.             XV_KEY_DATA, INSTANCE, ip,
  170.             MENU_STRING, "Below selection",
  171.             MENU_GEN_PROC, insert_below,
  172.             NULL,
  173.         MENU_ITEM,
  174.             XV_KEY_DATA, INSTANCE, ip,
  175.             MENU_STRING, "At bottom",
  176.             MENU_GEN_PROC, insert_at_bottom,
  177.             NULL,
  178.         MENU_DEFAULT, 4,
  179.         NULL);
  180.     return obj;
  181. }
  182.  
  183. /*
  184.  * Create object `filter_edit_menu' in the specified instance.
  185.  
  186.  */
  187. Xv_opaque
  188. contool_filter_edit_menu_create(ip, owner)
  189.     caddr_t        *ip;
  190.     Xv_opaque    owner;
  191. {
  192.     extern Menu        filter_edit_handler();
  193.     extern Menu_item    filter_cut();
  194.     extern Menu_item    filter_copy();
  195.     extern Menu_item    filter_paste();
  196.     extern Menu_item    filter_delete();
  197.     Xv_opaque    obj;
  198.     
  199.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  200.         XV_KEY_DATA, INSTANCE, ip,
  201.         MENU_GEN_PROC, filter_edit_handler,
  202.         MENU_ITEM,
  203.             XV_KEY_DATA, INSTANCE, ip,
  204.             MENU_STRING, "Cut",
  205.             MENU_GEN_PROC, filter_cut,
  206.             NULL,
  207.         MENU_ITEM,
  208.             XV_KEY_DATA, INSTANCE, ip,
  209.             MENU_STRING, "Copy",
  210.             MENU_GEN_PROC, filter_copy,
  211.             NULL,
  212.         MENU_ITEM,
  213.             XV_KEY_DATA, INSTANCE, ip,
  214.             MENU_STRING, "Paste",
  215.             MENU_GEN_PROC, filter_paste,
  216.             MENU_PULLRIGHT, contool_filter_paste_menu_create(ip, NULL),
  217.             NULL,
  218.         MENU_ITEM,
  219.             XV_KEY_DATA, INSTANCE, ip,
  220.             MENU_STRING, "Delete",
  221.             MENU_GEN_PROC, filter_delete,
  222.             NULL,
  223.         MENU_DEFAULT, 1,
  224.         NULL);
  225.     return obj;
  226. }
  227.  
  228. /*
  229.  * Create object `filter_paste_menu' in the specified instance.
  230.  
  231.  */
  232. Xv_opaque
  233. contool_filter_paste_menu_create(ip, owner)
  234.     caddr_t        *ip;
  235.     Xv_opaque    owner;
  236. {
  237.     extern Menu_item    paste_at_top();
  238.     extern Menu_item    paste_above();
  239.     extern Menu_item    paste_below();
  240.     extern Menu_item    paste_at_bottom();
  241.     Xv_opaque    obj;
  242.     
  243.     obj = xv_create(XV_NULL, MENU_COMMAND_MENU,
  244.         XV_KEY_DATA, INSTANCE, ip,
  245.         MENU_ITEM,
  246.             XV_KEY_DATA, INSTANCE, ip,
  247.             MENU_STRING, "At top",
  248.             MENU_GEN_PROC, paste_at_top,
  249.             NULL,
  250.         MENU_ITEM,
  251.             XV_KEY_DATA, INSTANCE, ip,
  252.             MENU_STRING, "Above selection",
  253.             MENU_GEN_PROC, paste_above,
  254.             NULL,
  255.         MENU_ITEM,
  256.             XV_KEY_DATA, INSTANCE, ip,
  257.             MENU_STRING, "Below selection",
  258.             MENU_GEN_PROC, paste_below,
  259.             NULL,
  260.         MENU_ITEM,
  261.             XV_KEY_DATA, INSTANCE, ip,
  262.             MENU_STRING, "At bottom",
  263.             MENU_GEN_PROC, paste_at_bottom,
  264.             NULL,
  265.         MENU_DEFAULT, 4,
  266.         NULL);
  267.     return obj;
  268. }
  269.  
  270. /*
  271.  * Initialize an instance of object `base'.
  272.  */
  273. contool_base_objects *
  274. contool_base_objects_initialize(ip, owner)
  275.     contool_base_objects    *ip;
  276.     Xv_opaque    owner;
  277. {
  278.     if (!ip && !(ip = (contool_base_objects *) calloc(1, sizeof (contool_base_objects))))
  279.         return (contool_base_objects *) NULL;
  280.     if (!ip->base)
  281.         ip->base = contool_base_base_create(ip, owner);
  282.     if (!ip->contool_controls)
  283.         ip->contool_controls = contool_base_contool_controls_create(ip, ip->base);
  284.     if (!ip->file)
  285.         ip->file = contool_base_file_create(ip, ip->contool_controls);
  286.     if (!ip->view)
  287.         ip->view = contool_base_view_create(ip, ip->contool_controls);
  288.     if (!ip->edit)
  289.         ip->edit = contool_base_edit_create(ip, ip->contool_controls);
  290.     if (!ip->display)
  291.         ip->display = contool_base_display_create(ip, ip->base);
  292.     return ip;
  293. }
  294.  
  295. /*
  296.  * Create object `base' in the specified instance.
  297.  
  298.  */
  299. Xv_opaque
  300. contool_base_base_create(ip, owner)
  301.     caddr_t        ip;
  302.     Xv_opaque    owner;
  303. {
  304.     Xv_opaque    obj;
  305.     
  306.     obj = xv_create(owner, FRAME,
  307.         XV_KEY_DATA, INSTANCE, ip,
  308.         XV_WIDTH, 575,
  309.         XV_HEIGHT, 246,
  310.         XV_LABEL, "Contool 3.0",
  311.         FRAME_CLOSED, FALSE,
  312.         FRAME_SHOW_FOOTER, TRUE,
  313.         FRAME_SHOW_RESIZE_CORNER, TRUE,
  314.         NULL);
  315.     return obj;
  316. }
  317.  
  318. /*
  319.  * Create object `contool_controls' in the specified instance.
  320.  
  321.  */
  322. Xv_opaque
  323. contool_base_contool_controls_create(ip, owner)
  324.     caddr_t        ip;
  325.     Xv_opaque    owner;
  326. {
  327.     Xv_opaque    obj;
  328.     
  329.     obj = xv_create(owner, PANEL,
  330.         XV_KEY_DATA, INSTANCE, ip,
  331.         XV_HELP_DATA, "contool:contool_controls",
  332.         XV_X, 0,
  333.         XV_Y, 0,
  334.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  335.         XV_HEIGHT, 32,
  336.         WIN_BORDER, FALSE,
  337.         NULL);
  338.     return obj;
  339. }
  340.  
  341. /*
  342.  * Create object `file' in the specified instance.
  343.  
  344.  */
  345. Xv_opaque
  346. contool_base_file_create(ip, owner)
  347.     caddr_t        ip;
  348.     Xv_opaque    owner;
  349. {
  350.     Xv_opaque    obj;
  351.     
  352.     obj = xv_create(owner, PANEL_BUTTON,
  353.         XV_KEY_DATA, INSTANCE, ip,
  354.         XV_HELP_DATA, "contool:file",
  355.         XV_X, 4,
  356.         XV_Y, 4,
  357.         XV_WIDTH, 54,
  358.         XV_HEIGHT, 20,
  359.         PANEL_LABEL_STRING, "File",
  360.         PANEL_ITEM_MENU, contool_file_menu_create((caddr_t *) ip, NULL),
  361.         NULL);
  362.     return obj;
  363. }
  364.  
  365. /*
  366.  * Create object `view' in the specified instance.
  367.  
  368.  */
  369. Xv_opaque
  370. contool_base_view_create(ip, owner)
  371.     caddr_t        ip;
  372.     Xv_opaque    owner;
  373. {
  374.     Xv_opaque    obj;
  375.     
  376.     obj = xv_create(owner, PANEL_BUTTON,
  377.         XV_KEY_DATA, INSTANCE, ip,
  378.         XV_HELP_DATA, "contool:view",
  379.         XV_X, 67,
  380.         XV_Y, 4,
  381.         XV_WIDTH, 62,
  382.         XV_HEIGHT, 20,
  383.         PANEL_LABEL_STRING, "View",
  384.         PANEL_ITEM_MENU, contool_view_menu_create((caddr_t *) ip, NULL),
  385.         NULL);
  386.     return obj;
  387. }
  388.  
  389. /*
  390.  * Create object `edit' in the specified instance.
  391.  
  392.  */
  393. Xv_opaque
  394. contool_base_edit_create(ip, owner)
  395.     caddr_t        ip;
  396.     Xv_opaque    owner;
  397. {
  398.     Xv_opaque    obj;
  399.     
  400.     obj = xv_create(owner, PANEL_BUTTON,
  401.         XV_KEY_DATA, INSTANCE, ip,
  402.         XV_HELP_DATA, "contool:edit",
  403.         XV_X, 138,
  404.         XV_Y, 4,
  405.         XV_WIDTH, 56,
  406.         XV_HEIGHT, 20,
  407.         PANEL_LABEL_STRING, "Edit",
  408.         PANEL_ITEM_MENU, contool_edit_menu_create((caddr_t *) ip, NULL),
  409.         NULL);
  410.     return obj;
  411. }
  412.  
  413. /*
  414.  * Create object `display' in the specified instance.
  415.  
  416.  */
  417. Xv_opaque
  418. contool_base_display_create(ip, owner)
  419.     caddr_t        ip;
  420.     Xv_opaque    owner;
  421. {
  422.     Xv_opaque    obj;
  423.     
  424.     obj = xv_create(owner, TEXTSW,
  425.         XV_KEY_DATA, INSTANCE, ip,
  426.         XV_HELP_DATA, "contool:display",
  427.         XV_X, 0,
  428.         XV_Y, 27,
  429.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  430.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  431.         OPENWIN_SHOW_BORDERS, TRUE,
  432.         NULL);
  433.     return obj;
  434. }
  435.  
  436. /*
  437.  * Initialize an instance of object `props'.
  438.  */
  439. contool_props_objects *
  440. contool_props_objects_initialize(ip, owner)
  441.     contool_props_objects    *ip;
  442.     Xv_opaque    owner;
  443. {
  444.     if (!ip && !(ip = (contool_props_objects *) calloc(1, sizeof (contool_props_objects))))
  445.         return (contool_props_objects *) NULL;
  446.     if (!ip->props)
  447.         ip->props = contool_props_props_create(ip, owner);
  448.     if (!ip->prop_controls)
  449.         ip->prop_controls = contool_props_prop_controls_create(ip, ip->props);
  450.     if (!ip->default_action)
  451.         ip->default_action = contool_props_default_action_create(ip, ip->prop_controls);
  452.     if (!ip->default_beep_count)
  453.         ip->default_beep_count = contool_props_default_beep_count_create(ip, ip->prop_controls);
  454.     if (!ip->default_beep_times)
  455.         ip->default_beep_times = contool_props_default_beep_times_create(ip, ip->prop_controls);
  456.     if (!ip->default_command)
  457.         ip->default_command = contool_props_default_command_create(ip, ip->prop_controls);
  458.     if (!ip->log_file)
  459.         ip->log_file = contool_props_log_file_create(ip, ip->prop_controls);
  460.     if (!ip->log_style)
  461.         ip->log_style = contool_props_log_style_create(ip, ip->prop_controls);
  462.     if (!ip->print_filter)
  463.         ip->print_filter = contool_props_print_filter_create(ip, ip->prop_controls);
  464.     if (!ip->good_icon)
  465.         ip->good_icon = contool_props_good_icon_create(ip, ip->prop_controls);
  466.     if (!ip->bad_icon)
  467.         ip->bad_icon = contool_props_bad_icon_create(ip, ip->prop_controls);
  468.     if (!ip->flash_icon)
  469.         ip->flash_icon = contool_props_flash_icon_create(ip, ip->prop_controls);
  470.     if (!ip->stamp_resolution)
  471.         ip->stamp_resolution = contool_props_stamp_resolution_create(ip, ip->prop_controls);
  472.     if (!ip->message2)
  473.         ip->message2 = contool_props_message2_create(ip, ip->prop_controls);
  474.     if (!ip->max_message)
  475.         ip->max_message = contool_props_max_message_create(ip, ip->prop_controls);
  476.     if (!ip->message3)
  477.         ip->message3 = contool_props_message3_create(ip, ip->prop_controls);
  478.     if (!ip->delete_amount)
  479.         ip->delete_amount = contool_props_delete_amount_create(ip, ip->prop_controls);
  480.     if (!ip->message4)
  481.         ip->message4 = contool_props_message4_create(ip, ip->prop_controls);
  482.     if (!ip->props_apply)
  483.         ip->props_apply = contool_props_props_apply_create(ip, ip->prop_controls);
  484.     if (!ip->props_reset)
  485.         ip->props_reset = contool_props_props_reset_create(ip, ip->prop_controls);
  486.     return ip;
  487. }
  488.  
  489. /*
  490.  * Create object `props' in the specified instance.
  491.  
  492.  */
  493. Xv_opaque
  494. contool_props_props_create(ip, owner)
  495.     caddr_t        ip;
  496.     Xv_opaque    owner;
  497. {
  498.     Xv_opaque    obj;
  499.     
  500.     obj = xv_create(owner, FRAME_CMD,
  501.         XV_KEY_DATA, INSTANCE, ip,
  502.         XV_WIDTH, 500,
  503.         XV_HEIGHT, 479,
  504.         XV_LABEL, "Contool: Properties",
  505.         XV_SHOW, FALSE,
  506.         FRAME_SHOW_FOOTER, FALSE,
  507.         FRAME_SHOW_RESIZE_CORNER, FALSE,
  508.         FRAME_CMD_PUSHPIN_IN, FALSE,
  509.         NULL);
  510.     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  511.     return obj;
  512. }
  513.  
  514. /*
  515.  * Create object `prop_controls' in the specified instance.
  516.  
  517.  */
  518. Xv_opaque
  519. contool_props_prop_controls_create(ip, owner)
  520.     caddr_t        ip;
  521.     Xv_opaque    owner;
  522. {
  523.     Xv_opaque    obj;
  524.     
  525.     obj = xv_create(owner, PANEL,
  526.         XV_KEY_DATA, INSTANCE, ip,
  527.         XV_HELP_DATA, "contool:prop_controls",
  528.         XV_X, 0,
  529.         XV_Y, 0,
  530.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  531.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  532.         WIN_BORDER, FALSE,
  533.         NULL);
  534.     return obj;
  535. }
  536.  
  537. /*
  538.  * Create object `default_action' in the specified instance.
  539.  
  540.  */
  541. Xv_opaque
  542. contool_props_default_action_create(ip, owner)
  543.     caddr_t        ip;
  544.     Xv_opaque    owner;
  545. {
  546.     extern int        default_action();
  547.     Xv_opaque    obj;
  548.     
  549.     obj = xv_create(owner, PANEL_TOGGLE,
  550.         XV_KEY_DATA, INSTANCE, ip,
  551.         XV_HELP_DATA, "contool:default_action",
  552.         XV_X, 96,
  553.         XV_Y, 14,
  554.         XV_WIDTH, 211,
  555.         XV_HEIGHT, 139,
  556.         PANEL_VALUE_X, 205,
  557.         PANEL_VALUE_Y, 14,
  558.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  559.         PANEL_CHOICE_NCOLS, 1,
  560.         PANEL_LABEL_STRING, "Default action:",
  561.         PANEL_NOTIFY_PROC, default_action,
  562.         PANEL_CHOICE_STRINGS,
  563.             "Beep",
  564.             "Command",
  565.             "Flash icon",
  566.             "Open window",
  567.             "Timestamp",
  568.             0,
  569.         NULL);
  570.     return obj;
  571. }
  572.  
  573. /*
  574.  * Create object `default_beep_count' in the specified instance.
  575.  
  576.  */
  577. Xv_opaque
  578. contool_props_default_beep_count_create(ip, owner)
  579.     caddr_t        ip;
  580.     Xv_opaque    owner;
  581. {
  582.     Xv_opaque    obj;
  583.     
  584.     obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  585.         XV_KEY_DATA, INSTANCE, ip,
  586.         XV_HELP_DATA, "contool:default_beep_count",
  587.         XV_X, 306,
  588.         XV_Y, 19,
  589.         XV_WIDTH, 80,
  590.         XV_HEIGHT, 15,
  591.         PANEL_VALUE_X, 315,
  592.         PANEL_VALUE_Y, 19,
  593.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  594.         PANEL_VALUE_DISPLAY_LENGTH, 2,
  595.         PANEL_VALUE_STORED_LENGTH, 2,
  596.         PANEL_MAX_VALUE, 99,
  597.         PANEL_MIN_VALUE, 0,
  598.         PANEL_READ_ONLY, FALSE,
  599.         NULL);
  600.     return obj;
  601. }
  602.  
  603. /*
  604.  * Create object `default_beep_times' in the specified instance.
  605.  
  606.  */
  607. Xv_opaque
  608. contool_props_default_beep_times_create(ip, owner)
  609.     caddr_t        ip;
  610.     Xv_opaque    owner;
  611. {
  612.     Xv_opaque    obj;
  613.     
  614.     obj = xv_create(owner, PANEL_MESSAGE,
  615.         XV_KEY_DATA, INSTANCE, ip,
  616.         XV_HELP_DATA, "contool:default_beep_times",
  617.         XV_X, 394,
  618.         XV_Y, 19,
  619.         XV_WIDTH, 34,
  620.         XV_HEIGHT, 13,
  621.         PANEL_LABEL_STRING, "times",
  622.         PANEL_LABEL_BOLD, FALSE,
  623.         NULL);
  624.     return obj;
  625. }
  626.  
  627. /*
  628.  * Create object `default_command' in the specified instance.
  629.  
  630.  */
  631. Xv_opaque
  632. contool_props_default_command_create(ip, owner)
  633.     caddr_t        ip;
  634.     Xv_opaque    owner;
  635. {
  636.     Xv_opaque    obj;
  637.     
  638.     obj = xv_create(owner, PANEL_TEXT,
  639.         XV_KEY_DATA, INSTANCE, ip,
  640.         XV_HELP_DATA, "contool:default_command",
  641.         XV_X, 306,
  642.         XV_Y, 48,
  643.         XV_WIDTH, 177,
  644.         XV_HEIGHT, 15,
  645.         PANEL_VALUE_X, 315,
  646.         PANEL_VALUE_Y, 48,
  647.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  648.         PANEL_VALUE_DISPLAY_LENGTH, 21,
  649.         PANEL_VALUE_STORED_LENGTH, 1024,
  650.         PANEL_READ_ONLY, FALSE,
  651.         NULL);
  652.     return obj;
  653. }
  654.  
  655. /*
  656.  * Create object `log_file' in the specified instance.
  657.  
  658.  */
  659. Xv_opaque
  660. contool_props_log_file_create(ip, owner)
  661.     caddr_t        ip;
  662.     Xv_opaque    owner;
  663. {
  664.     extern Panel_setting    file_completion();
  665.     Xv_opaque    obj;
  666.     
  667.     obj = xv_create(owner, PANEL_TEXT,
  668.         XV_KEY_DATA, INSTANCE, ip,
  669.         XV_HELP_DATA, "contool:log_file",
  670.         XV_X, 141,
  671.         XV_Y, 174,
  672.         XV_WIDTH, 344,
  673.         XV_HEIGHT, 15,
  674.         PANEL_LABEL_STRING, "Log file:",
  675.         PANEL_VALUE_X, 205,
  676.         PANEL_VALUE_Y, 174,
  677.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  678.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  679.         PANEL_VALUE_STORED_LENGTH, 256,
  680.         PANEL_READ_ONLY, FALSE,
  681.         PANEL_NOTIFY_PROC, file_completion,
  682.         NULL);
  683.     return obj;
  684. }
  685.  
  686. /*
  687.  * Create object `log_style' in the specified instance.
  688.  
  689.  */
  690. Xv_opaque
  691. contool_props_log_style_create(ip, owner)
  692.     caddr_t        ip;
  693.     Xv_opaque    owner;
  694. {
  695.     Xv_opaque    obj;
  696.     
  697.     obj = xv_create(owner, PANEL_CHOICE,
  698.         XV_KEY_DATA, INSTANCE, ip,
  699.         XV_HELP_DATA, "contool:log_style",
  700.         XV_X, 96,
  701.         XV_Y, 194,
  702.         XV_WIDTH, 314,
  703.         XV_HEIGHT, 23,
  704.         PANEL_VALUE_X, 205,
  705.         PANEL_VALUE_Y, 194,
  706.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  707.         PANEL_CHOICE_NROWS, 1,
  708.         PANEL_LABEL_STRING, "Log messages:",
  709.         PANEL_CHOICE_STRINGS,
  710.             "Before filtering",
  711.             "After filtering",
  712.             0,
  713.         NULL);
  714.     return obj;
  715. }
  716.  
  717. /*
  718.  * Create object `print_filter' in the specified instance.
  719.  
  720.  */
  721. Xv_opaque
  722. contool_props_print_filter_create(ip, owner)
  723.     caddr_t        ip;
  724.     Xv_opaque    owner;
  725. {
  726.     Xv_opaque    obj;
  727.     
  728.     obj = xv_create(owner, PANEL_TEXT,
  729.         XV_KEY_DATA, INSTANCE, ip,
  730.         XV_HELP_DATA, "contool:print_filter",
  731.         XV_X, 119,
  732.         XV_Y, 237,
  733.         XV_WIDTH, 364,
  734.         XV_HEIGHT, 15,
  735.         PANEL_LABEL_STRING, "Print filter:",
  736.         PANEL_VALUE_X, 203,
  737.         PANEL_VALUE_Y, 237,
  738.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  739.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  740.         PANEL_VALUE_STORED_LENGTH, 256,
  741.         PANEL_READ_ONLY, FALSE,
  742.         NULL);
  743.     return obj;
  744. }
  745.  
  746. /*
  747.  * Create object `good_icon' in the specified instance.
  748.  
  749.  */
  750. Xv_opaque
  751. contool_props_good_icon_create(ip, owner)
  752.     caddr_t        ip;
  753.     Xv_opaque    owner;
  754. {
  755.     extern Panel_setting    file_completion();
  756.     Xv_opaque    obj;
  757.     
  758.     obj = xv_create(owner, PANEL_TEXT,
  759.         XV_KEY_DATA, INSTANCE, ip,
  760.         XV_HELP_DATA, "contool:good_icon",
  761.         XV_X, 79,
  762.         XV_Y, 274,
  763.         XV_WIDTH, 406,
  764.         XV_HEIGHT, 15,
  765.         PANEL_LABEL_STRING, "\"All is well\" icon:",
  766.         PANEL_VALUE_X, 205,
  767.         PANEL_VALUE_Y, 274,
  768.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  769.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  770.         PANEL_VALUE_STORED_LENGTH, 256,
  771.         PANEL_READ_ONLY, FALSE,
  772.         PANEL_NOTIFY_PROC, file_completion,
  773.         NULL);
  774.     return obj;
  775. }
  776.  
  777. /*
  778.  * Create object `bad_icon' in the specified instance.
  779.  
  780.  */
  781. Xv_opaque
  782. contool_props_bad_icon_create(ip, owner)
  783.     caddr_t        ip;
  784.     Xv_opaque    owner;
  785. {
  786.     extern Panel_setting    file_completion();
  787.     Xv_opaque    obj;
  788.     
  789.     obj = xv_create(owner, PANEL_TEXT,
  790.         XV_KEY_DATA, INSTANCE, ip,
  791.         XV_HELP_DATA, "contool:bad_icon",
  792.         XV_X, 50,
  793.         XV_Y, 294,
  794.         XV_WIDTH, 435,
  795.         XV_HEIGHT, 15,
  796.         PANEL_LABEL_STRING, "\"Check console\" icon:",
  797.         PANEL_VALUE_X, 205,
  798.         PANEL_VALUE_Y, 294,
  799.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  800.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  801.         PANEL_VALUE_STORED_LENGTH, 256,
  802.         PANEL_READ_ONLY, FALSE,
  803.         PANEL_NOTIFY_PROC, file_completion,
  804.         NULL);
  805.     return obj;
  806. }
  807.  
  808. /*
  809.  * Create object `flash_icon' in the specified instance.
  810.  
  811.  */
  812. Xv_opaque
  813. contool_props_flash_icon_create(ip, owner)
  814.     caddr_t        ip;
  815.     Xv_opaque    owner;
  816. {
  817.     extern Panel_setting    file_completion();
  818.     Xv_opaque    obj;
  819.     
  820.     obj = xv_create(owner, PANEL_TEXT,
  821.         XV_KEY_DATA, INSTANCE, ip,
  822.         XV_HELP_DATA, "contool:flash_icon",
  823.         XV_X, 111,
  824.         XV_Y, 314,
  825.         XV_WIDTH, 374,
  826.         XV_HEIGHT, 15,
  827.         PANEL_LABEL_STRING, "\"Flash\" icon:",
  828.         PANEL_VALUE_X, 205,
  829.         PANEL_VALUE_Y, 314,
  830.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  831.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  832.         PANEL_VALUE_STORED_LENGTH, 256,
  833.         PANEL_READ_ONLY, FALSE,
  834.         PANEL_NOTIFY_PROC, file_completion,
  835.         NULL);
  836.     return obj;
  837. }
  838.  
  839. /*
  840.  * Create object `stamp_resolution' in the specified instance.
  841.  
  842.  */
  843. Xv_opaque
  844. contool_props_stamp_resolution_create(ip, owner)
  845.     caddr_t        ip;
  846.     Xv_opaque    owner;
  847. {
  848.     Xv_opaque    obj;
  849.     
  850.     obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  851.         XV_KEY_DATA, INSTANCE, ip,
  852.         XV_HELP_DATA, "contool:stamp_resolution",
  853.         XV_X, 40,
  854.         XV_Y, 350,
  855.         XV_WIDTH, 246,
  856.         XV_HEIGHT, 15,
  857.         PANEL_LABEL_STRING, "Timestamp resolution:",
  858.         PANEL_VALUE_X, 205,
  859.         PANEL_VALUE_Y, 350,
  860.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  861.         PANEL_VALUE_DISPLAY_LENGTH, 6,
  862.         PANEL_VALUE_STORED_LENGTH, 6,
  863.         PANEL_MAX_VALUE, 999,
  864.         PANEL_MIN_VALUE, 0,
  865.         PANEL_READ_ONLY, FALSE,
  866.         NULL);
  867.     return obj;
  868. }
  869.  
  870. /*
  871.  * Create object `message2' in the specified instance.
  872.  
  873.  */
  874. Xv_opaque
  875. contool_props_message2_create(ip, owner)
  876.     caddr_t        ip;
  877.     Xv_opaque    owner;
  878. {
  879.     Xv_opaque    obj;
  880.     
  881.     obj = xv_create(owner, PANEL_MESSAGE,
  882.         XV_KEY_DATA, INSTANCE, ip,
  883.         XV_HELP_DATA, "contool:message2",
  884.         XV_X, 296,
  885.         XV_Y, 350,
  886.         XV_WIDTH, 48,
  887.         XV_HEIGHT, 13,
  888.         PANEL_LABEL_STRING, "seconds",
  889.         PANEL_LABEL_BOLD, FALSE,
  890.         NULL);
  891.     return obj;
  892. }
  893.  
  894. /*
  895.  * Create object `max_message' in the specified instance.
  896.  
  897.  */
  898. Xv_opaque
  899. contool_props_max_message_create(ip, owner)
  900.     caddr_t        ip;
  901.     Xv_opaque    owner;
  902. {
  903.     Xv_opaque    obj;
  904.     
  905.     obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  906.         XV_KEY_DATA, INSTANCE, ip,
  907.         XV_HELP_DATA, "contool:max_message",
  908.         XV_X, 32,
  909.         XV_Y, 386,
  910.         XV_WIDTH, 254,
  911.         XV_HEIGHT, 15,
  912.         PANEL_LABEL_STRING, "Maximum message text:",
  913.         PANEL_VALUE_X, 205,
  914.         PANEL_VALUE_Y, 386,
  915.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  916.         PANEL_VALUE_DISPLAY_LENGTH, 6,
  917.         PANEL_VALUE_STORED_LENGTH, 6,
  918.         PANEL_MAX_VALUE, 999999,
  919.         PANEL_MIN_VALUE, 0,
  920.         PANEL_READ_ONLY, FALSE,
  921.         NULL);
  922.     return obj;
  923. }
  924.  
  925. /*
  926.  * Create object `message3' in the specified instance.
  927.  
  928.  */
  929. Xv_opaque
  930. contool_props_message3_create(ip, owner)
  931.     caddr_t        ip;
  932.     Xv_opaque    owner;
  933. {
  934.     Xv_opaque    obj;
  935.     
  936.     obj = xv_create(owner, PANEL_MESSAGE,
  937.         XV_KEY_DATA, INSTANCE, ip,
  938.         XV_HELP_DATA, "contool:message3",
  939.         XV_X, 295,
  940.         XV_Y, 386,
  941.         XV_WIDTH, 33,
  942.         XV_HEIGHT, 13,
  943.         PANEL_LABEL_STRING, "bytes",
  944.         PANEL_LABEL_BOLD, FALSE,
  945.         NULL);
  946.     return obj;
  947. }
  948.  
  949. /*
  950.  * Create object `delete_amount' in the specified instance.
  951.  
  952.  */
  953. Xv_opaque
  954. contool_props_delete_amount_create(ip, owner)
  955.     caddr_t        ip;
  956.     Xv_opaque    owner;
  957. {
  958.     Xv_opaque    obj;
  959.     
  960.     obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  961.         XV_KEY_DATA, INSTANCE, ip,
  962.         XV_HELP_DATA, "contool:delete_amount",
  963.         XV_X, 14,
  964.         XV_Y, 406,
  965.         XV_WIDTH, 272,
  966.         XV_HEIGHT, 15,
  967.         PANEL_LABEL_STRING, "Overflow deletion amount:",
  968.         PANEL_VALUE_X, 205,
  969.         PANEL_VALUE_Y, 406,
  970.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  971.         PANEL_VALUE_DISPLAY_LENGTH, 6,
  972.         PANEL_VALUE_STORED_LENGTH, 6,
  973.         PANEL_MAX_VALUE, 999999,
  974.         PANEL_MIN_VALUE, 0,
  975.         PANEL_READ_ONLY, FALSE,
  976.         NULL);
  977.     return obj;
  978. }
  979.  
  980. /*
  981.  * Create object `message4' in the specified instance.
  982.  
  983.  */
  984. Xv_opaque
  985. contool_props_message4_create(ip, owner)
  986.     caddr_t        ip;
  987.     Xv_opaque    owner;
  988. {
  989.     Xv_opaque    obj;
  990.     
  991.     obj = xv_create(owner, PANEL_MESSAGE,
  992.         XV_KEY_DATA, INSTANCE, ip,
  993.         XV_HELP_DATA, "contool:message4",
  994.         XV_X, 295,
  995.         XV_Y, 406,
  996.         XV_WIDTH, 33,
  997.         XV_HEIGHT, 13,
  998.         PANEL_LABEL_STRING, "bytes",
  999.         PANEL_LABEL_BOLD, FALSE,
  1000.         NULL);
  1001.     return obj;
  1002. }
  1003.  
  1004. /*
  1005.  * Create object `props_apply' in the specified instance.
  1006.  
  1007.  */
  1008. Xv_opaque
  1009. contool_props_props_apply_create(ip, owner)
  1010.     caddr_t        ip;
  1011.     Xv_opaque    owner;
  1012. {
  1013.     extern void        accept_properties();
  1014.     Xv_opaque    obj;
  1015.     
  1016.     obj = xv_create(owner, PANEL_BUTTON,
  1017.         XV_KEY_DATA, INSTANCE, ip,
  1018.         XV_HELP_DATA, "contool:props_apply",
  1019.         XV_X, 191,
  1020.         XV_Y, 442,
  1021.         XV_WIDTH, 53,
  1022.         XV_HEIGHT, 20,
  1023.         PANEL_LABEL_STRING, "Apply",
  1024.         PANEL_NOTIFY_PROC, accept_properties,
  1025.         NULL);
  1026.     return obj;
  1027. }
  1028.  
  1029. /*
  1030.  * Create object `props_reset' in the specified instance.
  1031.  
  1032.  */
  1033. Xv_opaque
  1034. contool_props_props_reset_create(ip, owner)
  1035.     caddr_t        ip;
  1036.     Xv_opaque    owner;
  1037. {
  1038.     extern void        reset_properties();
  1039.     Xv_opaque    obj;
  1040.     
  1041.     obj = xv_create(owner, PANEL_BUTTON,
  1042.         XV_KEY_DATA, INSTANCE, ip,
  1043.         XV_HELP_DATA, "contool:props_reset",
  1044.         XV_X, 256,
  1045.         XV_Y, 442,
  1046.         XV_WIDTH, 51,
  1047.         XV_HEIGHT, 20,
  1048.         PANEL_LABEL_STRING, "Reset",
  1049.         PANEL_NOTIFY_PROC, reset_properties,
  1050.         NULL);
  1051.     return obj;
  1052. }
  1053.  
  1054. /*
  1055.  * Initialize an instance of object `filters'.
  1056.  */
  1057. contool_filters_objects *
  1058. contool_filters_objects_initialize(ip, owner)
  1059.     contool_filters_objects    *ip;
  1060.     Xv_opaque    owner;
  1061. {
  1062.     if (!ip && !(ip = (contool_filters_objects *) calloc(1, sizeof (contool_filters_objects))))
  1063.         return (contool_filters_objects *) NULL;
  1064.     if (!ip->filters)
  1065.         ip->filters = contool_filters_filters_create(ip, owner);
  1066.     if (!ip->filter_controls)
  1067.         ip->filter_controls = contool_filters_filter_controls_create(ip, ip->filters);
  1068.     if (!ip->filter_list)
  1069.         ip->filter_list = contool_filters_filter_list_create(ip, ip->filter_controls);
  1070.     if (!ip->filter_insert)
  1071.         ip->filter_insert = contool_filters_filter_insert_create(ip, ip->filter_controls);
  1072.     if (!ip->filter_edit)
  1073.         ip->filter_edit = contool_filters_filter_edit_create(ip, ip->filter_controls);
  1074.     if (!ip->filter_update)
  1075.         ip->filter_update = contool_filters_filter_update_create(ip, ip->filter_controls);
  1076.     if (!ip->filter_type)
  1077.         ip->filter_type = contool_filters_filter_type_create(ip, ip->filter_controls);
  1078.     if (!ip->start)
  1079.         ip->start = contool_filters_start_create(ip, ip->filter_controls);
  1080.     if (!ip->stop)
  1081.         ip->stop = contool_filters_stop_create(ip, ip->filter_controls);
  1082.     if (!ip->comment)
  1083.         ip->comment = contool_filters_comment_create(ip, ip->filter_controls);
  1084.     if (!ip->ignore)
  1085.         ip->ignore = contool_filters_ignore_create(ip, ip->filter_controls);
  1086.     if (!ip->action)
  1087.         ip->action = contool_filters_action_create(ip, ip->filter_controls);
  1088.     if (!ip->filter_beep_count)
  1089.         ip->filter_beep_count = contool_filters_filter_beep_count_create(ip, ip->filter_controls);
  1090.     if (!ip->filter_beep_times)
  1091.         ip->filter_beep_times = contool_filters_filter_beep_times_create(ip, ip->filter_controls);
  1092.     if (!ip->filter_command)
  1093.         ip->filter_command = contool_filters_filter_command_create(ip, ip->filter_controls);
  1094.     if (!ip->filters_apply)
  1095.         ip->filters_apply = contool_filters_filters_apply_create(ip, ip->filter_controls);
  1096.     if (!ip->filters_reset)
  1097.         ip->filters_reset = contool_filters_filters_reset_create(ip, ip->filter_controls);
  1098.     return ip;
  1099. }
  1100.  
  1101. /*
  1102.  * Create object `filters' in the specified instance.
  1103.  
  1104.  */
  1105. Xv_opaque
  1106. contool_filters_filters_create(ip, owner)
  1107.     caddr_t        ip;
  1108.     Xv_opaque    owner;
  1109. {
  1110.     extern void    filter_done();
  1111.     Xv_opaque    obj;
  1112.     
  1113.     obj = xv_create(owner, FRAME_CMD,
  1114.         XV_KEY_DATA, INSTANCE, ip,
  1115.         XV_WIDTH, 510,
  1116.         XV_HEIGHT, 620,
  1117.         XV_LABEL, "Contool: Filters",
  1118.         XV_SHOW, FALSE,
  1119.         FRAME_SHOW_FOOTER, FALSE,
  1120.         FRAME_SHOW_RESIZE_CORNER, FALSE,
  1121.         FRAME_CMD_PUSHPIN_IN, FALSE,
  1122.         FRAME_DONE_PROC, filter_done,
  1123.         NULL);
  1124.     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1125.     return obj;
  1126. }
  1127.  
  1128. /*
  1129.  * Create object `filter_controls' in the specified instance.
  1130.  
  1131.  */
  1132. Xv_opaque
  1133. contool_filters_filter_controls_create(ip, owner)
  1134.     caddr_t        ip;
  1135.     Xv_opaque    owner;
  1136. {
  1137.     Xv_opaque    obj;
  1138.     
  1139.     obj = xv_create(owner, PANEL,
  1140.         XV_KEY_DATA, INSTANCE, ip,
  1141.         XV_HELP_DATA, "contool:filter_controls",
  1142.         XV_X, 0,
  1143.         XV_Y, 0,
  1144.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1145.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1146.         WIN_BORDER, FALSE,
  1147.         NULL);
  1148.     return obj;
  1149. }
  1150.  
  1151. /*
  1152.  * Create object `filter_list' in the specified instance.
  1153.  
  1154.  */
  1155. Xv_opaque
  1156. contool_filters_filter_list_create(ip, owner)
  1157.     caddr_t        ip;
  1158.     Xv_opaque    owner;
  1159. {
  1160.     extern int        filter_notify();
  1161.     Xv_opaque    obj;
  1162.     
  1163.     obj = xv_create(owner, PANEL_LIST,
  1164.         XV_KEY_DATA, INSTANCE, ip,
  1165.         XV_HELP_DATA, "contool:filter_list",
  1166.         XV_X, 70,
  1167.         XV_Y, 14,
  1168.         PANEL_LIST_WIDTH, 350,
  1169.         XV_HEIGHT, 200,
  1170.         PANEL_LABEL_STRING, "Filters:",
  1171.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1172.         PANEL_LIST_DISPLAY_ROWS, 10,
  1173.         PANEL_READ_ONLY, TRUE,
  1174.         PANEL_CHOOSE_ONE, FALSE,
  1175.         PANEL_CHOOSE_NONE, TRUE,
  1176.         PANEL_NOTIFY_PROC, filter_notify,
  1177.         NULL);
  1178.     return obj;
  1179. }
  1180.  
  1181. /*
  1182.  * Create object `filter_insert' in the specified instance.
  1183.  
  1184.  */
  1185. Xv_opaque
  1186. contool_filters_filter_insert_create(ip, owner)
  1187.     caddr_t        ip;
  1188.     Xv_opaque    owner;
  1189. {
  1190.     Xv_opaque    obj;
  1191.     
  1192.     obj = xv_create(owner, PANEL_BUTTON,
  1193.         XV_KEY_DATA, INSTANCE, ip,
  1194.         XV_HELP_DATA, "contool:filter_insert",
  1195.         XV_X, 126,
  1196.         XV_Y, 218,
  1197.         XV_WIDTH, 67,
  1198.         XV_HEIGHT, 20,
  1199.         PANEL_LABEL_STRING, "Insert",
  1200.         PANEL_ITEM_MENU, contool_filter_insert_menu_create((caddr_t *) ip, NULL),
  1201.         NULL);
  1202.     return obj;
  1203. }
  1204.  
  1205. /*
  1206.  * Create object `filter_edit' in the specified instance.
  1207.  
  1208.  */
  1209. Xv_opaque
  1210. contool_filters_filter_edit_create(ip, owner)
  1211.     caddr_t        ip;
  1212.     Xv_opaque    owner;
  1213. {
  1214.     Xv_opaque    obj;
  1215.     
  1216.     obj = xv_create(owner, PANEL_BUTTON,
  1217.         XV_KEY_DATA, INSTANCE, ip,
  1218.         XV_HELP_DATA, "contool:filter_edit",
  1219.         XV_X, 202,
  1220.         XV_Y, 218,
  1221.         XV_WIDTH, 56,
  1222.         XV_HEIGHT, 20,
  1223.         PANEL_LABEL_STRING, "Edit",
  1224.         PANEL_ITEM_MENU, contool_filter_edit_menu_create((caddr_t *) ip, NULL),
  1225.         NULL);
  1226.     return obj;
  1227. }
  1228.  
  1229. /*
  1230.  * Create object `filter_update' in the specified instance.
  1231.  
  1232.  */
  1233. Xv_opaque
  1234. contool_filters_filter_update_create(ip, owner)
  1235.     caddr_t        ip;
  1236.     Xv_opaque    owner;
  1237. {
  1238.     extern void        filter_update();
  1239.     Xv_opaque    obj;
  1240.     
  1241.     obj = xv_create(owner, PANEL_BUTTON,
  1242.         XV_KEY_DATA, INSTANCE, ip,
  1243.         XV_HELP_DATA, "contool:filter_update",
  1244.         XV_X, 267,
  1245.         XV_Y, 218,
  1246.         XV_WIDTH, 62,
  1247.         XV_HEIGHT, 20,
  1248.         PANEL_LABEL_STRING, "Update",
  1249.         PANEL_NOTIFY_PROC, filter_update,
  1250.         NULL);
  1251.     return obj;
  1252. }
  1253.  
  1254. /*
  1255.  * Create object `filter_type' in the specified instance.
  1256.  
  1257.  */
  1258. Xv_opaque
  1259. contool_filters_filter_type_create(ip, owner)
  1260.     caddr_t        ip;
  1261.     Xv_opaque    owner;
  1262. {
  1263.     extern int        set_filter_type();
  1264.     Xv_opaque    obj;
  1265.     
  1266.     obj = xv_create(owner, PANEL_CHOICE,
  1267.         XV_KEY_DATA, INSTANCE, ip,
  1268.         XV_HELP_DATA, "contool:filter_type",
  1269.         XV_X, 80,
  1270.         XV_Y, 259,
  1271.         XV_WIDTH, 272,
  1272.         XV_HEIGHT, 23,
  1273.         PANEL_VALUE_X, 126,
  1274.         PANEL_VALUE_Y, 259,
  1275.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1276.         PANEL_CHOICE_NROWS, 1,
  1277.         PANEL_LABEL_STRING, "Type:",
  1278.         PANEL_NOTIFY_PROC, set_filter_type,
  1279.         PANEL_CHOICE_STRINGS,
  1280.             "Single line filter",
  1281.             "Multi-line filter",
  1282.             0,
  1283.         NULL);
  1284.     return obj;
  1285. }
  1286.  
  1287. /*
  1288.  * Create object `start' in the specified instance.
  1289.  
  1290.  */
  1291. Xv_opaque
  1292. contool_filters_start_create(ip, owner)
  1293.     caddr_t        ip;
  1294.     Xv_opaque    owner;
  1295. {
  1296.     Xv_opaque    obj;
  1297.     
  1298.     obj = xv_create(owner, PANEL_TEXT,
  1299.         XV_KEY_DATA, INSTANCE, ip,
  1300.         XV_HELP_DATA, "contool:start",
  1301.         XV_X, 65,
  1302.         XV_Y, 303,
  1303.         XV_WIDTH, 429,
  1304.         XV_HEIGHT, 15,
  1305.         PANEL_LABEL_STRING, "Pattern:",
  1306.         PANEL_VALUE_X, 126,
  1307.         PANEL_VALUE_Y, 303,
  1308.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1309.         PANEL_VALUE_DISPLAY_LENGTH, 46,
  1310.         PANEL_VALUE_STORED_LENGTH, 256,
  1311.         PANEL_READ_ONLY, FALSE,
  1312.         NULL);
  1313.     return obj;
  1314. }
  1315.  
  1316. /*
  1317.  * Create object `stop' in the specified instance.
  1318.  
  1319.  */
  1320. Xv_opaque
  1321. contool_filters_stop_create(ip, owner)
  1322.     caddr_t        ip;
  1323.     Xv_opaque    owner;
  1324. {
  1325.     Xv_opaque    obj;
  1326.     
  1327.     obj = xv_create(owner, PANEL_TEXT,
  1328.         XV_KEY_DATA, INSTANCE, ip,
  1329.         XV_HELP_DATA, "contool:stop",
  1330.         XV_X, 35,
  1331.         XV_Y, 323,
  1332.         XV_WIDTH, 459,
  1333.         XV_HEIGHT, 15,
  1334.         PANEL_LABEL_STRING, "End pattern:",
  1335.         PANEL_VALUE_X, 126,
  1336.         PANEL_VALUE_Y, 323,
  1337.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1338.         PANEL_VALUE_DISPLAY_LENGTH, 46,
  1339.         PANEL_VALUE_STORED_LENGTH, 256,
  1340.         PANEL_READ_ONLY, FALSE,
  1341.         NULL);
  1342.     return obj;
  1343. }
  1344.  
  1345. /*
  1346.  * Create object `comment' in the specified instance.
  1347.  
  1348.  */
  1349. Xv_opaque
  1350. contool_filters_comment_create(ip, owner)
  1351.     caddr_t        ip;
  1352.     Xv_opaque    owner;
  1353. {
  1354.     Xv_opaque    obj;
  1355.     
  1356.     obj = xv_create(owner, PANEL_TEXT,
  1357.         XV_KEY_DATA, INSTANCE, ip,
  1358.         XV_HELP_DATA, "contool:comment",
  1359.         XV_X, 49,
  1360.         XV_Y, 359,
  1361.         XV_WIDTH, 445,
  1362.         XV_HEIGHT, 15,
  1363.         PANEL_LABEL_STRING, "Comment:",
  1364.         PANEL_VALUE_X, 126,
  1365.         PANEL_VALUE_Y, 359,
  1366.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1367.         PANEL_VALUE_DISPLAY_LENGTH, 46,
  1368.         PANEL_VALUE_STORED_LENGTH, 256,
  1369.         PANEL_READ_ONLY, FALSE,
  1370.         NULL);
  1371.     return obj;
  1372. }
  1373.  
  1374. /*
  1375.  * Create object `ignore' in the specified instance.
  1376.  
  1377.  */
  1378. Xv_opaque
  1379. contool_filters_ignore_create(ip, owner)
  1380.     caddr_t        ip;
  1381.     Xv_opaque    owner;
  1382. {
  1383.     extern int        set_filter_action();
  1384.     Xv_opaque    obj;
  1385.     
  1386.     obj = xv_create(owner, PANEL_CHOICE,
  1387.         XV_KEY_DATA, INSTANCE, ip,
  1388.         XV_HELP_DATA, "contool:ignore",
  1389.         XV_X, 14,
  1390.         XV_Y, 395,
  1391.         XV_WIDTH, 321,
  1392.         XV_HEIGHT, 23,
  1393.         PANEL_VALUE_X, 126,
  1394.         PANEL_VALUE_Y, 395,
  1395.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1396.         PANEL_CHOICE_NROWS, 1,
  1397.         PANEL_LABEL_STRING, "When matched:",
  1398.         PANEL_NOTIFY_PROC, set_filter_action,
  1399.         PANEL_CHOICE_STRINGS,
  1400.             "Save message",
  1401.             "Ignore message",
  1402.             0,
  1403.         NULL);
  1404.     return obj;
  1405. }
  1406.  
  1407. /*
  1408.  * Create object `action' in the specified instance.
  1409.  
  1410.  */
  1411. Xv_opaque
  1412. contool_filters_action_create(ip, owner)
  1413.     caddr_t        ip;
  1414.     Xv_opaque    owner;
  1415. {
  1416.     extern int        set_match_action();
  1417.     Xv_opaque    obj;
  1418.     
  1419.     obj = xv_create(owner, PANEL_TOGGLE,
  1420.         XV_KEY_DATA, INSTANCE, ip,
  1421.         XV_HELP_DATA, "contool:action",
  1422.         XV_X, 32,
  1423.         XV_Y, 423,
  1424.         XV_WIDTH, 196,
  1425.         XV_HEIGHT, 139,
  1426.         PANEL_VALUE_X, 126,
  1427.         PANEL_VALUE_Y, 423,
  1428.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1429.         PANEL_CHOICE_NCOLS, 1,
  1430.         PANEL_LABEL_STRING, "When saved:",
  1431.         PANEL_NOTIFY_PROC, set_match_action,
  1432.         PANEL_CHOICE_STRINGS,
  1433.             "Beep",
  1434.             "Command",
  1435.             "Flash icon",
  1436.             "Open window",
  1437.             "Timestamp",
  1438.             0,
  1439.         NULL);
  1440.     return obj;
  1441. }
  1442.  
  1443. /*
  1444.  * Create object `filter_beep_count' in the specified instance.
  1445.  
  1446.  */
  1447. Xv_opaque
  1448. contool_filters_filter_beep_count_create(ip, owner)
  1449.     caddr_t        ip;
  1450.     Xv_opaque    owner;
  1451. {
  1452.     Xv_opaque    obj;
  1453.     
  1454.     obj = xv_create(owner, PANEL_NUMERIC_TEXT,
  1455.         XV_KEY_DATA, INSTANCE, ip,
  1456.         XV_HELP_DATA, "contool:filter_beep_count",
  1457.         XV_X, 228,
  1458.         XV_Y, 428,
  1459.         XV_WIDTH, 80,
  1460.         XV_HEIGHT, 15,
  1461.         PANEL_VALUE_X, 237,
  1462.         PANEL_VALUE_Y, 428,
  1463.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1464.         PANEL_VALUE_DISPLAY_LENGTH, 2,
  1465.         PANEL_VALUE_STORED_LENGTH, 2,
  1466.         PANEL_MAX_VALUE, 99,
  1467.         PANEL_MIN_VALUE, 0,
  1468.         PANEL_READ_ONLY, FALSE,
  1469.         NULL);
  1470.     return obj;
  1471. }
  1472.  
  1473. /*
  1474.  * Create object `filter_beep_times' in the specified instance.
  1475.  
  1476.  */
  1477. Xv_opaque
  1478. contool_filters_filter_beep_times_create(ip, owner)
  1479.     caddr_t        ip;
  1480.     Xv_opaque    owner;
  1481. {
  1482.     Xv_opaque    obj;
  1483.     
  1484.     obj = xv_create(owner, PANEL_MESSAGE,
  1485.         XV_KEY_DATA, INSTANCE, ip,
  1486.         XV_HELP_DATA, "contool:filter_beep_times",
  1487.         XV_X, 316,
  1488.         XV_Y, 428,
  1489.         XV_WIDTH, 34,
  1490.         XV_HEIGHT, 13,
  1491.         PANEL_LABEL_STRING, "times",
  1492.         PANEL_LABEL_BOLD, FALSE,
  1493.         NULL);
  1494.     return obj;
  1495. }
  1496.  
  1497. /*
  1498.  * Create object `filter_command' in the specified instance.
  1499.  
  1500.  */
  1501. Xv_opaque
  1502. contool_filters_filter_command_create(ip, owner)
  1503.     caddr_t        ip;
  1504.     Xv_opaque    owner;
  1505. {
  1506.     Xv_opaque    obj;
  1507.     
  1508.     obj = xv_create(owner, PANEL_TEXT,
  1509.         XV_KEY_DATA, INSTANCE, ip,
  1510.         XV_HELP_DATA, "contool:filter_command",
  1511.         XV_X, 228,
  1512.         XV_Y, 457,
  1513.         XV_WIDTH, 265,
  1514.         XV_HEIGHT, 15,
  1515.         PANEL_VALUE_X, 237,
  1516.         PANEL_VALUE_Y, 457,
  1517.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1518.         PANEL_VALUE_DISPLAY_LENGTH, 32,
  1519.         PANEL_VALUE_STORED_LENGTH, 1024,
  1520.         PANEL_READ_ONLY, FALSE,
  1521.         NULL);
  1522.     return obj;
  1523. }
  1524.  
  1525. /*
  1526.  * Create object `filters_apply' in the specified instance.
  1527.  
  1528.  */
  1529. Xv_opaque
  1530. contool_filters_filters_apply_create(ip, owner)
  1531.     caddr_t        ip;
  1532.     Xv_opaque    owner;
  1533. {
  1534.     extern void        accept_filters();
  1535.     Xv_opaque    obj;
  1536.     
  1537.     obj = xv_create(owner, PANEL_BUTTON,
  1538.         XV_KEY_DATA, INSTANCE, ip,
  1539.         XV_HELP_DATA, "contool:filters_apply",
  1540.         XV_X, 196,
  1541.         XV_Y, 583,
  1542.         XV_WIDTH, 53,
  1543.         XV_HEIGHT, 20,
  1544.         PANEL_LABEL_STRING, "Apply",
  1545.         PANEL_NOTIFY_PROC, accept_filters,
  1546.         NULL);
  1547.     return obj;
  1548. }
  1549.  
  1550. /*
  1551.  * Create object `filters_reset' in the specified instance.
  1552.  
  1553.  */
  1554. Xv_opaque
  1555. contool_filters_filters_reset_create(ip, owner)
  1556.     caddr_t        ip;
  1557.     Xv_opaque    owner;
  1558. {
  1559.     extern void        reset_filters();
  1560.     Xv_opaque    obj;
  1561.     
  1562.     obj = xv_create(owner, PANEL_BUTTON,
  1563.         XV_KEY_DATA, INSTANCE, ip,
  1564.         XV_HELP_DATA, "contool:filters_reset",
  1565.         XV_X, 261,
  1566.         XV_Y, 583,
  1567.         XV_WIDTH, 51,
  1568.         XV_HEIGHT, 20,
  1569.         PANEL_LABEL_STRING, "Reset",
  1570.         PANEL_NOTIFY_PROC, reset_filters,
  1571.         NULL);
  1572.     return obj;
  1573. }
  1574.  
  1575. /*
  1576.  * Initialize an instance of object `load'.
  1577.  */
  1578. contool_load_objects *
  1579. contool_load_objects_initialize(ip, owner)
  1580.     contool_load_objects    *ip;
  1581.     Xv_opaque    owner;
  1582. {
  1583.     if (!ip && !(ip = (contool_load_objects *) calloc(1, sizeof (contool_load_objects))))
  1584.         return (contool_load_objects *) NULL;
  1585.     if (!ip->load)
  1586.         ip->load = contool_load_load_create(ip, owner);
  1587.     if (!ip->load_controls)
  1588.         ip->load_controls = contool_load_load_controls_create(ip, ip->load);
  1589.     if (!ip->load_type)
  1590.         ip->load_type = contool_load_load_type_create(ip, ip->load_controls);
  1591.     if (!ip->load_file)
  1592.         ip->load_file = contool_load_load_file_create(ip, ip->load_controls);
  1593.     if (!ip->accept_load)
  1594.         ip->accept_load = contool_load_accept_load_create(ip, ip->load_controls);
  1595.     return ip;
  1596. }
  1597.  
  1598. /*
  1599.  * Create object `load' in the specified instance.
  1600.  
  1601.  */
  1602. Xv_opaque
  1603. contool_load_load_create(ip, owner)
  1604.     caddr_t        ip;
  1605.     Xv_opaque    owner;
  1606. {
  1607.     Xv_opaque    obj;
  1608.     
  1609.     obj = xv_create(owner, FRAME_CMD,
  1610.         XV_KEY_DATA, INSTANCE, ip,
  1611.         XV_WIDTH, 444,
  1612.         XV_HEIGHT, 146,
  1613.         XV_LABEL, "Contool: Load Configuration",
  1614.         XV_SHOW, FALSE,
  1615.         FRAME_SHOW_FOOTER, FALSE,
  1616.         FRAME_SHOW_RESIZE_CORNER, FALSE,
  1617.         FRAME_CMD_PUSHPIN_IN, FALSE,
  1618.         NULL);
  1619.     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1620.     return obj;
  1621. }
  1622.  
  1623. /*
  1624.  * Create object `load_controls' in the specified instance.
  1625.  
  1626.  */
  1627. Xv_opaque
  1628. contool_load_load_controls_create(ip, owner)
  1629.     caddr_t        ip;
  1630.     Xv_opaque    owner;
  1631. {
  1632.     Xv_opaque    obj;
  1633.     
  1634.     obj = xv_create(owner, PANEL,
  1635.         XV_KEY_DATA, INSTANCE, ip,
  1636.         XV_HELP_DATA, "contool:load_controls",
  1637.         XV_X, 0,
  1638.         XV_Y, 0,
  1639.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1640.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1641.         WIN_BORDER, FALSE,
  1642.         NULL);
  1643.     return obj;
  1644. }
  1645.  
  1646. /*
  1647.  * Create object `load_type' in the specified instance.
  1648.  
  1649.  */
  1650. Xv_opaque
  1651. contool_load_load_type_create(ip, owner)
  1652.     caddr_t        ip;
  1653.     Xv_opaque    owner;
  1654. {
  1655.     Xv_opaque    obj;
  1656.     
  1657.     obj = xv_create(owner, PANEL_TOGGLE,
  1658.         XV_KEY_DATA, INSTANCE, ip,
  1659.         XV_HELP_DATA, "contool:load_type",
  1660.         XV_X, 105,
  1661.         XV_Y, 14,
  1662.         XV_WIDTH, 162,
  1663.         XV_HEIGHT, 52,
  1664.         PANEL_VALUE_X, 149,
  1665.         PANEL_VALUE_Y, 14,
  1666.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1667.         PANEL_CHOICE_NCOLS, 1,
  1668.         PANEL_LABEL_STRING, "Load:",
  1669.         PANEL_CHOICE_STRINGS,
  1670.             "Tool properties",
  1671.             "Filter definitions",
  1672.             0,
  1673.         NULL);
  1674.     return obj;
  1675. }
  1676.  
  1677. /*
  1678.  * Create object `load_file' in the specified instance.
  1679.  
  1680.  */
  1681. Xv_opaque
  1682. contool_load_load_file_create(ip, owner)
  1683.     caddr_t        ip;
  1684.     Xv_opaque    owner;
  1685. {
  1686.     extern Panel_setting    file_completion();
  1687.     Xv_opaque    obj;
  1688.     
  1689.     obj = xv_create(owner, PANEL_TEXT,
  1690.         XV_KEY_DATA, INSTANCE, ip,
  1691.         XV_HELP_DATA, "contool:load_file",
  1692.         XV_X, 14,
  1693.         XV_Y, 72,
  1694.         XV_WIDTH, 415,
  1695.         XV_HEIGHT, 15,
  1696.         PANEL_LABEL_STRING, "Configuration file:",
  1697.         PANEL_VALUE_X, 149,
  1698.         PANEL_VALUE_Y, 72,
  1699.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1700.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  1701.         PANEL_VALUE_STORED_LENGTH, 256,
  1702.         PANEL_READ_ONLY, FALSE,
  1703.         PANEL_NOTIFY_PROC, file_completion,
  1704.         NULL);
  1705.     return obj;
  1706. }
  1707.  
  1708. /*
  1709.  * Create object `accept_load' in the specified instance.
  1710.  
  1711.  */
  1712. Xv_opaque
  1713. contool_load_accept_load_create(ip, owner)
  1714.     caddr_t        ip;
  1715.     Xv_opaque    owner;
  1716. {
  1717.     extern void        load_filters();
  1718.     Xv_opaque    obj;
  1719.     
  1720.     obj = xv_create(owner, PANEL_BUTTON,
  1721.         XV_KEY_DATA, INSTANCE, ip,
  1722.         XV_HELP_DATA, "contool:accept_load",
  1723.         XV_X, 199,
  1724.         XV_Y, 107,
  1725.         XV_WIDTH, 46,
  1726.         XV_HEIGHT, 20,
  1727.         PANEL_LABEL_STRING, "Load",
  1728.         PANEL_NOTIFY_PROC, load_filters,
  1729.         NULL);
  1730.     return obj;
  1731. }
  1732.  
  1733. /*
  1734.  * Initialize an instance of object `store'.
  1735.  */
  1736. contool_store_objects *
  1737. contool_store_objects_initialize(ip, owner)
  1738.     contool_store_objects    *ip;
  1739.     Xv_opaque    owner;
  1740. {
  1741.     if (!ip && !(ip = (contool_store_objects *) calloc(1, sizeof (contool_store_objects))))
  1742.         return (contool_store_objects *) NULL;
  1743.     if (!ip->store)
  1744.         ip->store = contool_store_store_create(ip, owner);
  1745.     if (!ip->store_controls)
  1746.         ip->store_controls = contool_store_store_controls_create(ip, ip->store);
  1747.     if (!ip->store_type)
  1748.         ip->store_type = contool_store_store_type_create(ip, ip->store_controls);
  1749.     if (!ip->store_file)
  1750.         ip->store_file = contool_store_store_file_create(ip, ip->store_controls);
  1751.     if (!ip->accept_store)
  1752.         ip->accept_store = contool_store_accept_store_create(ip, ip->store_controls);
  1753.     return ip;
  1754. }
  1755.  
  1756. /*
  1757.  * Create object `store' in the specified instance.
  1758.  
  1759.  */
  1760. Xv_opaque
  1761. contool_store_store_create(ip, owner)
  1762.     caddr_t        ip;
  1763.     Xv_opaque    owner;
  1764. {
  1765.     Xv_opaque    obj;
  1766.     
  1767.     obj = xv_create(owner, FRAME_CMD,
  1768.         XV_KEY_DATA, INSTANCE, ip,
  1769.         XV_WIDTH, 444,
  1770.         XV_HEIGHT, 146,
  1771.         XV_LABEL, "Contool: Store Configuration",
  1772.         XV_SHOW, FALSE,
  1773.         FRAME_SHOW_FOOTER, FALSE,
  1774.         FRAME_SHOW_RESIZE_CORNER, FALSE,
  1775.         FRAME_CMD_PUSHPIN_IN, FALSE,
  1776.         NULL);
  1777.     xv_set(xv_get(obj, FRAME_CMD_PANEL), WIN_SHOW, FALSE, NULL);
  1778.     return obj;
  1779. }
  1780.  
  1781. /*
  1782.  * Create object `store_controls' in the specified instance.
  1783.  
  1784.  */
  1785. Xv_opaque
  1786. contool_store_store_controls_create(ip, owner)
  1787.     caddr_t        ip;
  1788.     Xv_opaque    owner;
  1789. {
  1790.     Xv_opaque    obj;
  1791.     
  1792.     obj = xv_create(owner, PANEL,
  1793.         XV_KEY_DATA, INSTANCE, ip,
  1794.         XV_HELP_DATA, "contool:store_controls",
  1795.         XV_X, 0,
  1796.         XV_Y, 0,
  1797.         XV_WIDTH, WIN_EXTEND_TO_EDGE,
  1798.         XV_HEIGHT, WIN_EXTEND_TO_EDGE,
  1799.         WIN_BORDER, FALSE,
  1800.         NULL);
  1801.     return obj;
  1802. }
  1803.  
  1804. /*
  1805.  * Create object `store_type' in the specified instance.
  1806.  
  1807.  */
  1808. Xv_opaque
  1809. contool_store_store_type_create(ip, owner)
  1810.     caddr_t        ip;
  1811.     Xv_opaque    owner;
  1812. {
  1813.     Xv_opaque    obj;
  1814.     
  1815.     obj = xv_create(owner, PANEL_TOGGLE,
  1816.         XV_KEY_DATA, INSTANCE, ip,
  1817.         XV_HELP_DATA, "contool:store_type",
  1818.         XV_X, 102,
  1819.         XV_Y, 14,
  1820.         XV_WIDTH, 165,
  1821.         XV_HEIGHT, 52,
  1822.         PANEL_VALUE_X, 149,
  1823.         PANEL_VALUE_Y, 14,
  1824.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1825.         PANEL_CHOICE_NCOLS, 1,
  1826.         PANEL_LABEL_STRING, "Store:",
  1827.         PANEL_CHOICE_STRINGS,
  1828.             "Tool properties",
  1829.             "Filter definitions",
  1830.             0,
  1831.         NULL);
  1832.     return obj;
  1833. }
  1834.  
  1835. /*
  1836.  * Create object `store_file' in the specified instance.
  1837.  
  1838.  */
  1839. Xv_opaque
  1840. contool_store_store_file_create(ip, owner)
  1841.     caddr_t        ip;
  1842.     Xv_opaque    owner;
  1843. {
  1844.     extern Panel_setting    file_completion();
  1845.     Xv_opaque    obj;
  1846.     
  1847.     obj = xv_create(owner, PANEL_TEXT,
  1848.         XV_KEY_DATA, INSTANCE, ip,
  1849.         XV_HELP_DATA, "contool:store_file",
  1850.         XV_X, 14,
  1851.         XV_Y, 72,
  1852.         XV_WIDTH, 415,
  1853.         XV_HEIGHT, 15,
  1854.         PANEL_LABEL_STRING, "Configuration file:",
  1855.         PANEL_VALUE_X, 149,
  1856.         PANEL_VALUE_Y, 72,
  1857.         PANEL_LAYOUT, PANEL_HORIZONTAL,
  1858.         PANEL_VALUE_DISPLAY_LENGTH, 35,
  1859.         PANEL_VALUE_STORED_LENGTH, 256,
  1860.         PANEL_READ_ONLY, FALSE,
  1861.         PANEL_NOTIFY_PROC, file_completion,
  1862.         NULL);
  1863.     return obj;
  1864. }
  1865.  
  1866. /*
  1867.  * Create object `accept_store' in the specified instance.
  1868.  
  1869.  */
  1870. Xv_opaque
  1871. contool_store_accept_store_create(ip, owner)
  1872.     caddr_t        ip;
  1873.     Xv_opaque    owner;
  1874. {
  1875.     extern void        store_filters();
  1876.     Xv_opaque    obj;
  1877.     
  1878.     obj = xv_create(owner, PANEL_BUTTON,
  1879.         XV_KEY_DATA, INSTANCE, ip,
  1880.         XV_HELP_DATA, "contool:accept_store",
  1881.         XV_X, 197,
  1882.         XV_Y, 107,
  1883.         XV_WIDTH, 49,
  1884.         XV_HEIGHT, 20,
  1885.         PANEL_LABEL_STRING, "Store",
  1886.         PANEL_NOTIFY_PROC, store_filters,
  1887.         NULL);
  1888.     return obj;
  1889. }
  1890.  
  1891.