125 lines
4.8 KiB
C
125 lines
4.8 KiB
C
#include "gui.h"
|
|
#include "sharp95.h"
|
|
|
|
void statusdialog_clear_cb ( Widget, XtPointer, XtPointer );
|
|
|
|
extern Widget toplevel;
|
|
static Widget status_dialog=NULL;
|
|
static Widget statusfield;
|
|
static int statuspos;
|
|
XFontStruct *xfstruct = NULL;
|
|
|
|
/*==========================================================================*/
|
|
|
|
void show_status ( char *stn, char *auxinfo )
|
|
/********************************************************************************
|
|
** *
|
|
* T. Piper/SAIC 1/02 Freed xfle, xmfl, & xfstruct as necessary *
|
|
********************************************************************************/
|
|
{
|
|
static Widget statuspane, statusform, statusdialog_cancel, statusdialog_clear, statusbutton_form;
|
|
XmString tstr;
|
|
XmFontList xmfl;
|
|
XmFontListEntry xfle;
|
|
char line[512];
|
|
Arg args[10];
|
|
Cardinal argcnt;
|
|
|
|
if( ! status_dialog)
|
|
{
|
|
status_dialog = XmCreateBulletinBoardDialog(toplevel, "statusdialog_panel", NULL, 0);
|
|
|
|
tstr = XmStringCreateLocalized( "ACARS Data" );
|
|
XtVaSetValues( status_dialog, XmNdialogTitle, tstr, NULL);
|
|
XmStringFree(tstr);
|
|
|
|
statuspane = XtVaCreateManagedWidget("status_pane",
|
|
xmPanedWindowWidgetClass,
|
|
status_dialog,
|
|
XmNsashWidth, 1,
|
|
XmNsashHeight, 1,
|
|
NULL);
|
|
|
|
|
|
statusform = XtVaCreateWidget("statusform", xmFormWidgetClass,
|
|
statuspane, XmNwidth, 650, XmNheight, 400,
|
|
XmNfractionBase, 10, NULL );
|
|
|
|
argcnt = 0;
|
|
XtSetArg(args[argcnt],XmNscrollBarDisplayPolicy,XmAS_NEEDED); argcnt++;
|
|
XtSetArg(args[argcnt],XmNscrollingPolicy,XmAUTOMATIC); argcnt++;
|
|
XtSetArg(args[argcnt],XmNheight,400); argcnt++;
|
|
XtSetArg(args[argcnt],XmNwidth,650); argcnt++;
|
|
statusfield = XmCreateScrolledText(statusform,"statusform_text",
|
|
args, argcnt);
|
|
if ( xfstruct ) XFreeFont ( XtDisplay(toplevel), xfstruct );
|
|
xfstruct = XLoadQueryFont(XtDisplay(toplevel),"-adobe-courier-bold-r-normal--14-100-100-100-m-90-iso8859-1");
|
|
xfle = XmFontListEntryCreate(XmFONTLIST_DEFAULT_TAG, XmFONT_IS_FONT, (XtPointer)xfstruct);
|
|
xmfl = XmFontListAppendEntry(NULL, xfle);
|
|
XtFree ( (XtPointer)xfle );
|
|
XtVaSetValues(statusfield, XmNeditMode, XmMULTI_LINE_EDIT,
|
|
XmNeditable, False,
|
|
XmNfontList, xmfl,
|
|
NULL );
|
|
XmFontListFree ( xmfl );
|
|
XtManageChild ( statusfield );
|
|
XtManageChild ( statusform );
|
|
|
|
statusbutton_form = XtVaCreateWidget("statusbuttonform", xmFormWidgetClass,
|
|
statuspane, XmNwidth, 650, XmNfractionBase, 10, NULL );
|
|
|
|
statusdialog_cancel = XtVaCreateManagedWidget ("CLOSE",
|
|
xmPushButtonWidgetClass, statusbutton_form,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNleftPosition, 3,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
XmNrightAttachment, XmATTACH_POSITION,
|
|
XmNrightPosition, 5,
|
|
NULL );
|
|
XtAddCallback(statusdialog_cancel, XmNactivateCallback,
|
|
(XtCallbackProc)popdown_cb, status_dialog );
|
|
|
|
statusdialog_clear = XtVaCreateManagedWidget ("CLEAR",
|
|
xmPushButtonWidgetClass, statusbutton_form,
|
|
XmNleftAttachment, XmATTACH_POSITION,
|
|
XmNleftPosition, 6,
|
|
XmNtopAttachment, XmATTACH_FORM,
|
|
XmNbottomAttachment, XmATTACH_FORM,
|
|
XmNrightAttachment, XmATTACH_POSITION,
|
|
XmNrightPosition, 8,
|
|
NULL );
|
|
XtAddCallback(statusdialog_clear, XmNactivateCallback,
|
|
(XtCallbackProc)statusdialog_clear_cb, NULL);
|
|
|
|
XtManageChild ( statusbutton_form );
|
|
|
|
XtManageChild ( statuspane );
|
|
XtManageChild ( status_dialog );
|
|
|
|
line[0] = '\0';
|
|
sprintf(line,"Station Time Dept Dest Rept PRES HGHT TMPC DWPC SPED DRCT\n");
|
|
XtVaSetValues(statusfield,XmNvalue,line,NULL);
|
|
statuspos = (int)strlen(line);
|
|
}
|
|
else
|
|
XtManageChild ( status_dialog );
|
|
|
|
/*sprintf(line,"%s\n",stn);
|
|
XmTextInsert(statusfield,statuspos,line); statuspos += (int)strlen(line);*/
|
|
|
|
sprintf(line,"%s\n",auxinfo);
|
|
XmTextInsert(statusfield,statuspos,line); statuspos += (int)strlen(line);
|
|
|
|
}
|
|
|
|
/*=============================================================================*/
|
|
/* ARGSUSED */
|
|
void statusdialog_clear_cb ( Widget w, XtPointer clnt, XtPointer call )
|
|
{
|
|
char line[128];
|
|
line[0] = '\0';
|
|
sprintf(line,"Station Time Dept Dest Rept PRES HGHT TMPC DWPC SPED DRCT\n");
|
|
XtVaSetValues(statusfield,XmNvalue,line,NULL);
|
|
statuspos = strlen(line);
|
|
}
|