home *** CD-ROM | disk | FTP | other *** search
/ Garbo / Garbo.cdr / pc / source / star.lzh / star.21 < prev    next >
Encoding:
Text File  |  1990-04-06  |  33.2 KB  |  1,235 lines

  1.  
  2. #! /bin/sh
  3. # This is a shell archive.  Remove anything before this line, then unpack
  4. # it by saving it into a file and typing "sh file".  To overwrite existing
  5. # files, type "sh file -c".  You can also feed this as standard input via
  6. # unshar, or by typing "sh <file", e.g..  If this archive is complete, you
  7. # will see the following message at the end:
  8. #        "End of archive 21 (of 32)."
  9. # Contents:  starchart/sXawD.c.ab
  10. PATH=/bin:/usr/bin:/usr/ucb ; export PATH
  11. if test -f 'starchart/sXawD.c.ab' -a "${1}" != "-c" ; then 
  12.   echo shar: Will not clobber existing file \"'starchart/sXawD.c.ab'\"
  13. else
  14. echo shar: Extracting \"'starchart/sXawD.c.ab'\" \(31373 characters\)
  15. sed "s/^X//" >'starchart/sXawD.c.ab' <<'END_OF_FILE'
  16. X    LayersD.all_layer[i] = all_layer[i];
  17. X  LayersD.numlayers = numlayers;
  18. X
  19. X  current_dialog = LayersDialog;
  20. X  XtPopup(pwidg, XtGrabNonexclusive);
  21. X  layers_help();
  22. X}
  23. X
  24. X/* mapfiles widget
  25. X   Set mapfiles array
  26. X*/
  27. Xvoid Map_files(widget,closure,callData)
  28. X    Widget widget;
  29. X    caddr_t closure;        /* Widget */
  30. X    caddr_t callData;
  31. X{
  32. X  Widget pshell, pwidg, pform;
  33. X  static Arg shell_args[] = {
  34. X    { XtNwidth, (XtArgVal) 100},
  35. X  };
  36. X  char *dlog_name = "mapfiles";
  37. X  void ftype_select();
  38. X  Arg Button_arg[10], Label_arg[10];
  39. X  Cardinal NButton_args, NLabel_args;
  40. X  static XtCallbackRec callback[2];
  41. X  Widget twidge1, twidge2, higher_widge;
  42. X  Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
  43. X  int i;
  44. X  char *cp;
  45. X
  46. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  47. X  NButton_args = 1;
  48. X
  49. X  /* Labels should be left justified, and not have borders */
  50. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  51. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  52. X  NLabel_args = 2;
  53. X
  54. X
  55. X  /* Create shell and shell widget */
  56. X  pshell = XtCreatePopupShell(dlog_name,
  57. X                  topLevelShellWidgetClass,
  58. X                  widget, shell_args, XtNumber(shell_args));
  59. X  pwidg = 
  60. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  61. X
  62. X  /* Create this dialog box */
  63. X  pform = 
  64. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  65. X
  66. X
  67. X  /* Create widgets in the box
  68. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  69. X     or XtNhorizDistance and XtNvertDistance
  70. X     arg[1] sets horizontal position, arg[2] sets vertical
  71. X     Each has a callback if appropriate
  72. X     */
  73. X
  74. X
  75. X  twidge1 = 
  76. X    XtCreateManagedWidget("Specify data files and types to be used",
  77. X              labelWidgetClass, pform, 
  78. X              Label_arg, NLabel_args);
  79. X
  80. X  higher_widge = twidge1;
  81. X  for (i = 0; i < MAXMAPFILES; i++) {
  82. X    Map_filesD.mapnum[i] = i;
  83. X    strcpy(Map_filesD.mapfiles[i], mapfiles[i]);
  84. X    Map_filesD.mapftypes[i] = mapftypes[i];
  85. X
  86. X    Map_filesD.file_wid[i] =
  87. X      twidge2 = Get_string("File:", twidge1, pform,
  88. X               Map_filesD.mapfiles[i],
  89. X               MAXPATHLEN, 300, 300);
  90. X    twidge1 = twidge2;
  91. X
  92. X
  93. X    XtSetArg(Label_arg[2], XtNfromHoriz, twidge1);
  94. X    XtSetArg(Label_arg[3], XtNfromVert, higher_widge);
  95. X    NLabel_args = 4;
  96. X
  97. X    twidge2 = 
  98. X      XtCreateManagedWidget(" Type:",
  99. X                labelWidgetClass, pform, 
  100. X                Label_arg, NLabel_args);
  101. X    twidge1 = twidge2;
  102. X
  103. X    callback[0].callback = ftype_select;
  104. X    callback[0].closure = (caddr_t) ((int *) &(Map_filesD.mapnum[i]));
  105. X    XtSetArg(Button_arg[0], XtNcallback, callback);
  106. X    XtSetArg(Button_arg[1], XtNfromHoriz,  twidge1);
  107. X    XtSetArg(Button_arg[2], XtNfromVert,  higher_widge);
  108. X
  109. X    NButton_args = 3;
  110. X    cp = filetype_strings[mapftypes[i]];
  111. X    Map_filesD.ftype_wid[i] =
  112. X      twidge2 =
  113. X    XtCreateManagedWidget(cp,
  114. X                  commandWidgetClass, pform,
  115. X                  Button_arg, NButton_args);
  116. X    twidge1 = twidge2;
  117. X    higher_widge = twidge1;
  118. X  }
  119. X
  120. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  121. X
  122. X  callback[0].callback = mapf_apply;
  123. X  callback[0].closure = (caddr_t)pwidg;
  124. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  125. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  126. X  NButton_args = 3;
  127. X  apply_widge = 
  128. X    XtCreateManagedWidget( " Apply ",
  129. X            commandWidgetClass, pform, Button_arg, NButton_args);
  130. X  bottom_widge = apply_widge;
  131. X
  132. X  callback[0].callback = do_dismiss;
  133. X  callback[0].closure = (caddr_t)pwidg;
  134. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  135. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  136. X  dismiss_widge = 
  137. X    XtCreateManagedWidget( "Dismiss",
  138. X            commandWidgetClass, pform, Button_arg, NButton_args);
  139. X
  140. X  callback[0].callback = do_cancel;
  141. X  callback[0].closure = (caddr_t)pwidg;
  142. X  XtSetArg(Button_arg[1], XtNfromHoriz,  dismiss_widge);
  143. X  cancel_widge = 
  144. X    XtCreateManagedWidget( "Cancel ",
  145. X            commandWidgetClass, pform, Button_arg, NButton_args);
  146. X
  147. X
  148. X  /* Save the current values */
  149. X  /* names and types set above */
  150. X  Map_filesD.nummapfiles = nummapfiles;
  151. X
  152. X  current_dialog = Map_filesDialog;
  153. X  XtPopup(pwidg, XtGrabNonexclusive);
  154. X  dfiles_help();
  155. X}
  156. X
  157. X/* projection_mode widget
  158. X   Set projection mode of chart to be
  159. X   SANSONS, STEREOGR, GNOMONIC, ORTHOGR, or RECTANGULAR 
  160. X*/
  161. Xvoid Projection_mode(widget,closure,callData)
  162. X    Widget widget;
  163. X    caddr_t closure;        /* Widget */
  164. X    caddr_t callData;
  165. X{
  166. X  Widget pshell, pwidg, pform;
  167. X  static Arg shell_args[] = {
  168. X    { XtNwidth, (XtArgVal) 100},
  169. X  };
  170. X  char *dlog_name = "projection_mode";
  171. X  void mode_select();
  172. X  Arg Button_arg[10], Label_arg[10];
  173. X  Cardinal NButton_args, NLabel_args;
  174. X  static XtCallbackRec callback[2];
  175. X  Widget twidge1, twidge2;
  176. X  Widget bottom_widge, dismiss_widge, cancel_widge;
  177. X  char *tcp;
  178. X
  179. X
  180. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  181. X  NButton_args = 1;
  182. X
  183. X  /* Labels should be left justified, and not have borders */
  184. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  185. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  186. X  NLabel_args = 2;
  187. X
  188. X
  189. X  /* Create shell and shell widget */
  190. X  pshell = XtCreatePopupShell(dlog_name,
  191. X                  topLevelShellWidgetClass,
  192. X                  widget, shell_args, XtNumber(shell_args));
  193. X  pwidg = 
  194. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  195. X
  196. X  /* Create this dialog box */
  197. X  pform = 
  198. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  199. X
  200. X
  201. X  /* Create widgets in the box
  202. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  203. X     or XtNhorizDistance and XtNvertDistance
  204. X     arg[1] sets horizontal position, arg[2] sets vertical
  205. X     Each has a callback if appropriate
  206. X     */
  207. X
  208. X
  209. X  twidge1 = 
  210. X    XtCreateManagedWidget("Specify Projection mode (press button)",
  211. X              labelWidgetClass, pform, 
  212. X              Label_arg, NLabel_args);
  213. X
  214. X  /* set mode */
  215. X  callback[0].callback = mode_select;
  216. X  callback[0].closure = (caddr_t) "projection_mode";
  217. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  218. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  219. X  NButton_args = 3;
  220. X
  221. X  tcp = proj_mode_strings[all_proj_mode];
  222. X
  223. X  twidge2 =
  224. X    XtCreateManagedWidget(tcp,
  225. X              commandWidgetClass, pform, Button_arg, NButton_args);
  226. X
  227. X  twidge1 = twidge2;
  228. X
  229. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  230. X
  231. X
  232. X  
  233. X
  234. X
  235. X  callback[0].callback = do_dismiss;
  236. X  callback[0].closure = (caddr_t)pwidg;
  237. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  238. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  239. X  dismiss_widge = 
  240. X    XtCreateManagedWidget( "Dismiss",
  241. X            commandWidgetClass, pform, Button_arg, NButton_args);
  242. X
  243. X  callback[0].callback = do_cancel;
  244. X  callback[0].closure = (caddr_t)pwidg;
  245. X  XtSetArg(Button_arg[1], XtNfromHoriz,  dismiss_widge);
  246. X  cancel_widge = 
  247. X    XtCreateManagedWidget( "Cancel ",
  248. X            commandWidgetClass, pform, Button_arg, NButton_args);
  249. X
  250. X
  251. X  /* Save the current values */
  252. X  Projection_modeD.all_proj_mode = all_proj_mode;
  253. X
  254. X  current_dialog = Projection_modeDialog;
  255. X  XtPopup(pwidg, XtGrabNonexclusive);
  256. X  pmode_help();
  257. X}
  258. X
  259. X/********** Dialog ***************/
  260. X/* Magnitude label dialog
  261. X   set all_vmin, all_vmax (use_vmin)
  262. X   nomaglbls
  263. X*/
  264. X
  265. Xvoid Magnitude_labels(widget,closure,callData)
  266. X    Widget widget;
  267. X    caddr_t closure;        /* Widget */
  268. X    caddr_t callData;
  269. X{
  270. X  Widget pshell, pwidg, pform;
  271. X  void nomaglbls_toggle();
  272. X  static Arg shell_args[] = {
  273. X    { XtNwidth, (XtArgVal) 100},
  274. X  };
  275. X  char *dlog_name = "maglbls";
  276. X  Arg Button_arg[10], Label_arg[10];
  277. X  Cardinal NButton_args, NLabel_args;
  278. X  static XtCallbackRec callback[2];
  279. X  Widget twidge1, twidge2;
  280. X  Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
  281. X
  282. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  283. X  NButton_args = 1;
  284. X
  285. X  /* Labels should be left justified, and not have borders */
  286. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  287. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  288. X  NLabel_args = 2;
  289. X
  290. X
  291. X  /* Create shell and shell widget */
  292. X  pshell = XtCreatePopupShell(dlog_name,
  293. X                  topLevelShellWidgetClass,
  294. X                  widget, shell_args, XtNumber(shell_args));
  295. X  pwidg = 
  296. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  297. X
  298. X  /* Create this dialog box */
  299. X  pform = 
  300. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  301. X
  302. X
  303. X  /* Create widgets in the box
  304. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  305. X     or XtNhorizDistance and XtNvertDistance
  306. X     arg[1] sets horizontal position, arg[2] sets vertical
  307. X     Each has a callback if appropriate
  308. X     */
  309. X
  310. X
  311. X  twidge1 = 
  312. X    XtCreateManagedWidget("Specify star magnitude labeling",
  313. X              labelWidgetClass, pform, 
  314. X              Label_arg, NLabel_args);
  315. X
  316. X  /* Get minimum */
  317. X  Magnitude_labelsD.all_vmin_wid =
  318. X    twidge2 = Get_float("Brightest:  ", twidge1, pform, all_vmin,
  319. X              Magnitude_labelsD.all_vmin_str,
  320. X              sizeof(Magnitude_labelsD.all_vmin_str));
  321. X  twidge1 = twidge2;
  322. X
  323. X  /* Get maximum */
  324. X  Magnitude_labelsD.all_vmax_wid =
  325. X    twidge2 = Get_float("Faintest:   ", twidge1, pform, all_vmax,
  326. X              Magnitude_labelsD.all_vmax_str,
  327. X              sizeof(Magnitude_labelsD.all_vmax_str));
  328. X  twidge1 = twidge2;
  329. X
  330. X
  331. X  /* Toggle nomaglabls */
  332. X  callback[0].callback = nomaglbls_toggle;
  333. X  callback[0].closure = (caddr_t) "nomablbls";
  334. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  335. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  336. X  NButton_args = 3;
  337. X  twidge2 =
  338. X    XtCreateManagedWidget(nomaglbls ?
  339. X              "Don't Label stars with their magnitudes":
  340. X              "Label stars with their magnitudes      ",
  341. X            commandWidgetClass, pform, Button_arg, NButton_args);
  342. X
  343. X  twidge1 = twidge2;
  344. X
  345. X
  346. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  347. X
  348. X
  349. X  
  350. X
  351. X
  352. X  callback[0].callback = maglbl_apply;
  353. X  callback[0].closure = (caddr_t)pwidg;
  354. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  355. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  356. X  NButton_args = 3;
  357. X  apply_widge = 
  358. X    XtCreateManagedWidget( " Apply ",
  359. X            commandWidgetClass, pform, Button_arg, NButton_args);
  360. X  bottom_widge = apply_widge;
  361. X
  362. X  callback[0].callback = do_dismiss;
  363. X  callback[0].closure = (caddr_t)pwidg;
  364. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  365. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  366. X  dismiss_widge = 
  367. X    XtCreateManagedWidget( "Dismiss",
  368. X            commandWidgetClass, pform, Button_arg, NButton_args);
  369. X
  370. X  callback[0].callback = do_cancel;
  371. X  callback[0].closure = (caddr_t)pwidg;
  372. X  XtSetArg(Button_arg[1], XtNfromHoriz,  dismiss_widge);
  373. X  cancel_widge = 
  374. X    XtCreateManagedWidget( "Cancel ",
  375. X            commandWidgetClass, pform, Button_arg, NButton_args);
  376. X
  377. X
  378. X  /* Save the current values */
  379. X  Magnitude_labelsD.all_vmin = all_vmin;
  380. X  Magnitude_labelsD.all_vmax = all_vmax;
  381. X
  382. X  current_dialog = Magnitude_labelsDialog;
  383. X  XtPopup(pwidg, XtGrabNonexclusive);
  384. X  maglabels_help();
  385. X}
  386. X
  387. X/********** Dialog ***************/
  388. X/* Grid dialog
  389. X   set all_rstep, all_dstep, all_rstrt, all_dstrt,
  390. X   no_ra_grid, no_dec_grid
  391. X*/
  392. X
  393. Xvoid Grid(widget,closure,callData)
  394. X    Widget widget;
  395. X    caddr_t closure;        /* Widget */
  396. X    caddr_t callData;
  397. X{
  398. X  Widget pshell, pwidg, pform;
  399. X  void no_ra_grid_toggle();
  400. X  void no_dec_grid_toggle();
  401. X  static Arg shell_args[] = {
  402. X    { XtNwidth, (XtArgVal) 100},
  403. X  };
  404. X  char *dlog_name = "grid";
  405. X  Arg Button_arg[10], Label_arg[10];
  406. X  Cardinal NButton_args, NLabel_args;
  407. X  static XtCallbackRec callback[2];
  408. X  Widget twidge1, twidge2;
  409. X  Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
  410. X
  411. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  412. X  NButton_args = 1;
  413. X
  414. X  /* Labels should be left justified, and not have borders */
  415. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  416. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  417. X  NLabel_args = 2;
  418. X
  419. X
  420. X  /* Create shell and shell widget */
  421. X  pshell = XtCreatePopupShell(dlog_name,
  422. X                  topLevelShellWidgetClass,
  423. X                  widget, shell_args, XtNumber(shell_args));
  424. X  pwidg = 
  425. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  426. X
  427. X  /* Create this dialog box */
  428. X  pform = 
  429. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  430. X
  431. X
  432. X  /* Create widgets in the box
  433. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  434. X     or XtNhorizDistance and XtNvertDistance
  435. X     arg[1] sets horizontal position, arg[2] sets vertical
  436. X     Each has a callback if appropriate
  437. X     */
  438. X
  439. X
  440. X  twidge1 = 
  441. X    XtCreateManagedWidget("Specify Grid",
  442. X              labelWidgetClass, pform, 
  443. X              Label_arg, NLabel_args);
  444. X
  445. X
  446. X  if (all_rstep == 0) all_rstep = 15.0;
  447. X  if (all_dstep == 0) all_dstep = 5.0;
  448. X  /* Get ra_step */
  449. X  GridD.all_rstep_wid =
  450. X    twidge2 = Get_float("R.A. Step:   ", twidge1, pform, dtof(all_rstep/15.0),
  451. X              GridD.all_rstep_str,
  452. X              sizeof(GridD.all_rstep_str));
  453. X  twidge1 = twidge2;
  454. X
  455. X  /* Get dec_step */
  456. X  GridD.all_dstep_wid =
  457. X    twidge2 = Get_float("Dec. Step:   ", twidge1, pform, all_dstep,
  458. X              GridD.all_dstep_str,
  459. X              sizeof(GridD.all_dstep_str));
  460. X  twidge1 = twidge2;
  461. X
  462. X
  463. X  /* Get ra_strt */
  464. X  GridD.all_rstrt_wid =
  465. X    twidge2 = Get_float("R.A. Start:  ", twidge1, pform, dtof(all_rstrt/15.0),
  466. X              GridD.all_rstrt_str,
  467. X              sizeof(GridD.all_rstrt_str));
  468. X  twidge1 = twidge2;
  469. X
  470. X  /* Get dec_strt */
  471. X  GridD.all_dstrt_wid =
  472. X    twidge2 = Get_float("Dec. Start:  ", twidge1, pform, all_dstrt,
  473. X              GridD.all_dstrt_str,
  474. X              sizeof(GridD.all_dstrt_str));
  475. X  twidge1 = twidge2;
  476. X
  477. X
  478. X
  479. X  /* Toggle ra */
  480. X  callback[0].callback = no_ra_grid_toggle;
  481. X  callback[0].closure = (caddr_t) "no_ra_grid";
  482. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  483. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  484. X  NButton_args = 3;
  485. X  twidge2 =
  486. X    XtCreateManagedWidget(no_ra_grid ?
  487. X              "  No R.A. grid":
  488. X              "Show R.A. grid",
  489. X            commandWidgetClass, pform, Button_arg, NButton_args);
  490. X
  491. X  twidge1 = twidge2;
  492. X
  493. X  /* Toggle dec */
  494. X  callback[0].callback = no_dec_grid_toggle;
  495. X  callback[0].closure = (caddr_t) "no_dec_grid";
  496. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  497. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  498. X  NButton_args = 3;
  499. X  twidge2 =
  500. X    XtCreateManagedWidget(no_dec_grid ?
  501. X              "  No Dec. grid":
  502. X              "Show Dec. grid",
  503. X            commandWidgetClass, pform, Button_arg, NButton_args);
  504. X
  505. X  twidge1 = twidge2;
  506. X
  507. X
  508. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  509. X
  510. X
  511. X  
  512. X
  513. X
  514. X  callback[0].callback = grid_apply;
  515. X  callback[0].closure = (caddr_t)pwidg;
  516. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  517. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  518. X  NButton_args = 3;
  519. X  apply_widge = 
  520. X    XtCreateManagedWidget( " Apply ",
  521. X            commandWidgetClass, pform, Button_arg, NButton_args);
  522. X  bottom_widge = apply_widge;
  523. X
  524. X  callback[0].callback = do_dismiss;
  525. X  callback[0].closure = (caddr_t)pwidg;
  526. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  527. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  528. X  dismiss_widge = 
  529. X    XtCreateManagedWidget( "Dismiss",
  530. X            commandWidgetClass, pform, Button_arg, NButton_args);
  531. X
  532. X  callback[0].callback = do_cancel;
  533. X  callback[0].closure = (caddr_t)pwidg;
  534. X  XtSetArg(Button_arg[1], XtNfromHoriz,  dismiss_widge);
  535. X  cancel_widge = 
  536. X    XtCreateManagedWidget( "Cancel ",
  537. X            commandWidgetClass, pform, Button_arg, NButton_args);
  538. X
  539. X
  540. X  /* Save the current values */
  541. X  GridD.all_rstep = all_rstep;
  542. X  GridD.all_dstep = all_dstep;
  543. X  GridD.all_rstrt = all_rstrt;
  544. X  GridD.all_dstrt = all_dstrt;
  545. X  GridD.no_ra_grid = no_ra_grid;
  546. X  GridD.no_dec_grid = no_dec_grid;
  547. X
  548. X  current_dialog = GridDialog;
  549. X  XtPopup(pwidg, XtGrabNonexclusive);
  550. X  grid_help();
  551. X}
  552. X
  553. Xvoid Edit_mapwins(widget,closure,callData)
  554. X    Widget widget;
  555. X    caddr_t closure;        /* Widget */
  556. X    caddr_t callData;
  557. X{
  558. X  Widget pshell, pwidg, pform;
  559. X  void e_mapwins_toggle();
  560. X  static Arg shell_args[] = {
  561. X    { XtNwidth, (XtArgVal) 100},
  562. X  };
  563. X  char *dlog_name = "x parms";
  564. X  Arg Button_arg[10], Label_arg[10];
  565. X  Cardinal NButton_args, NLabel_args;
  566. X  static XtCallbackRec callback[2];
  567. X  Widget twidge1, twidge2;
  568. X  Widget bottom_widge, dismiss_widge;
  569. X
  570. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  571. X  NButton_args = 1;
  572. X
  573. X  /* Labels should be left justified, and not have borders */
  574. X  XtSetArg(Label_arg[0], XtNborderWidth, 0);
  575. X  XtSetArg(Label_arg[1], XtNjustify, XtJustifyLeft);
  576. X  NLabel_args = 2;
  577. X
  578. X
  579. X  /* Create shell and shell widget */
  580. X  pshell = XtCreatePopupShell(dlog_name,
  581. X                  topLevelShellWidgetClass,
  582. X                  widget, shell_args, XtNumber(shell_args));
  583. X  pwidg = 
  584. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  585. X
  586. X  /* Create this dialog box */
  587. X  pform = 
  588. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  589. X
  590. X
  591. X  /* Create widgets in the box
  592. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  593. X     or XtNhorizDistance and XtNvertDistance
  594. X     arg[1] sets horizontal position, arg[2] sets vertical
  595. X     Each has a callback if appropriate
  596. X     */
  597. X
  598. X
  599. X  twidge1 = 
  600. X    XtCreateManagedWidget("Edit map window structure",
  601. X              labelWidgetClass, pform, 
  602. X              Label_arg, NLabel_args);
  603. X
  604. X  XtSetArg(Label_arg[2], XtNhorizDistance,  4);
  605. X  XtSetArg(Label_arg[3], XtNfromVert,  twidge1);
  606. X  NLabel_args = 4;
  607. X  twidge2 = 
  608. X    XtCreateManagedWidget("(Editing will be performed",
  609. X              labelWidgetClass, pform, 
  610. X              Label_arg, NLabel_args);
  611. X  twidge1 = twidge2;
  612. X
  613. X  XtSetArg(Label_arg[3], XtNfromVert,  twidge1);
  614. X  twidge2 = 
  615. X    XtCreateManagedWidget("when \"Draw Chart\" is selected)",
  616. X              labelWidgetClass, pform, 
  617. X              Label_arg, NLabel_args);
  618. X  twidge1 = twidge2;
  619. X
  620. X  /* Toggle edit_mapwins */
  621. X  callback[0].callback = e_mapwins_toggle;
  622. X  callback[0].closure = (caddr_t) "edit mapwins";
  623. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  624. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  625. X  NButton_args = 3;
  626. X  twidge2 =
  627. X    XtCreateManagedWidget(edit_mapwins ?
  628. X              "   Edit   ":
  629. X              "Don't Edit",
  630. X            commandWidgetClass, pform, Button_arg, NButton_args);
  631. X
  632. X  twidge1 = twidge2;
  633. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  634. X
  635. X
  636. X  
  637. X
  638. X
  639. X  callback[0].callback = do_dismiss;
  640. X  callback[0].closure = (caddr_t)pwidg;
  641. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  642. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  643. X  dismiss_widge = 
  644. X    XtCreateManagedWidget( "Dismiss",
  645. X            commandWidgetClass, pform, Button_arg, NButton_args);
  646. X
  647. X  /* Save the current values */
  648. X  current_dialog = Edit_mapwinsDialog;
  649. X  XtPopup(pwidg, XtGrabNonexclusive);
  650. X  emapwins_help();
  651. X}
  652. X
  653. X/********** Dialog ***************/
  654. X/* 
  655. X  Set X specific parameters
  656. X  post_preview, post_landscape, use_backup, is_color
  657. X*/
  658. X
  659. Xvoid X_parms(widget,closure,callData)
  660. X    Widget widget;
  661. X    caddr_t closure;        /* Widget */
  662. X    caddr_t callData;
  663. X{
  664. X  Widget pshell, pwidg, pform;
  665. X  void pp_select();
  666. X  void use_back_toggle();
  667. X  void is_color_toggle();
  668. X  static Arg shell_args[] = {
  669. X    { XtNwidth, (XtArgVal) 100},
  670. X  };
  671. X  char *dlog_name = "x parms";
  672. X  Arg Button_arg[10], Label_arg[10];
  673. X  Cardinal NButton_args, NLabel_args;
  674. X  static XtCallbackRec callback[2];
  675. X  Widget twidge1, twidge2;
  676. X  Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
  677. X  char *cp;
  678. X
  679. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  680. X  NButton_args = 1;
  681. X
  682. X  /* Labels should be left justified, and not have borders */
  683. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  684. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  685. X  NLabel_args = 2;
  686. X
  687. X
  688. X  /* Create shell and shell widget */
  689. X  pshell = XtCreatePopupShell(dlog_name,
  690. X                  topLevelShellWidgetClass,
  691. X                  widget, shell_args, XtNumber(shell_args));
  692. X  pwidg = 
  693. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  694. X
  695. X  /* Create this dialog box */
  696. X  pform = 
  697. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  698. X
  699. X
  700. X  /* Create widgets in the box
  701. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  702. X     or XtNhorizDistance and XtNvertDistance
  703. X     arg[1] sets horizontal position, arg[2] sets vertical
  704. X     Each has a callback if appropriate
  705. X     */
  706. X
  707. X
  708. X  twidge1 = 
  709. X    XtCreateManagedWidget("X11 specific controls",
  710. X              labelWidgetClass, pform, 
  711. X              Label_arg, NLabel_args);
  712. X
  713. X  /* Toggle post_preview */
  714. X  if (fixed_size) {
  715. X    cp = " Use Fixed window dimensions  ";
  716. X    pp_status = 3;
  717. X  } else if (post_preview) {
  718. X    if (post_landscape) {
  719. X      cp = "Use PostScript landscape page ";
  720. X      pp_status = 1;
  721. X    } else {
  722. X      cp = "Use PostScript page dimensions";
  723. X      pp_status = 2;
  724. X    };
  725. X  } else {
  726. X    cp = "Use flexible window dimensions";
  727. X    pp_status = 0;
  728. X  };
  729. X  callback[0].callback = pp_select;
  730. X  callback[0].closure = (caddr_t) "post preview";
  731. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  732. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  733. X  NButton_args = 3;
  734. X  twidge2 =
  735. X    XtCreateManagedWidget(cp,
  736. X            commandWidgetClass, pform, Button_arg, NButton_args);
  737. X
  738. X  twidge1 = twidge2;
  739. X
  740. X
  741. X  X_parmsD.fixed_width_wid =
  742. X    twidge2 =
  743. X      Get_int("Fixed width: ",
  744. X          twidge1, pform, fixed_width, X_parmsD.fixed_width_str,
  745. X          sizeof(X_parmsD.fixed_width_str));
  746. X  twidge1 = twidge2;
  747. X
  748. X  X_parmsD.fixed_height_wid =
  749. X    twidge2 =
  750. X      Get_int("Fixed height:",
  751. X          twidge1, pform, fixed_height, X_parmsD.fixed_height_str,
  752. X          sizeof(X_parmsD.fixed_height_str));
  753. X  twidge1 = twidge2;
  754. X
  755. X  /* Toggle use_backup */
  756. X  callback[0].callback = use_back_toggle;
  757. X  callback[0].closure = (caddr_t) "use back";
  758. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  759. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  760. X  NButton_args = 3;
  761. X  twidge2 =
  762. X    XtCreateManagedWidget(use_backup ?
  763. X              "Use X Backing store":
  764. X              "No X Backing store ",
  765. X              commandWidgetClass, pform, Button_arg, NButton_args);
  766. X
  767. X  twidge1 = twidge2;
  768. X
  769. X
  770. X  /* Toggle is_color */
  771. X  callback[0].callback = is_color_toggle;
  772. X  callback[0].closure = (caddr_t) "is color";
  773. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  774. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  775. X  NButton_args = 3;
  776. X  twidge2 =
  777. X    XtCreateManagedWidget(is_color ?
  778. X              "Color Display      ":
  779. X              "Monochrome Display ",
  780. X            commandWidgetClass, pform, Button_arg, NButton_args);
  781. X
  782. X  twidge1 = twidge2;
  783. X
  784. X
  785. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  786. X
  787. X
  788. X  
  789. X  callback[0].callback = xparm_apply;
  790. X  callback[0].closure = (caddr_t)pwidg;
  791. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  792. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  793. X  NButton_args = 3;
  794. X  apply_widge = 
  795. X    XtCreateManagedWidget( " Apply ",
  796. X            commandWidgetClass, pform, Button_arg, NButton_args);
  797. X  bottom_widge = apply_widge;
  798. X
  799. X
  800. X  callback[0].callback = do_dismiss;
  801. X  callback[0].closure = (caddr_t)pwidg;
  802. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  803. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  804. X  dismiss_widge = 
  805. X    XtCreateManagedWidget( "Dismiss",
  806. X            commandWidgetClass, pform, Button_arg, NButton_args);
  807. X
  808. X  callback[0].callback = do_cancel;
  809. X  callback[0].closure = (caddr_t)pwidg;
  810. X  XtSetArg(Button_arg[1], XtNfromHoriz,  dismiss_widge);
  811. X  cancel_widge = 
  812. X    XtCreateManagedWidget( "Cancel ",
  813. X            commandWidgetClass, pform, Button_arg, NButton_args);
  814. X
  815. X
  816. X  /* Save the current values */
  817. X  X_parmsD.post_preview = post_preview;
  818. X  X_parmsD.post_landscape = post_landscape;
  819. X  X_parmsD.use_backup = use_backup;
  820. X  X_parmsD.is_color = is_color;
  821. X  X_parmsD.fixed_size = fixed_size;
  822. X  X_parmsD.fixed_width = fixed_width;
  823. X  X_parmsD.fixed_height = fixed_height;
  824. X
  825. X  current_dialog = X_parmsDialog;
  826. X  XtPopup(pwidg, XtGrabNonexclusive);
  827. X  xparms_help();
  828. X}
  829. X
  830. X
  831. X
  832. X/********** Dialog ***************/
  833. X/* Save / Load file
  834. X   set read_mapwin_file, write_mapwin_file, mapwin_file
  835. X*/
  836. X
  837. Xvoid Save_Load_file(widget,closure,callData)
  838. X    Widget widget;
  839. X    caddr_t closure;        /* Widget */
  840. X    caddr_t callData;
  841. X{
  842. X  Widget pshell, pwidg, pform;
  843. X  static Arg shell_args[] = {
  844. X    { XtNwidth, (XtArgVal) 100},
  845. X  };
  846. X  void saveload_select();
  847. X  char *dlog_name = "saveload";
  848. X  Arg Button_arg[10], Label_arg[10];
  849. X  Cardinal NButton_args, NLabel_args;
  850. X  static XtCallbackRec callback[2];
  851. X  Widget twidge1, twidge2;
  852. X  Widget bottom_widge, apply_widge, dismiss_widge;
  853. X
  854. X  XtSetArg( Button_arg[0], XtNcallback, callback );
  855. X  NButton_args = 1;
  856. X
  857. X  /* Labels should be left justified, and not have borders */
  858. X  XtSetArg( Label_arg[0], XtNborderWidth, 0);
  859. X  XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
  860. X  NLabel_args = 2;
  861. X
  862. X
  863. X  /* Create shell and shell widget */
  864. X  pshell = XtCreatePopupShell(dlog_name,
  865. X                  topLevelShellWidgetClass,
  866. X                  widget, shell_args, XtNumber(shell_args));
  867. X  pwidg = 
  868. X    XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
  869. X
  870. X  /* Create this dialog box */
  871. X  pform = 
  872. X    XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
  873. X
  874. X
  875. X  /* Create widgets in the box
  876. X     Each has coordinates specified by either XtNfromHoriz and XtNfromVert
  877. X     or XtNhorizDistance and XtNvertDistance
  878. X     arg[1] sets horizontal position, arg[2] sets vertical
  879. X     Each has a callback if appropriate
  880. X     */
  881. X
  882. X
  883. X  twidge1 = 
  884. X    XtCreateManagedWidget(
  885. X              "Save or Load mapwin file, or write .starrc format file",
  886. X              labelWidgetClass, pform, 
  887. X              Label_arg, NLabel_args);
  888. X
  889. X
  890. X
  891. X  /* Get Mapwin file name */
  892. X  twidge2 = Get_string("Mapwin file:       ", twidge1, pform,
  893. X              mapwin_file,
  894. X              MAXPATHLEN, 0, 100);
  895. X  twidge1 = twidge2;
  896. X
  897. X
  898. X  if (read_mapwin_file)
  899. X    save_load_state = READ_MAPWIN;
  900. X  else if (write_mapwin_file)
  901. X    save_load_state = WRITE_MAPWIN;
  902. X  else
  903. X    save_load_state = NO_MAPWIN;
  904. X
  905. X  callback[0].callback = saveload_select;
  906. X  callback[0].closure = (caddr_t) "saveload";
  907. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  908. X  XtSetArg(Button_arg[2], XtNfromVert,  twidge1);
  909. X  NButton_args = 3;
  910. X  twidge2 =
  911. X    XtCreateManagedWidget(save_load_str[save_load_state],
  912. X            commandWidgetClass, pform, Button_arg, NButton_args);
  913. X
  914. X  twidge1 = twidge2;
  915. X
  916. X  /* Get .starrc file name */
  917. X  twidge2 = Get_string("Write .starrc file:", twidge1, pform,
  918. X              write_rcfile,
  919. X              MAXPATHLEN, 0, 100);
  920. X  twidge1 = twidge2;
  921. X
  922. X
  923. X  bottom_widge = twidge1;    /* The bottommost widget so far */
  924. X
  925. X
  926. X  
  927. X  callback[0].callback = save_load_apply;
  928. X  callback[0].closure = (caddr_t)pwidg;
  929. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  930. X  XtSetArg(Button_arg[2], XtNfromVert,  bottom_widge);
  931. X  NButton_args = 3;
  932. X  apply_widge = 
  933. X    XtCreateManagedWidget( " Apply ",
  934. X            commandWidgetClass, pform, Button_arg, NButton_args);
  935. X
  936. X  callback[0].callback = do_dismiss;
  937. X  callback[0].closure = (caddr_t)pwidg;
  938. X  XtSetArg(Button_arg[1], XtNhorizDistance,  4);
  939. X  XtSetArg(Button_arg[2], XtNfromVert,  apply_widge);
  940. X  dismiss_widge = 
  941. X    XtCreateManagedWidget( "Dismiss",
  942. X            commandWidgetClass, pform, Button_arg, NButton_args);
  943. X
  944. X  XtPopup(pwidg, XtGrabNonexclusive);
  945. X  svld_help();
  946. X}
  947. X
  948. X
  949. X
  950. X/* Functions called by dialogs */
  951. X
  952. Xvoid invert_toggle(widget,namestr,callData)
  953. X    Widget widget;
  954. X    caddr_t namestr;
  955. X    caddr_t callData;
  956. X{
  957. X  Arg args[1];
  958. X
  959. X  all_invert = !all_invert;
  960. X
  961. X  XtSetArg( args[0], XtNlabel, all_invert ? " Inverted ": "  Normal  ");
  962. X
  963. X  XtSetValues(widget, args, (Cardinal)1);
  964. X}
  965. X
  966. X
  967. Xvoid nomaglbls_toggle(widget,namestr,callData)
  968. X    Widget widget;
  969. X    caddr_t namestr;
  970. X    caddr_t callData;
  971. X{
  972. X  Arg args[1];
  973. X
  974. X  nomaglbls = !nomaglbls;
  975. X
  976. X  XtSetArg( args[0], XtNlabel,nomaglbls ?
  977. X              "Don't Label stars with their magnitudes":
  978. X              "Label stars with their magnitudes      ");
  979. X
  980. X  XtSetValues(widget, args, (Cardinal)1);
  981. X}
  982. X
  983. X
  984. Xvoid no_ra_grid_toggle(widget,namestr,callData)
  985. X    Widget widget;
  986. X    caddr_t namestr;
  987. X    caddr_t callData;
  988. X{
  989. X  Arg args[1];
  990. X
  991. X  no_ra_grid = !no_ra_grid;
  992. X
  993. X  XtSetArg( args[0], XtNlabel, no_ra_grid ? "  No R.A. grid":"Show R.A. grid");
  994. X
  995. X  XtSetValues(widget, args, (Cardinal)1);
  996. X}
  997. X
  998. Xvoid no_dec_grid_toggle(widget,namestr,callData)
  999. X    Widget widget;
  1000. X    caddr_t namestr;
  1001. X    caddr_t callData;
  1002. X{
  1003. X  Arg args[1];
  1004. X
  1005. X  no_dec_grid = !no_dec_grid;
  1006. X
  1007. X  XtSetArg( args[0], XtNlabel, no_dec_grid ?
  1008. X       "  No Dec. grid":"Show Dec. grid");
  1009. X
  1010. X  XtSetValues(widget, args, (Cardinal)1);
  1011. X}
  1012. X
  1013. X
  1014. Xvoid type_select(widget,namestr,callData)
  1015. X    Widget widget;
  1016. X    caddr_t namestr;
  1017. X    caddr_t callData;
  1018. X{
  1019. X  Arg args[1];
  1020. X
  1021. X  if (chart_type == THREEPART) {
  1022. X    XtSetArg( args[0], XtNlabel, "Full Page              ");
  1023. X    chart_type = FULLPAGE;
  1024. X  } else {
  1025. X    XtSetArg( args[0], XtNlabel, "Main Map plus Thumbnail");
  1026. X    chart_type = THREEPART;
  1027. X  }
  1028. X  XtSetValues(widget, args, (Cardinal)1);
  1029. X}
  1030. X
  1031. X
  1032. Xvoid mode_select(widget,namestr,callData)
  1033. X    Widget widget;
  1034. X    caddr_t namestr;
  1035. X    caddr_t callData;
  1036. X{
  1037. X  Arg args[1];
  1038. X  char *cp;
  1039. X
  1040. X  all_proj_mode++;
  1041. X  all_proj_mode %= (MAXPMODE+1);
  1042. X  if (all_proj_mode == 0) all_proj_mode = 1;
  1043. X
  1044. X  cp = proj_mode_strings[all_proj_mode];
  1045. X  XtSetArg( args[0], XtNlabel, cp);
  1046. X
  1047. X  XtSetValues(widget, args, (Cardinal)1);
  1048. X}
  1049. X
  1050. X
  1051. Xvoid layer_select(widget, laynump, callData)
  1052. X    Widget widget;
  1053. X    caddr_t laynump;
  1054. X    caddr_t callData;
  1055. X{
  1056. X  Arg args[1];
  1057. X  char *cp;
  1058. X  int i;
  1059. X
  1060. X  i = *((int* ) laynump);
  1061. X
  1062. X  all_layer[i]++;
  1063. X  all_layer[i] %= (MAXLAYNUM+1);
  1064. X
  1065. X  cp = lay_strings[all_layer[i]];
  1066. X  XtSetArg( args[0], XtNlabel, cp);
  1067. X
  1068. X  XtSetValues(widget, args, (Cardinal)1);
  1069. X}
  1070. X
  1071. X
  1072. X
  1073. Xvoid ftype_select(widget, mapnump, callData)
  1074. X    Widget widget;
  1075. X    caddr_t mapnump;
  1076. X    caddr_t callData;
  1077. X{
  1078. X  Arg args[1];
  1079. X  char *cp;
  1080. X  int i;
  1081. X
  1082. X  i = *((int* ) mapnump);
  1083. X
  1084. X  mapftypes[i]++;
  1085. X  mapftypes[i] %= (MAXFTYPES+1);
  1086. X  if (mapftypes[i] == 0) mapftypes[i] = 1;
  1087. X
  1088. X  cp = filetype_strings[mapftypes[i]];
  1089. X  XtSetArg( args[0], XtNlabel, cp);
  1090. X
  1091. X  XtSetValues(widget, args, (Cardinal)1);
  1092. X}
  1093. X
  1094. X
  1095. Xvoid saveload_select(widget, namestr, callData)
  1096. X     Widget widget;
  1097. X     caddr_t namestr;
  1098. X     caddr_t callData;
  1099. X{
  1100. X  Arg args[1];
  1101. X  char *cp;
  1102. X
  1103. X  save_load_state++;
  1104. X  save_load_state %= 3;
  1105. X
  1106. X
  1107. X  cp = save_load_str[save_load_state];
  1108. X  XtSetArg(args[0], XtNlabel, cp);
  1109. X
  1110. X  XtSetValues(widget, args, (Cardinal)1);
  1111. X}
  1112. X
  1113. X
  1114. X
  1115. Xvoid pp_select(widget,namestr,callData)
  1116. X    Widget widget;
  1117. X    caddr_t namestr;
  1118. X    caddr_t callData;
  1119. X{
  1120. X  Arg args[1];
  1121. X  char *cp;
  1122. X
  1123. X  pp_status++;
  1124. X  pp_status %= 4;
  1125. X
  1126. X  /* pp_status:
  1127. X     0: flexible -> post_preview = post_landscape = fixed_size = FALSE;
  1128. X     1: postscript size ->
  1129. X                post_preview = TRUE; post_landscape = fixed_size = FALSE;
  1130. X     2: postscript landscape size ->
  1131. X                post_preview = TRUE; post_landscape = TRUE; fixed_size = FALSE;
  1132. X     3: fixed size -> post_preview = post_landscape = FALSE; fixed_size = TRUE;
  1133. X     */
  1134. X  switch (pp_status) {
  1135. X  case 0:
  1136. X    post_preview = post_landscape = fixed_size = FALSE;
  1137. X    cp = "Use flexible window dimensions";
  1138. X    break;
  1139. X  case 1:
  1140. X    post_preview = TRUE; post_landscape = fixed_size = FALSE;
  1141. X    cp = "Use PostScript page dimensions";
  1142. X    break;
  1143. X  case 2:
  1144. X    post_preview = post_landscape = TRUE; fixed_size = FALSE;
  1145. X    cp = "Use PostScript landscape page ";
  1146. X    break;
  1147. X  case 3:
  1148. X    post_preview = FALSE; fixed_size = TRUE;
  1149. X    cp = " Use Fixed window dimensions  ";
  1150. X    break;
  1151. X  default:
  1152. X    break;
  1153. X  }
  1154. X
  1155. X  XtSetArg( args[0], XtNlabel, cp);
  1156. X  XtSetValues(widget, args, (Cardinal)1);
  1157. X}
  1158. X
  1159. X
  1160. Xvoid use_back_toggle(widget,namestr,callData)
  1161. X    Widget widget;
  1162. X    caddr_t namestr;
  1163. X    caddr_t callData;
  1164. X{
  1165. X  Arg args[1];
  1166. X
  1167. X  use_backup = !use_backup;
  1168. X
  1169. X  XtSetArg( args[0], XtNlabel, use_backup ?
  1170. X              "Use X Backing store":
  1171. X              " No X Backing store");
  1172. X
  1173. X  XtSetValues(widget, args, (Cardinal)1);
  1174. X}
  1175. X
  1176. Xvoid is_color_toggle(widget,namestr,callData)
  1177. X    Widget widget;
  1178. X    caddr_t namestr;
  1179. X    caddr_t callData;
  1180. X{
  1181. X  Arg args[1];
  1182. X
  1183. X  is_color = !is_color;
  1184. X
  1185. X  XtSetArg( args[0], XtNlabel, is_color ?
  1186. X       "     Color Display":
  1187. X       "Monochrome Display");
  1188. X
  1189. X  XtSetValues(widget, args, (Cardinal)1);
  1190. X}
  1191. X
  1192. X
  1193. X
  1194. Xvoid e_mapwins_toggle(widget,namestr,callData)
  1195. X    Widget widget;
  1196. X    caddr_t namestr;
  1197. X    caddr_t callData;
  1198. X{
  1199. X  Arg args[1];
  1200. X
  1201. X  edit_mapwins = !edit_mapwins;
  1202. X
  1203. X  XtSetArg( args[0], XtNlabel, edit_mapwins ?
  1204. X       "   Edit   ":
  1205. X       "Don't Edit");
  1206. X
  1207. X  XtSetValues(widget, args, (Cardinal)1);
  1208. X}
  1209. X
  1210. END_OF_FILE
  1211. if test 31373 -ne `wc -c <'starchart/sXawD.c.ab'`; then
  1212.     echo shar: \"'starchart/sXawD.c.ab'\" unpacked with wrong size!
  1213. fi
  1214. # end of 'starchart/sXawD.c.ab'
  1215. fi
  1216. echo shar: End of archive 21 \(of 32\).
  1217. cp /dev/null ark21isdone
  1218. MISSING=""
  1219. for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 ; do
  1220.     if test ! -f ark${I}isdone ; then
  1221.     MISSING="${MISSING} ${I}"
  1222.     fi
  1223. done
  1224. if test "${MISSING}" = "" ; then
  1225.     echo You have unpacked all 32 archives.
  1226.     rm -f ark[1-9]isdone ark[1-9][0-9]isdone
  1227. else
  1228.     echo You still need to unpack the following archives:
  1229.     echo "        " ${MISSING}
  1230. fi
  1231. ##  End of shell archive.
  1232. exit 0
  1233.  
  1234.  
  1235.