1
0
Fork 0

Cleaned up the ATC communication dialog code somewhat

This commit is contained in:
daveluff 2003-10-22 10:50:11 +00:00
parent 3d104940e9
commit 8e904eb882

View file

@ -210,8 +210,6 @@ static void ATCDialogOK (puObject *me)
// DCL // DCL
static void ATCDialog(puObject *cb) static void ATCDialog(puObject *cb)
{ {
//ApHeadingDialogInput -> setValue ( heading );
//ApHeadingDialogInput -> acceptInput();
FG_PUSH_PUI_DIALOG(atcDialog); FG_PUSH_PUI_DIALOG(atcDialog);
} }
@ -303,26 +301,35 @@ FGATCDialog::FGATCDialog() {
} }
FGATCDialog::~FGATCDialog() { FGATCDialog::~FGATCDialog() {
if(atcFreqDialog) delete atcFreqDialog; if(atcFreqDialog) puDeleteObject(atcFreqDialog);
if(atcFreqDisplay) delete atcFreqDisplay; if(atcFreqDisplay) puDeleteObject(atcFreqDisplay);
if(ATCMenuBox) puDeleteObject(ATCMenuBox);
} }
void FGATCDialog::Init() { void FGATCDialog::Init() {
// Add ATC-freq-search to the command list // Add ATC-freq-search to the command list
globals->get_commands()->addCommand("ATC-freq-search", do_ATC_freq_search); globals->get_commands()->addCommand("ATC-freq-search", do_ATC_freq_search);
int w;
int h;
int x;
int y;
// Init the freq-search dialog // Init the freq-search dialog
w = 300;
h = 150;
x = (fgGetInt("/sim/startup/xsize") / 2) - (w / 2);
y = 50;
char *s; char *s;
int hsize = 150; atcFreqDialog = new puDialogBox (x, y);
atcFreqDialog = new puDialogBox (150, 50);
{ {
atcFreqDialogFrame = new puFrame (0, 0, 300, hsize); atcFreqDialogFrame = new puFrame (0, 0, w, h);
atcFreqDialogMessage = new puText (40, (hsize - 30)); atcFreqDialogMessage = new puText (40, (h - 30));
atcFreqDialogMessage->setDefaultValue ("Enter airport identifier:"); atcFreqDialogMessage->setDefaultValue ("Enter airport identifier:");
atcFreqDialogMessage->getDefaultValue (&s); atcFreqDialogMessage->getDefaultValue (&s);
atcFreqDialogMessage->setLabel(s); atcFreqDialogMessage->setLabel(s);
atcFreqDialogInput = new puInput (50, (hsize - 75), 150, (hsize - 45)); atcFreqDialogInput = new puInput (50, (h - 75), 150, (h - 45));
atcFreqDialogOkButton = new puOneShot (50, 10, 110, 50); atcFreqDialogOkButton = new puOneShot (50, 10, 110, 50);
atcFreqDialogOkButton -> setLegend (gui_msg_OK); atcFreqDialogOkButton -> setLegend (gui_msg_OK);
@ -339,18 +346,21 @@ void FGATCDialog::Init() {
FG_FINALIZE_PUI_DIALOG(atcFreqDialog); FG_FINALIZE_PUI_DIALOG(atcFreqDialog);
// Init the freq-display dialog // Init the freq-display dialog
hsize = 100; w = 400;
atcFreqDisplay = new puDialogBox (250, 50); h = 100;
x = (fgGetInt("/sim/startup/xsize") / 2) - (w / 2);
y = 50;
atcFreqDisplay = new puDialogBox (x, y);
{ {
atcFreqDisplayFrame = new puFrame (0, 0, 400, hsize); atcFreqDisplayFrame = new puFrame (0, 0, w, h);
atcFreqDisplayMessage = new puText (40, (hsize - 30)); atcFreqDisplayMessage = new puText (40, (h - 30));
atcFreqDisplayMessage -> setDefaultValue ("No freqencies found"); atcFreqDisplayMessage -> setDefaultValue ("No freqencies found");
atcFreqDisplayMessage -> getDefaultValue (&s); atcFreqDisplayMessage -> getDefaultValue (&s);
atcFreqDisplayMessage -> setLabel (s); atcFreqDisplayMessage -> setLabel (s);
for(int i=0; i<ATC_MAX_FREQ_DISPLAY; ++i) { for(int i=0; i<ATC_MAX_FREQ_DISPLAY; ++i) {
atcFreqDisplayText[i] = new puText(40, hsize - 65 - (30 * i)); atcFreqDisplayText[i] = new puText(40, h - 65 - (30 * i));
atcFreqDisplayText[i]->setDefaultValue(""); atcFreqDisplayText[i]->setDefaultValue("");
atcFreqDisplayText[i]-> getDefaultValue (&s); atcFreqDisplayText[i]-> getDefaultValue (&s);
atcFreqDisplayText[i]-> setLabel (s); atcFreqDisplayText[i]-> setLabel (s);
@ -363,6 +373,31 @@ void FGATCDialog::Init() {
atcFreqDisplayOkButton -> setCallback (FreqDisplayOK); atcFreqDisplayOkButton -> setCallback (FreqDisplayOK);
} }
FG_FINALIZE_PUI_DIALOG(atcFreqDisplay); FG_FINALIZE_PUI_DIALOG(atcFreqDisplay);
// Init AK's interactive ATC menus
w = 500;
h = 110;
x = (fgGetInt("/sim/startup/xsize") / 2) - (w / 2);
//y = (fgGetInt("/sim/startup/ysize") / 2) - (h / 2);
y = 50;
ATCMenuBox = new puDialogBox (x, y);
{
ATCMenuFrame = new puFrame (0,0,w,h);
ATCMenuBoxMessage = new puText (w / 2, h - 30);
ATCMenuBoxMessage -> setLabel( "No transmission available" );
ATCMenuBoxMessage -> setLabelPlace(PUPLACE_TOP_CENTERED);
ATCOptionsList = new puButtonBox (50, 60, 450, 50, NULL, true);
ATCOptionsList -> hide();
atcDialogOkButton = new puOneShot ((w/2)-85, 10, (w/2)-25, 50);
atcDialogOkButton -> setLegend (gui_msg_OK);
atcDialogOkButton -> makeReturnDefault (TRUE);
atcDialogOkButton -> setCallback (AKATCDialogOK);
atcDialogCancelButton = new puOneShot ((w/2)+25, 10, (w/2)+85, 50);
atcDialogCancelButton -> setLegend (gui_msg_CANCEL);
atcDialogCancelButton -> setCallback (AKATCDialogCancel);
}
FG_FINALIZE_PUI_DIALOG(ATCMenuBox);
} }
// AK // AK
@ -424,19 +459,15 @@ void FGATCDialog::DoDialog() {
fgSetBool("/sim/atc/opt8",false); fgSetBool("/sim/atc/opt8",false);
fgSetBool("/sim/atc/opt9",false); fgSetBool("/sim/atc/opt9",false);
//int yc = 10; int w = 500;
int yc = 70;
int xsize = 600;
if ( atcmlist.size() != 0 ){
int k = atcmlist.size(); int k = atcmlist.size();
//int k = 3; int h = 110 + k * 25;
//cout << "k = " << k << endl; //cout << "k = " << k << '\n';
int y = (fgGetInt("/sim/startup/ysize") - 200 - 20 - k*20);
ATCMenuBox = new puDialogBox (100, y); ATCMenuFrame->setSize(w, h);
ATCMenuFrame = new puFrame (0,0,xsize,yc+40);
if(k) {
// loop over all entries in atcmentrylist // loop over all entries in atcmentrylist
ATCOptionsList = new puButtonBox (50, 50, 450, 50+(k*25), NULL, true);
char** optList = new char*[k+1]; char** optList = new char*[k+1];
int kk = 0; int kk = 0;
for ( ; current != last ; ++current ) { for ( ; current != last ; ++current ) {
@ -449,36 +480,22 @@ void FGATCDialog::DoDialog() {
strcpy(optList[kk], mentry[kk].c_str()); strcpy(optList[kk], mentry[kk].c_str());
//cout << "optList[" << kk << "] = " << optList[kk] << endl; //cout << "optList[" << kk << "] = " << optList[kk] << endl;
mtrans[kk] = current->transmission; mtrans[kk] = current->transmission;
//ATCMenuBoxMessage = new puText (10, yc);
//ATCMenuBoxMessage -> setLabel( mentry[kk].c_str() );
yc += 20;
++kk; ++kk;
} }
yc += 2*20;
optList[k] = NULL; optList[k] = NULL;
ATCOptionsList->newList(optList); ATCOptionsList->newList(optList);
ATCOptionsList->setSize(w-100, h-100);
ATCOptionsList->reveal();
ATCMenuBoxMessage -> setLabel( "ATC Menu" );
ATCMenuBoxMessage -> setPosition(w / 2, h - 30);
} else { } else {
int y = (fgGetInt("/sim/startup/ysize") - 100 - 20 ); ATCOptionsList->hide();
ATCMenuBox = new puDialogBox (10, y);
ATCMenuFrame = new puFrame (0,0,xsize,yc+40);
ATCMenuBoxMessage = new puText (10, yc-10);
ATCMenuBoxMessage -> setLabel( "No transmission available" ); ATCMenuBoxMessage -> setLabel( "No transmission available" );
ATCMenuBoxMessage -> setPosition(w / 2, h - 20);
} }
ATCMenuBoxMessage = new puText (10, yc+10);
ATCMenuBoxMessage -> setLabel( "ATC Menu" );
atcDialogOkButton = new puOneShot ((xsize/2)-85, 10, (xsize/2)-25, 50);
atcDialogOkButton -> setLegend (gui_msg_OK);
atcDialogOkButton -> makeReturnDefault (TRUE);
atcDialogOkButton -> setCallback (AKATCDialogOK);
atcDialogCancelButton = new puOneShot ((xsize/2)+25, 10, (xsize/2)+85, 50);
atcDialogCancelButton -> setLegend (gui_msg_CANCEL);
atcDialogCancelButton -> setCallback (AKATCDialogCancel);
FG_FINALIZE_PUI_DIALOG( ATCMenuBox );
FG_PUSH_PUI_DIALOG( ATCMenuBox ); FG_PUSH_PUI_DIALOG( ATCMenuBox );
/* /*
if ( atckey != -1 && TransDisplayed && mtrans[atckey-1].c_str() != "" ) { if ( atckey != -1 && TransDisplayed && mtrans[atckey-1].c_str() != "" ) {
cout << mtrans[atckey-1].c_str() << endl; cout << mtrans[atckey-1].c_str() << endl;