From e5cb439e2de47fdf829caa75082611c98767d17e Mon Sep 17 00:00:00 2001 From: Erik Hofman <erik@ehofman.com> Date: Wed, 20 Jul 2016 15:03:15 +0200 Subject: [PATCH] Show a popup dialog for every SG_POPUP message in the queue --- src/FDM/JSBSim/JSBSim.cxx | 1 + src/Main/fg_props.cxx | 1 + src/Main/main.cxx | 10 ++++++++++ 3 files changed, 12 insertions(+) diff --git a/src/FDM/JSBSim/JSBSim.cxx b/src/FDM/JSBSim/JSBSim.cxx index 89b96e48c..4e33296d1 100644 --- a/src/FDM/JSBSim/JSBSim.cxx +++ b/src/FDM/JSBSim/JSBSim.cxx @@ -185,6 +185,7 @@ FGJSBsim::FGJSBsim( double dt ) case SG_INFO: case SG_WARN: case SG_ALERT: + case SG_POPUP: FGJSBBase::debug_lvl = 0x00; break; } diff --git a/src/Main/fg_props.cxx b/src/Main/fg_props.cxx index 975a8a48c..e4bff808c 100644 --- a/src/Main/fg_props.cxx +++ b/src/Main/fg_props.cxx @@ -178,6 +178,7 @@ getLoggingPriority () case SG_WARN: return "warn"; case SG_ALERT: + case SG_POPUP: return "alert"; default: SG_LOG(SG_GENERAL, SG_WARN, "Internal: Unknown logging priority number: " diff --git a/src/Main/main.cxx b/src/Main/main.cxx index 4e77b941c..d7cec3d7b 100644 --- a/src/Main/main.cxx +++ b/src/Main/main.cxx @@ -64,6 +64,7 @@ extern bool global_crashRptEnabled; #include <Time/TimeManager.hxx> #include <GUI/gui.h> #include <GUI/MessageBox.hxx> +#include <GUI/new_gui.hxx> #include <Viewer/splash.hxx> #include <Viewer/renderer.hxx> #include <Viewer/WindowSystemAdapter.hxx> @@ -102,6 +103,15 @@ static TimeManager* timeMgr; // for the next move and update the display? static void fgMainLoop( void ) { + + if (sglog().has_popup()) { + NewGUI* _gui = (NewGUI *)globals->get_subsystem("gui"); + SGPropertyNode_ptr dlg = _gui->getDialogProperties("popup"); + std::string s = sglog().get_popup(); + dlg->setStringValue("text/label", s ); + _gui->showDialog("popup"); + } + frame_signal->fireValueChanged(); // compute simulated time (allowing for pause, warp, etc) and -- 2.39.5