diff src/graphics.h.in @ 9347:3da821b161e9

imported patch ticklabel
author Michael Goffioul <michael.goffioul@gmail.com>
date Sun, 14 Jun 2009 22:49:54 +0100 (2009-06-14)
parents 9646be3a59c4
children 394c7adb488f
line wrap: on
line diff
--- a/src/graphics.h.in
+++ b/src/graphics.h.in
@@ -2662,9 +2662,9 @@
       bool_property xminorgrid , "off"
       bool_property yminorgrid , "off"
       bool_property zminorgrid , "off"
-      row_vector_property xtick m , default_axes_tick ()
-      row_vector_property ytick m , default_axes_tick ()
-      row_vector_property ztick m , default_axes_tick ()
+      row_vector_property xtick mu , default_axes_tick ()
+      row_vector_property ytick mu , default_axes_tick ()
+      row_vector_property ztick mu , default_axes_tick ()
       radio_property xtickmode , "{auto}|manual"
       radio_property ytickmode , "{auto}|manual"
       radio_property ztickmode , "{auto}|manual"
@@ -2675,9 +2675,9 @@
       any_property xticklabel m , ""
       any_property yticklabel m , ""
       any_property zticklabel m , ""
-      radio_property xticklabelmode , "{auto}|manual"
-      radio_property yticklabelmode , "{auto}|manual"
-      radio_property zticklabelmode , "{auto}|manual"
+      radio_property xticklabelmode u , "{auto}|manual"
+      radio_property yticklabelmode u , "{auto}|manual"
+      radio_property zticklabelmode u , "{auto}|manual"
       radio_property interpreter , "tex|{none}|latex"
       color_property color , color_property (color_values (1, 1, 1), radio_values ("none"))
       color_property xcolor , color_values (0, 0, 0)
@@ -2747,12 +2747,45 @@
     void update_ydir (void) { update_camera (); }
     void update_zdir (void) { update_camera (); }
 
+    void update_xtick (void)
+      {
+	if (xticklabelmode.is ("auto"))
+	  calc_ticklabels (xtick, xticklabel, xscale.is ("log"));
+      }
+    void update_ytick (void)
+      {
+	if (yticklabelmode.is ("auto"))
+	  calc_ticklabels (ytick, yticklabel, yscale.is ("log"));
+      }
+    void update_ztick (void)
+      {
+	if (zticklabelmode.is ("auto"))
+	  calc_ticklabels (ztick, zticklabel, zscale.is ("log"));
+      }
+
+    void update_xticklabelmode (void)
+      {
+	if (xticklabelmode.is ("auto"))
+	  calc_ticklabels (xtick, xticklabel, xscale.is ("log"));
+      }
+    void update_yticklabelmode (void)
+      {
+	if (yticklabelmode.is ("auto"))
+	  calc_ticklabels (ytick, yticklabel, yscale.is ("log"));
+      }
+    void update_zticklabelmode (void)
+      {
+	if (zticklabelmode.is ("auto"))
+	  calc_ticklabels (ztick, zticklabel, zscale.is ("log"));
+      }
+
     void sync_positions (void);
     void update_outerposition (void) { sync_positions ();}
     void update_position (void) { sync_positions (); }
 
     double calc_tick_sep (double minval, double maxval);
     void calc_ticks_and_lims (array_property& lims, array_property& ticks, bool limmode_is_auto, bool is_logscale);
+    void calc_ticklabels (const array_property& ticks, any_property& labels, bool is_logscale);
     void fix_limits (array_property& lims)
     {
       if (lims.get ().is_empty ()) 
@@ -2780,6 +2813,8 @@
     {
       if (xtickmode.is ("auto"))
 	calc_ticks_and_lims (xlim, xtick, xlimmode.is ("auto"), xscale.is ("log"));
+      if (xticklabelmode.is ("auto"))
+	calc_ticklabels (xtick, xticklabel, xscale.is ("log"));
 
       fix_limits (xlim);
 
@@ -2791,6 +2826,8 @@
     {
       if (ytickmode.is ("auto"))
 	calc_ticks_and_lims (ylim, ytick, ylimmode.is ("auto"), yscale.is ("log"));
+      if (yticklabelmode.is ("auto"))
+	calc_ticklabels (ytick, yticklabel, yscale.is ("log"));
 
       fix_limits (ylim);
 
@@ -2802,6 +2839,8 @@
     {
       if (ztickmode.is ("auto"))
 	calc_ticks_and_lims (zlim, ztick, zlimmode.is ("auto"), zscale.is ("log"));
+      if (zticklabelmode.is ("auto"))
+	calc_ticklabels (ztick, zticklabel, zscale.is ("log"));
 
       fix_limits (zlim);