From 8628d99f663b6760378af7ba06a7e87b32f9abd0 Mon Sep 17 00:00:00 2001
From: Christophe Geuzaine <cgeuzaine@ulg.ac.be>
Date: Mon, 14 Mar 2005 18:55:22 +0000
Subject: [PATCH] new option to control a view's axes color

---
 Common/DefaultOptions.h   |  1 +
 Common/Options.cpp        | 16 +++++++++++++++-
 Common/Options.h          |  1 +
 Common/Views.cpp          |  3 ++-
 Common/Views.h            |  2 +-
 Fltk/Callbacks.cpp        |  3 ++-
 Fltk/GUI.cpp              |  3 ++-
 Graphics/Post.cpp         |  4 ++--
 doc/texinfo/opt_view.texi |  5 +++++
 9 files changed, 31 insertions(+), 7 deletions(-)

diff --git a/Common/DefaultOptions.h b/Common/DefaultOptions.h
index 291ff47668..0cf5224a29 100644
--- a/Common/DefaultOptions.h
+++ b/Common/DefaultOptions.h
@@ -1517,6 +1517,7 @@ StringXColor ViewOptions_Color[] = {
     "Normal vector color" },
   { F|O, "Text2D" , opt_view_color_text2d , ELECOL, "2D text color" },
   { F|O, "Text3D" , opt_view_color_text3d , ELECOL, "3D text color" },
+  { F|O, "Axes" , opt_view_color_axes , ELECOL, "Axes color" },
   { 0, NULL , NULL , 0, 0, 0 , NULL }
 } ;
 
diff --git a/Common/Options.cpp b/Common/Options.cpp
index 15b981d10c..03b122bf9a 100644
--- a/Common/Options.cpp
+++ b/Common/Options.cpp
@@ -1,4 +1,4 @@
-// $Id: Options.cpp,v 1.234 2005-03-13 07:16:13 geuzaine Exp $
+// $Id: Options.cpp,v 1.235 2005-03-14 18:55:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -6985,3 +6985,17 @@ unsigned int opt_view_color_text3d(OPT_ARGS_COL)
   return v->color.text3d;
 }
 
+unsigned int opt_view_color_axes(OPT_ARGS_COL)
+{
+  GET_VIEW(0);
+  if(action & GMSH_SET) {
+    v->color.axes = val;
+  }
+#if defined(HAVE_FLTK)
+  if(_gui_action_valid(action, num)){
+    CCC(v->color.axes, WID->view_col[12]);
+  }
+#endif
+  return v->color.axes;
+}
+
diff --git a/Common/Options.h b/Common/Options.h
index 4af1c04127..707ee68a4a 100644
--- a/Common/Options.h
+++ b/Common/Options.h
@@ -655,6 +655,7 @@ unsigned int opt_view_color_tangents(OPT_ARGS_COL);
 unsigned int opt_view_color_normals(OPT_ARGS_COL);
 unsigned int opt_view_color_text2d(OPT_ARGS_COL);
 unsigned int opt_view_color_text3d(OPT_ARGS_COL);
+unsigned int opt_view_color_axes(OPT_ARGS_COL);
 
 // Data structures and global functions
 
diff --git a/Common/Views.cpp b/Common/Views.cpp
index 7323003bb9..ffbf090c5f 100644
--- a/Common/Views.cpp
+++ b/Common/Views.cpp
@@ -1,4 +1,4 @@
-// $Id: Views.cpp,v 1.168 2005-03-13 07:58:03 geuzaine Exp $
+// $Id: Views.cpp,v 1.169 2005-03-14 18:55:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -697,6 +697,7 @@ void CopyViewOptions(Post_View * src, Post_View * dest)
   dest->color.normals = src->color.normals;
   dest->color.text2d = src->color.text2d;
   dest->color.text3d = src->color.text3d;
+  dest->color.axes = src->color.axes;
   ColorTable_Copy(&src->CT);
   ColorTable_Paste(&dest->CT);
 }
diff --git a/Common/Views.h b/Common/Views.h
index b15c23c6e0..a84104b00f 100644
--- a/Common/Views.h
+++ b/Common/Views.h
@@ -110,7 +110,7 @@ class Post_View{
     unsigned int point, line, triangle, quadrangle;
     unsigned int tetrahedron, hexahedron, prism, pyramid;
     unsigned int tangents, normals;
-    unsigned int text2d, text3d;
+    unsigned int text2d, text3d, axes;
   } color;
 
   // dynamic
diff --git a/Fltk/Callbacks.cpp b/Fltk/Callbacks.cpp
index 80f38f4071..9d62f03e4a 100644
--- a/Fltk/Callbacks.cpp
+++ b/Fltk/Callbacks.cpp
@@ -1,4 +1,4 @@
-// $Id: Callbacks.cpp,v 1.347 2005-03-13 17:58:37 geuzaine Exp $
+// $Id: Callbacks.cpp,v 1.348 2005-03-14 18:55:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -4074,6 +4074,7 @@ void view_options_ok_cb(CALLBACK_ARGS)
         opt_view_color_normals(i, GMSH_SET, opt_view_color_normals(current, GMSH_GET, 0));
         opt_view_color_text2d(i, GMSH_SET, opt_view_color_text2d(current, GMSH_GET, 0));
         opt_view_color_text3d(i, GMSH_SET, opt_view_color_text3d(current, GMSH_GET, 0));
+        opt_view_color_axes(i, GMSH_SET, opt_view_color_axes(current, GMSH_GET, 0));
       }
 
       // colorbar window
diff --git a/Fltk/GUI.cpp b/Fltk/GUI.cpp
index 2a24d75413..dfc7f65945 100644
--- a/Fltk/GUI.cpp
+++ b/Fltk/GUI.cpp
@@ -1,4 +1,4 @@
-// $Id: GUI.cpp,v 1.431 2005-03-14 17:21:54 geuzaine Exp $
+// $Id: GUI.cpp,v 1.432 2005-03-14 18:55:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -3237,6 +3237,7 @@ void GUI::update_view_window(int num)
   opt_view_color_normals(num, GMSH_GUI, 0);
   opt_view_color_text2d(num, GMSH_GUI, 0);
   opt_view_color_text3d(num, GMSH_GUI, 0);
+  opt_view_color_axes(num, GMSH_GUI, 0);
 
   view_colorbar_window->update(v->Name, v->Min, v->Max, &v->CT, &v->Changed);
 }
diff --git a/Graphics/Post.cpp b/Graphics/Post.cpp
index e87e3c3c34..c0f6733df5 100644
--- a/Graphics/Post.cpp
+++ b/Graphics/Post.cpp
@@ -1,4 +1,4 @@
-// $Id: Post.cpp,v 1.98 2005-03-13 20:36:26 geuzaine Exp $
+// $Id: Post.cpp,v 1.99 2005-03-14 18:55:22 geuzaine Exp $
 //
 // Copyright (C) 1997-2005 C. Geuzaine, J.-F. Remacle
 //
@@ -783,7 +783,7 @@ void Draw_Post(void)
 	glDisable((GLenum)(GL_CLIP_PLANE0 + i));
 
       if(v->Axes && v->Type == DRAW_POST_3D){
-	glColor4ubv((GLubyte *) & CTX.color.fg);
+	glColor4ubv((GLubyte *) & v->color.axes);
 	glLineWidth(CTX.line_width);
 	gl2psLineWidth(CTX.line_width * CTX.print.eps_line_width_factor);
 	if(!v->AxesAutoPosition){
diff --git a/doc/texinfo/opt_view.texi b/doc/texinfo/opt_view.texi
index c7e5ecf8d7..ffacdc9a59 100644
--- a/doc/texinfo/opt_view.texi
+++ b/doc/texinfo/opt_view.texi
@@ -624,6 +624,11 @@ Saved in: @code{General.OptionsFileName}
 Default value: @code{@{255,255,255@}}@*
 Saved in: @code{General.OptionsFileName}
 
+@item View.Color.Axes
+Axes color@*
+Default value: @code{@{255,255,255@}}@*
+Saved in: @code{General.OptionsFileName}
+
 @item View.ColorTable
 Color table used to draw the view@*
 Saved in: @code{General.OptionsFileName}
-- 
GitLab