From 65e76a9e05cdf04eeb8b73165969b0438c35b92d Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Thu, 2 Apr 2015 16:19:40 +0200
Subject: [PATCH] Enhance listing of nodes, groups and windows.

---
 .../gepetto/viewer/corba/windows-manager.h    |  5 ++--
 src/windows-manager.cpp                       | 28 +++++++++++++++----
 2 files changed, 25 insertions(+), 8 deletions(-)

diff --git a/include/gepetto/viewer/corba/windows-manager.h b/include/gepetto/viewer/corba/windows-manager.h
index f05bee8..1bc4653 100644
--- a/include/gepetto/viewer/corba/windows-manager.h
+++ b/include/gepetto/viewer/corba/windows-manager.h
@@ -72,8 +72,9 @@ namespace graphics {
         public:
             static WindowsManagerPtr_t create ();
 
-            virtual void getNodeList();
-            virtual void getWindowList();
+            virtual std::vector<std::string> getNodeList();
+            virtual std::vector<std::string> getSceneList();
+            virtual std::vector<std::string> getWindowList();
 
             virtual bool setRate(const int& rate);
             virtual void refresh();
diff --git a/src/windows-manager.cpp b/src/windows-manager.cpp
index dd2ce36..ad2e8d9 100644
--- a/src/windows-manager.cpp
+++ b/src/windows-manager.cpp
@@ -479,25 +479,41 @@ namespace graphics {
         }
     }
 
-    void WindowsManager::getNodeList ()
+    std::vector<std::string> WindowsManager::getNodeList ()
     {
+        std::vector<std::string> l;
         std::cout << "List of Nodes :" << std::endl;
         for (std::map<std::string, NodePtr_t>::iterator it=nodes_.begin ();
-                it!=nodes_.end (); ++it)
+                it!=nodes_.end (); ++it) {
             std::cout << "   " << it->first << std::endl;
+            l.push_back (it->first);
+        }
+        return l;
+    }
+
+    std::vector<std::string> WindowsManager::getSceneList ()
+    {
+        std::vector<std::string> l;
         std::cout << "List of GroupNodes :" << std::endl;
         for (std::map<std::string, GroupNodePtr_t>::iterator it=
-                groupNodes_.begin (); it!=groupNodes_.end (); ++it)
+                groupNodes_.begin (); it!=groupNodes_.end (); ++it) {
             std::cout << "   " << it->first << std::endl;
+            l.push_back (it->first);
+        }
+        return l;
     }
 
-    void WindowsManager::getWindowList ()
+    std::vector<std::string> WindowsManager::getWindowList ()
     {
+        std::vector<std::string> l;
         std::cout << "List of Windows :" << std::endl;
         size_t rank = 0;
         for (WindowManagerVector_t::iterator it = windowManagers_.begin ();
-                it!=windowManagers_.end (); ++it)
-            std::cout << rank << " - " << (*it)->getViewerClone ()->getSlave (0)._camera->getGraphicsContext ()->getTraits ()->windowName << std::endl;
+                it!=windowManagers_.end (); ++it) {
+            std::cout << rank << " - " << (*it)->getViewerClone ()->getCamera()->getGraphicsContext ()->getTraits ()->windowName << std::endl;
+            l.push_back ((*it)->getViewerClone ()->getCamera()->getGraphicsContext ()->getTraits ()->windowName);
+        }
+        return l;
     }
 
     bool WindowsManager::createGroup (const char* groupNameCorba)
-- 
GitLab