home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Usenet 1994 October
/
usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso
/
misc
/
volume11
/
starchart
/
part21
< prev
next >
Wrap
Text File
|
1990-03-25
|
34KB
|
1,242 lines
Newsgroups: comp.sources.misc
subject: v11i049: starchart 3.2 Part 21/32
from: ccount@ATHENA.MIT.EDU
Sender: allbery@uunet.UU.NET (Brandon S. Allbery - comp.sources.misc)
Posting-number: Volume 11, Issue 49
Submitted-by: ccount@ATHENA.MIT.EDU
Archive-name: starchart/part21
#! /bin/sh
# This is a shell archive. Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file". To overwrite existing
# files, type "sh file -c". You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g.. If this archive is complete, you
# will see the following message at the end:
# "End of archive 21 (of 32)."
# Contents: starchart/sXawD.c.ab
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'starchart/sXawD.c.ab' -a "${1}" != "-c" ; then
echo shar: Will not clobber existing file \"'starchart/sXawD.c.ab'\"
else
echo shar: Extracting \"'starchart/sXawD.c.ab'\" \(31373 characters\)
sed "s/^X//" >'starchart/sXawD.c.ab' <<'END_OF_FILE'
X LayersD.all_layer[i] = all_layer[i];
X LayersD.numlayers = numlayers;
X
X current_dialog = LayersDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X layers_help();
X}
X
X/* mapfiles widget
X Set mapfiles array
X*/
Xvoid Map_files(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "mapfiles";
X void ftype_select();
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2, higher_widge;
X Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
X int i;
X char *cp;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("Specify data files and types to be used",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X higher_widge = twidge1;
X for (i = 0; i < MAXMAPFILES; i++) {
X Map_filesD.mapnum[i] = i;
X strcpy(Map_filesD.mapfiles[i], mapfiles[i]);
X Map_filesD.mapftypes[i] = mapftypes[i];
X
X Map_filesD.file_wid[i] =
X twidge2 = Get_string("File:", twidge1, pform,
X Map_filesD.mapfiles[i],
X MAXPATHLEN, 300, 300);
X twidge1 = twidge2;
X
X
X XtSetArg(Label_arg[2], XtNfromHoriz, twidge1);
X XtSetArg(Label_arg[3], XtNfromVert, higher_widge);
X NLabel_args = 4;
X
X twidge2 =
X XtCreateManagedWidget(" Type:",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X twidge1 = twidge2;
X
X callback[0].callback = ftype_select;
X callback[0].closure = (caddr_t) ((int *) &(Map_filesD.mapnum[i]));
X XtSetArg(Button_arg[0], XtNcallback, callback);
X XtSetArg(Button_arg[1], XtNfromHoriz, twidge1);
X XtSetArg(Button_arg[2], XtNfromVert, higher_widge);
X
X NButton_args = 3;
X cp = filetype_strings[mapftypes[i]];
X Map_filesD.ftype_wid[i] =
X twidge2 =
X XtCreateManagedWidget(cp,
X commandWidgetClass, pform,
X Button_arg, NButton_args);
X twidge1 = twidge2;
X higher_widge = twidge1;
X }
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X callback[0].callback = mapf_apply;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X NButton_args = 3;
X apply_widge =
X XtCreateManagedWidget( " Apply ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X bottom_widge = apply_widge;
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_cancel;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNfromHoriz, dismiss_widge);
X cancel_widge =
X XtCreateManagedWidget( "Cancel ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X
X /* Save the current values */
X /* names and types set above */
X Map_filesD.nummapfiles = nummapfiles;
X
X current_dialog = Map_filesDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X dfiles_help();
X}
X
X/* projection_mode widget
X Set projection mode of chart to be
X SANSONS, STEREOGR, GNOMONIC, ORTHOGR, or RECTANGULAR
X*/
Xvoid Projection_mode(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "projection_mode";
X void mode_select();
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, dismiss_widge, cancel_widge;
X char *tcp;
X
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("Specify Projection mode (press button)",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X /* set mode */
X callback[0].callback = mode_select;
X callback[0].closure = (caddr_t) "projection_mode";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X
X tcp = proj_mode_strings[all_proj_mode];
X
X twidge2 =
X XtCreateManagedWidget(tcp,
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_cancel;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNfromHoriz, dismiss_widge);
X cancel_widge =
X XtCreateManagedWidget( "Cancel ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X
X /* Save the current values */
X Projection_modeD.all_proj_mode = all_proj_mode;
X
X current_dialog = Projection_modeDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X pmode_help();
X}
X
X/********** Dialog ***************/
X/* Magnitude label dialog
X set all_vmin, all_vmax (use_vmin)
X nomaglbls
X*/
X
Xvoid Magnitude_labels(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X void nomaglbls_toggle();
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "maglbls";
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("Specify star magnitude labeling",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X /* Get minimum */
X Magnitude_labelsD.all_vmin_wid =
X twidge2 = Get_float("Brightest: ", twidge1, pform, all_vmin,
X Magnitude_labelsD.all_vmin_str,
X sizeof(Magnitude_labelsD.all_vmin_str));
X twidge1 = twidge2;
X
X /* Get maximum */
X Magnitude_labelsD.all_vmax_wid =
X twidge2 = Get_float("Faintest: ", twidge1, pform, all_vmax,
X Magnitude_labelsD.all_vmax_str,
X sizeof(Magnitude_labelsD.all_vmax_str));
X twidge1 = twidge2;
X
X
X /* Toggle nomaglabls */
X callback[0].callback = nomaglbls_toggle;
X callback[0].closure = (caddr_t) "nomablbls";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(nomaglbls ?
X "Don't Label stars with their magnitudes":
X "Label stars with their magnitudes ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X
X
X callback[0].callback = maglbl_apply;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X NButton_args = 3;
X apply_widge =
X XtCreateManagedWidget( " Apply ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X bottom_widge = apply_widge;
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_cancel;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNfromHoriz, dismiss_widge);
X cancel_widge =
X XtCreateManagedWidget( "Cancel ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X
X /* Save the current values */
X Magnitude_labelsD.all_vmin = all_vmin;
X Magnitude_labelsD.all_vmax = all_vmax;
X
X current_dialog = Magnitude_labelsDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X maglabels_help();
X}
X
X/********** Dialog ***************/
X/* Grid dialog
X set all_rstep, all_dstep, all_rstrt, all_dstrt,
X no_ra_grid, no_dec_grid
X*/
X
Xvoid Grid(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X void no_ra_grid_toggle();
X void no_dec_grid_toggle();
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "grid";
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("Specify Grid",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X
X if (all_rstep == 0) all_rstep = 15.0;
X if (all_dstep == 0) all_dstep = 5.0;
X /* Get ra_step */
X GridD.all_rstep_wid =
X twidge2 = Get_float("R.A. Step: ", twidge1, pform, dtof(all_rstep/15.0),
X GridD.all_rstep_str,
X sizeof(GridD.all_rstep_str));
X twidge1 = twidge2;
X
X /* Get dec_step */
X GridD.all_dstep_wid =
X twidge2 = Get_float("Dec. Step: ", twidge1, pform, all_dstep,
X GridD.all_dstep_str,
X sizeof(GridD.all_dstep_str));
X twidge1 = twidge2;
X
X
X /* Get ra_strt */
X GridD.all_rstrt_wid =
X twidge2 = Get_float("R.A. Start: ", twidge1, pform, dtof(all_rstrt/15.0),
X GridD.all_rstrt_str,
X sizeof(GridD.all_rstrt_str));
X twidge1 = twidge2;
X
X /* Get dec_strt */
X GridD.all_dstrt_wid =
X twidge2 = Get_float("Dec. Start: ", twidge1, pform, all_dstrt,
X GridD.all_dstrt_str,
X sizeof(GridD.all_dstrt_str));
X twidge1 = twidge2;
X
X
X
X /* Toggle ra */
X callback[0].callback = no_ra_grid_toggle;
X callback[0].closure = (caddr_t) "no_ra_grid";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(no_ra_grid ?
X " No R.A. grid":
X "Show R.A. grid",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X /* Toggle dec */
X callback[0].callback = no_dec_grid_toggle;
X callback[0].closure = (caddr_t) "no_dec_grid";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(no_dec_grid ?
X " No Dec. grid":
X "Show Dec. grid",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X
X
X callback[0].callback = grid_apply;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X NButton_args = 3;
X apply_widge =
X XtCreateManagedWidget( " Apply ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X bottom_widge = apply_widge;
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_cancel;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNfromHoriz, dismiss_widge);
X cancel_widge =
X XtCreateManagedWidget( "Cancel ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X
X /* Save the current values */
X GridD.all_rstep = all_rstep;
X GridD.all_dstep = all_dstep;
X GridD.all_rstrt = all_rstrt;
X GridD.all_dstrt = all_dstrt;
X GridD.no_ra_grid = no_ra_grid;
X GridD.no_dec_grid = no_dec_grid;
X
X current_dialog = GridDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X grid_help();
X}
X
Xvoid Edit_mapwins(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X void e_mapwins_toggle();
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "x parms";
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, dismiss_widge;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg(Label_arg[0], XtNborderWidth, 0);
X XtSetArg(Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("Edit map window structure",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X XtSetArg(Label_arg[2], XtNhorizDistance, 4);
X XtSetArg(Label_arg[3], XtNfromVert, twidge1);
X NLabel_args = 4;
X twidge2 =
X XtCreateManagedWidget("(Editing will be performed",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X twidge1 = twidge2;
X
X XtSetArg(Label_arg[3], XtNfromVert, twidge1);
X twidge2 =
X XtCreateManagedWidget("when \"Draw Chart\" is selected)",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X twidge1 = twidge2;
X
X /* Toggle edit_mapwins */
X callback[0].callback = e_mapwins_toggle;
X callback[0].closure = (caddr_t) "edit mapwins";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(edit_mapwins ?
X " Edit ":
X "Don't Edit",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X /* Save the current values */
X current_dialog = Edit_mapwinsDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X emapwins_help();
X}
X
X/********** Dialog ***************/
X/*
X Set X specific parameters
X post_preview, post_landscape, use_backup, is_color
X*/
X
Xvoid X_parms(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X void pp_select();
X void use_back_toggle();
X void is_color_toggle();
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X char *dlog_name = "x parms";
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, apply_widge, dismiss_widge, cancel_widge;
X char *cp;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget("X11 specific controls",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X /* Toggle post_preview */
X if (fixed_size) {
X cp = " Use Fixed window dimensions ";
X pp_status = 3;
X } else if (post_preview) {
X if (post_landscape) {
X cp = "Use PostScript landscape page ";
X pp_status = 1;
X } else {
X cp = "Use PostScript page dimensions";
X pp_status = 2;
X };
X } else {
X cp = "Use flexible window dimensions";
X pp_status = 0;
X };
X callback[0].callback = pp_select;
X callback[0].closure = (caddr_t) "post preview";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(cp,
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X
X X_parmsD.fixed_width_wid =
X twidge2 =
X Get_int("Fixed width: ",
X twidge1, pform, fixed_width, X_parmsD.fixed_width_str,
X sizeof(X_parmsD.fixed_width_str));
X twidge1 = twidge2;
X
X X_parmsD.fixed_height_wid =
X twidge2 =
X Get_int("Fixed height:",
X twidge1, pform, fixed_height, X_parmsD.fixed_height_str,
X sizeof(X_parmsD.fixed_height_str));
X twidge1 = twidge2;
X
X /* Toggle use_backup */
X callback[0].callback = use_back_toggle;
X callback[0].closure = (caddr_t) "use back";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(use_backup ?
X "Use X Backing store":
X "No X Backing store ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X
X /* Toggle is_color */
X callback[0].callback = is_color_toggle;
X callback[0].closure = (caddr_t) "is color";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(is_color ?
X "Color Display ":
X "Monochrome Display ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X callback[0].callback = xparm_apply;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X NButton_args = 3;
X apply_widge =
X XtCreateManagedWidget( " Apply ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X bottom_widge = apply_widge;
X
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_cancel;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNfromHoriz, dismiss_widge);
X cancel_widge =
X XtCreateManagedWidget( "Cancel ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X
X /* Save the current values */
X X_parmsD.post_preview = post_preview;
X X_parmsD.post_landscape = post_landscape;
X X_parmsD.use_backup = use_backup;
X X_parmsD.is_color = is_color;
X X_parmsD.fixed_size = fixed_size;
X X_parmsD.fixed_width = fixed_width;
X X_parmsD.fixed_height = fixed_height;
X
X current_dialog = X_parmsDialog;
X XtPopup(pwidg, XtGrabNonexclusive);
X xparms_help();
X}
X
X
X
X/********** Dialog ***************/
X/* Save / Load file
X set read_mapwin_file, write_mapwin_file, mapwin_file
X*/
X
Xvoid Save_Load_file(widget,closure,callData)
X Widget widget;
X caddr_t closure; /* Widget */
X caddr_t callData;
X{
X Widget pshell, pwidg, pform;
X static Arg shell_args[] = {
X { XtNwidth, (XtArgVal) 100},
X };
X void saveload_select();
X char *dlog_name = "saveload";
X Arg Button_arg[10], Label_arg[10];
X Cardinal NButton_args, NLabel_args;
X static XtCallbackRec callback[2];
X Widget twidge1, twidge2;
X Widget bottom_widge, apply_widge, dismiss_widge;
X
X XtSetArg( Button_arg[0], XtNcallback, callback );
X NButton_args = 1;
X
X /* Labels should be left justified, and not have borders */
X XtSetArg( Label_arg[0], XtNborderWidth, 0);
X XtSetArg( Label_arg[1], XtNjustify, XtJustifyLeft);
X NLabel_args = 2;
X
X
X /* Create shell and shell widget */
X pshell = XtCreatePopupShell(dlog_name,
X topLevelShellWidgetClass,
X widget, shell_args, XtNumber(shell_args));
X pwidg =
X XtCreateManagedWidget(dlog_name, shellWidgetClass, pshell, NULL, 0);
X
X /* Create this dialog box */
X pform =
X XtCreateManagedWidget(dlog_name, formWidgetClass, pwidg, NULL, 0);
X
X
X /* Create widgets in the box
X Each has coordinates specified by either XtNfromHoriz and XtNfromVert
X or XtNhorizDistance and XtNvertDistance
X arg[1] sets horizontal position, arg[2] sets vertical
X Each has a callback if appropriate
X */
X
X
X twidge1 =
X XtCreateManagedWidget(
X "Save or Load mapwin file, or write .starrc format file",
X labelWidgetClass, pform,
X Label_arg, NLabel_args);
X
X
X
X /* Get Mapwin file name */
X twidge2 = Get_string("Mapwin file: ", twidge1, pform,
X mapwin_file,
X MAXPATHLEN, 0, 100);
X twidge1 = twidge2;
X
X
X if (read_mapwin_file)
X save_load_state = READ_MAPWIN;
X else if (write_mapwin_file)
X save_load_state = WRITE_MAPWIN;
X else
X save_load_state = NO_MAPWIN;
X
X callback[0].callback = saveload_select;
X callback[0].closure = (caddr_t) "saveload";
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, twidge1);
X NButton_args = 3;
X twidge2 =
X XtCreateManagedWidget(save_load_str[save_load_state],
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X twidge1 = twidge2;
X
X /* Get .starrc file name */
X twidge2 = Get_string("Write .starrc file:", twidge1, pform,
X write_rcfile,
X MAXPATHLEN, 0, 100);
X twidge1 = twidge2;
X
X
X bottom_widge = twidge1; /* The bottommost widget so far */
X
X
X
X callback[0].callback = save_load_apply;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, bottom_widge);
X NButton_args = 3;
X apply_widge =
X XtCreateManagedWidget( " Apply ",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X callback[0].callback = do_dismiss;
X callback[0].closure = (caddr_t)pwidg;
X XtSetArg(Button_arg[1], XtNhorizDistance, 4);
X XtSetArg(Button_arg[2], XtNfromVert, apply_widge);
X dismiss_widge =
X XtCreateManagedWidget( "Dismiss",
X commandWidgetClass, pform, Button_arg, NButton_args);
X
X XtPopup(pwidg, XtGrabNonexclusive);
X svld_help();
X}
X
X
X
X/* Functions called by dialogs */
X
Xvoid invert_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X all_invert = !all_invert;
X
X XtSetArg( args[0], XtNlabel, all_invert ? " Inverted ": " Normal ");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid nomaglbls_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X nomaglbls = !nomaglbls;
X
X XtSetArg( args[0], XtNlabel,nomaglbls ?
X "Don't Label stars with their magnitudes":
X "Label stars with their magnitudes ");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid no_ra_grid_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X no_ra_grid = !no_ra_grid;
X
X XtSetArg( args[0], XtNlabel, no_ra_grid ? " No R.A. grid":"Show R.A. grid");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
Xvoid no_dec_grid_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X no_dec_grid = !no_dec_grid;
X
X XtSetArg( args[0], XtNlabel, no_dec_grid ?
X " No Dec. grid":"Show Dec. grid");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid type_select(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X if (chart_type == THREEPART) {
X XtSetArg( args[0], XtNlabel, "Full Page ");
X chart_type = FULLPAGE;
X } else {
X XtSetArg( args[0], XtNlabel, "Main Map plus Thumbnail");
X chart_type = THREEPART;
X }
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid mode_select(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X char *cp;
X
X all_proj_mode++;
X all_proj_mode %= (MAXPMODE+1);
X if (all_proj_mode == 0) all_proj_mode = 1;
X
X cp = proj_mode_strings[all_proj_mode];
X XtSetArg( args[0], XtNlabel, cp);
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid layer_select(widget, laynump, callData)
X Widget widget;
X caddr_t laynump;
X caddr_t callData;
X{
X Arg args[1];
X char *cp;
X int i;
X
X i = *((int* ) laynump);
X
X all_layer[i]++;
X all_layer[i] %= (MAXLAYNUM+1);
X
X cp = lay_strings[all_layer[i]];
X XtSetArg( args[0], XtNlabel, cp);
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
X
Xvoid ftype_select(widget, mapnump, callData)
X Widget widget;
X caddr_t mapnump;
X caddr_t callData;
X{
X Arg args[1];
X char *cp;
X int i;
X
X i = *((int* ) mapnump);
X
X mapftypes[i]++;
X mapftypes[i] %= (MAXFTYPES+1);
X if (mapftypes[i] == 0) mapftypes[i] = 1;
X
X cp = filetype_strings[mapftypes[i]];
X XtSetArg( args[0], XtNlabel, cp);
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid saveload_select(widget, namestr, callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X char *cp;
X
X save_load_state++;
X save_load_state %= 3;
X
X
X cp = save_load_str[save_load_state];
X XtSetArg(args[0], XtNlabel, cp);
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
X
Xvoid pp_select(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X char *cp;
X
X pp_status++;
X pp_status %= 4;
X
X /* pp_status:
X 0: flexible -> post_preview = post_landscape = fixed_size = FALSE;
X 1: postscript size ->
X post_preview = TRUE; post_landscape = fixed_size = FALSE;
X 2: postscript landscape size ->
X post_preview = TRUE; post_landscape = TRUE; fixed_size = FALSE;
X 3: fixed size -> post_preview = post_landscape = FALSE; fixed_size = TRUE;
X */
X switch (pp_status) {
X case 0:
X post_preview = post_landscape = fixed_size = FALSE;
X cp = "Use flexible window dimensions";
X break;
X case 1:
X post_preview = TRUE; post_landscape = fixed_size = FALSE;
X cp = "Use PostScript page dimensions";
X break;
X case 2:
X post_preview = post_landscape = TRUE; fixed_size = FALSE;
X cp = "Use PostScript landscape page ";
X break;
X case 3:
X post_preview = FALSE; fixed_size = TRUE;
X cp = " Use Fixed window dimensions ";
X break;
X default:
X break;
X }
X
X XtSetArg( args[0], XtNlabel, cp);
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
Xvoid use_back_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X use_backup = !use_backup;
X
X XtSetArg( args[0], XtNlabel, use_backup ?
X "Use X Backing store":
X " No X Backing store");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
Xvoid is_color_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X is_color = !is_color;
X
X XtSetArg( args[0], XtNlabel, is_color ?
X " Color Display":
X "Monochrome Display");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
X
X
Xvoid e_mapwins_toggle(widget,namestr,callData)
X Widget widget;
X caddr_t namestr;
X caddr_t callData;
X{
X Arg args[1];
X
X edit_mapwins = !edit_mapwins;
X
X XtSetArg( args[0], XtNlabel, edit_mapwins ?
X " Edit ":
X "Don't Edit");
X
X XtSetValues(widget, args, (Cardinal)1);
X}
X
END_OF_FILE
if test 31373 -ne `wc -c <'starchart/sXawD.c.ab'`; then
echo shar: \"'starchart/sXawD.c.ab'\" unpacked with wrong size!
fi
# end of 'starchart/sXawD.c.ab'
fi
echo shar: End of archive 21 \(of 32\).
cp /dev/null ark21isdone
MISSING=""
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
if test ! -f ark${I}isdone ; then
MISSING="${MISSING} ${I}"
fi
done
if test "${MISSING}" = "" ; then
echo You have unpacked all 32 archives.
rm -f ark[1-9]isdone ark[1-9][0-9]isdone
else
echo You still need to unpack the following archives:
echo " " ${MISSING}
fi
## End of shell archive.
exit 0