From 74cb1b7bbd7d38909d226c295776f6c1ead0a700 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 22 Jun 2015 20:03:32 +0000
Subject: [PATCH] doubleClickedView

---
 Common/Context.h        | 1 +
 Common/DefaultOptions.h | 2 ++
 Common/Options.cpp      | 7 +++++++
 Common/Options.h        | 1 +
 Fltk/openglWindow.cpp   | 1 +
 5 files changed, 12 insertions(+)

diff --git a/Common/Context.h b/Common/Context.h
index d3f2336606..7d7378a827 100644
--- a/Common/Context.h
+++ b/Common/Context.h
@@ -251,6 +251,7 @@ class CTX {
     double animDelay;
     std::string doubleClickedGraphPointCommand;
     double doubleClickedGraphPointX, doubleClickedGraphPointY;
+    int doubleClickedView;
   }post;
   // solver options
   struct{
diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 79c2305245..5a203ea8b3 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1302,6 +1302,8 @@ StringXNumber PostProcessingOptions_Number[] = {
     "Abscissa of last double-clicked graph point" },
   { F, "DoubleClickedGraphPointY" , opt_post_double_clicked_graph_point_y , 0. ,
     "Ordinate of last double-clicked graph point" },
+  { F, "DoubleClickedView" , opt_post_double_clicked_view, 0. ,
+    "Index of last double-clicked view" },
 
   { F|O, "ForceElementData" , opt_post_force_element_data , 0. ,
     "Try to force saving datasets as ElementData" },
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 914f0834a2..e4ec17a867 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -6598,6 +6598,13 @@ double opt_post_double_clicked_graph_point_y(OPT_ARGS_NUM)
   return CTX::instance()->post.doubleClickedGraphPointY;
 }
 
+double opt_post_double_clicked_view(OPT_ARGS_NUM)
+{
+  if(action & GMSH_SET)
+    CTX::instance()->post.doubleClickedView = (int)val;
+  return CTX::instance()->post.doubleClickedView;
+}
+
 double opt_view_nb_timestep(OPT_ARGS_NUM)
 {
 #if defined(HAVE_POST)
diff --git a/Common/Options.h b/Common/Options.h
index 8825ef1416..1da21151e4 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -552,6 +552,7 @@ double opt_post_force_node_data(OPT_ARGS_NUM);
 double opt_post_force_element_data(OPT_ARGS_NUM);
 double opt_post_double_clicked_graph_point_x(OPT_ARGS_NUM);
 double opt_post_double_clicked_graph_point_y(OPT_ARGS_NUM);
+double opt_post_double_clicked_view(OPT_ARGS_NUM);
 double opt_view_nb_timestep(OPT_ARGS_NUM);
 double opt_view_nb_non_empty_timestep(OPT_ARGS_NUM);
 double opt_view_timestep(OPT_ARGS_NUM);
diff --git a/Fltk/openglWindow.cpp b/Fltk/openglWindow.cpp
index 45f3ae9e83..f8b1060f36 100644
--- a/Fltk/openglWindow.cpp
+++ b/Fltk/openglWindow.cpp
@@ -375,6 +375,7 @@ int openglWindow::handle(int event)
         ParseString(CTX::instance()->geom.doubleClickedVolumeCommand, true);
       }
       else if(views.size() && views[0]->getOptions()->doubleClickedCommand.size()){
+        CTX::instance()->post.doubleClickedView = views[0]->getIndex();
         ParseString(views[0]->getOptions()->doubleClickedCommand, true);
       }
       else if(points.size() && CTX::instance()->post.doubleClickedGraphPointCommand.size()){
-- 
GitLab