X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FATC%2Fatcdialog.cxx;h=d2aad836e25e78c93be1381d191f77fb938d160a;hb=ed30b0c9a3818d5b8a306827184ac3525a1d8bdf;hp=3ab9e28d7f2fd77df5380ce759193fb97aa30e04;hpb=e04d2f8ba9421fe9811e2d2e474392f010ae54b3;p=flightgear.git diff --git a/src/ATC/atcdialog.cxx b/src/ATC/atcdialog.cxx index 3ab9e28d7..d2aad836e 100644 --- a/src/ATC/atcdialog.cxx +++ b/src/ATC/atcdialog.cxx @@ -35,15 +35,16 @@ FGATCDialogNew *currentATCDialog; -static bool doATCDialog(const SGPropertyNode* arg) { - cerr << "Running doATCDialog" << endl; +/*static bool doATCDialog(const SGPropertyNode* arg) { + //cerr << "Running doATCDialog" << endl; currentATCDialog->PopupDialog(); return(true); -} +}*/ +FGATCDialogNew * FGATCDialogNew::_instance = NULL; FGATCDialogNew::FGATCDialogNew() { - dialogVisible = false; + dialogVisible = true; } FGATCDialogNew::~FGATCDialogNew() @@ -54,13 +55,13 @@ FGATCDialogNew::~FGATCDialogNew() void FGATCDialogNew::init() { // Add ATC-dialog to the command list - globals->get_commands()->addCommand("ATC-dialog", doATCDialog); + globals->get_commands()->addCommand("ATC-dialog", FGATCDialogNew::popup ); // Add ATC-freq-search to the command list //globals->get_commands()->addCommand("ATC-freq-search", do_ATC_freq_search); // initialize properties polled in Update() //globals->get_props()->setStringValue("/sim/atc/freq-airport", ""); - //globals->get_props()->setIntValue("/sim/atc/transmission-num", -1); + globals->get_props()->setIntValue("/sim/atc/transmission-num", -1); } @@ -86,9 +87,25 @@ static SGPropertyNode *getNamedNode(SGPropertyNode *prop, const char *name) { return 0; } +void FGATCDialogNew::addEntry(int nr, string txt) { + commands.clear(); + commands.push_back(txt); + commands.push_back(string("Toggle ground network visibility")); +} + +void FGATCDialogNew::removeEntry(int nr) { + commands.clear(); +} + + void FGATCDialogNew::PopupDialog() { - double onBoardRadioFreq0 = + dialogVisible = !dialogVisible; + return; +} + +void FGATCDialogNew::update(double dt) { + double onBoardRadioFreq0 = fgGetDouble("/instrumentation/comm[0]/frequencies/selected-mhz"); double onBoardRadioFreq1 = fgGetDouble("/instrumentation/comm[1]/frequencies/selected-mhz"); @@ -105,22 +122,24 @@ void FGATCDialogNew::PopupDialog() { const int bufsize = 32; char buf[bufsize]; + int commandNr = 0; // loop over all entries that should fill up the dialog; use 10 items for now... - for (int i = 0; i < 10; i++) { - snprintf(buf, bufsize, "/sim/atc/opt[%d]", i); + for (StringVecIterator i = commands.begin(); i != commands.end(); i++) { + snprintf(buf, bufsize, "/sim/atc/opt[%d]", commandNr); fgSetBool(buf, false); - SGPropertyNode *entry = button_group->getNode("button", i, true); + SGPropertyNode *entry = button_group->getNode("button", commandNr, true); copyProperties(button_group->getNode("button-template", true), entry); entry->removeChildren("enabled", true); entry->setStringValue("property", buf); - entry->setIntValue("keynum", '1' + i); - if (i == 0) + entry->setIntValue("keynum", '1' + commandNr); + if (commandNr == 0) entry->setBoolValue("default", true); - snprintf(buf, bufsize, "%d", i + 1); - string legend = string(buf) + ". test"; // + current->menuentry; + snprintf(buf, bufsize, "%d", 1 + commandNr); + string legend = string(buf) + (*i); //"; // + current->menuentry; entry->setStringValue("legend", legend.c_str()); - entry->setIntValue("binding/value", i); + entry->setIntValue("binding/value", commandNr); + commandNr++; //current++; } @@ -129,16 +148,14 @@ void FGATCDialogNew::PopupDialog() { } else { _gui->showDialog(dialog_name); } - dialogVisible = !dialogVisible; + //dialogVisible = !dialogVisible; return; -} - -void FGATCDialogNew::update(double dt) { + /* static SGPropertyNode_ptr trans_num = globals->get_props()->getNode("/sim/atc/transmission-num", true); int n = trans_num->getIntValue(); if (n >= 0) { trans_num->setIntValue(-1); // PopupCallback(n); cerr << "Selected transmission message" << n << endl; - } + } */ } \ No newline at end of file