home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume11 / starchart / part21 < prev    next >
Text File  |  1990-03-25  |  34KB  |  1,242 lines

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