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