hard_devices.c
上传用户:rrhhcc
上传日期:2015-12-11
资源大小:54129k
文件大小:3k
源码类别:

通讯编程

开发平台:

Visual C++

  1. /* $Header: /usr/src/mash/repository/vint/xgraph/hard_devices.c,v 1.1.1.1 1999/12/03 23:15:52 heideman Exp $ */
  2. /*
  3.  * Hardcopy Devices
  4.  *
  5.  * This file contains the basic output device table.  The hardcopy
  6.  * dialog is automatically constructed from this table.
  7.  *
  8.  * $Log: hard_devices.c,v $
  9.  * Revision 1.1.1.1  1999/12/03 23:15:52  heideman
  10.  * xgraph-12.0
  11.  *
  12.  */
  13. #ifndef lint
  14. static char rcsid[] = "$Id: hard_devices.c,v 1.1.1.1 1999/12/03 23:15:52 heideman Exp $";
  15. #endif
  16. #include <stdio.h>
  17. #include "copyright.h"
  18. #include "xgout.h"
  19. #include "hard_devices.h"
  20. #include "params.h"
  21. extern int hpglInit();
  22. extern int psInit();
  23. extern int idrawInit();
  24. extern int tgifInit();
  25. struct hard_dev hard_devices[] =
  26. {
  27.     {"HPGL", hpglInit, "lpr -P%s", "xgraph.hpgl", "paper",
  28.      27.5, "1", 14.0, "1", 12.0, NONE},
  29.     {"Postscript", psInit, "lpr -P%s", "xgraph.ps", "$PRINTER",
  30.      19.0, "Times-Bold", 18.0, "Times-Roman", 12.0, NO},
  31.     {"Idraw", idrawInit,
  32.      "cat > /usr/tmp/idraw.tmp.ps; %s /usr/tmp/idraw.tmp.ps&",
  33.      "~/.clipboard", "/usr/bin/X11/idraw", 19.0, "Times-Bold", 18.0,
  34.      "Times-Roman", 12.0, NONE},
  35.     {"Tgif", tgifInit,
  36.      "cat > /usr/tmp/xgraph.obj; %s /usr/tmp/xgraph &",
  37.      "xgraph.obj", "/usr/bin/X11/tgif", 19.0, "Times-Bold", 18.0,
  38.      "Times-Roman", 12.0, NONE}
  39. };
  40. int     hard_count = sizeof(hard_devices) / sizeof(struct hard_dev);
  41. #define CHANGE_D(name, field) 
  42. if (param_get(name, &val)) { 
  43.     if (val.type == DBL) { 
  44.        hard_devices[idx].field = val.dblv.value; 
  45.     } 
  46. }
  47. #define CHANGE_S(name, field) 
  48. if (param_get(name, &val)) { 
  49.     if (val.type == STR) { 
  50.        (void) strcpy(hard_devices[idx].field, val.strv.value); 
  51.     } 
  52. }
  53. void 
  54. hard_init()
  55. /*
  56.  * Changes values in hard_devices structures in accordance with
  57.  * parameters set using the parameters module.
  58.  */
  59. {
  60.     char    nn[BUFSIZ];
  61.     int     idx;
  62.     params  val;
  63.     for (idx = 0; idx < hard_count; idx++) {
  64. (void) sprintf(nn, "%s.Dimension", hard_devices[idx].dev_name);
  65. CHANGE_D(nn, dev_max_dim);
  66. (void) sprintf(nn, "%s.OutputTitleFont", hard_devices[idx].dev_name);
  67. CHANGE_S(nn, dev_title_font);
  68. (void) sprintf(nn, "%s.OutputTitleSize", hard_devices[idx].dev_name);
  69. CHANGE_D(nn, dev_title_size);
  70. (void) sprintf(nn, "%s.OutputAxisFont", hard_devices[idx].dev_name);
  71. CHANGE_S(nn, dev_axis_font);
  72. (void) sprintf(nn, "%s.OutputAxisSize", hard_devices[idx].dev_name);
  73. CHANGE_D(nn, dev_axis_size);
  74. if (hard_devices[idx].dev_printer[0] == '$') {
  75.     extern char *getenv();
  76.     char *ptr;
  77.     if ((ptr = getenv(&hard_devices[idx].dev_printer[1]))) {
  78. (void) strncpy(hard_devices[idx].dev_printer, ptr, MFNAME - 1);
  79. hard_devices[idx].dev_printer[MFNAME - 1] = '';
  80.     }
  81. }
  82.     }
  83. }