Mercurial > octave
comparison libinterp/corefcn/graphics.in.h @ 29650:360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
* graphics.in.h (axes::properties::update_x(y/z)tick): Add bool arguments
that defaults to true for synchronizing the axes position.
(axes::properties::update_ticklabelinterpreter): Only synchronize once, after
all ticks updates are done.
author | Pantxo Diribarne <pantxo.diribarne@gmail.com> |
---|---|
date | Wed, 12 May 2021 00:11:20 +0200 |
parents | aef11bb4e6d1 |
children | 32f4357ac8d9 |
comparison
equal
deleted
inserted
replaced
29648:0230f7cf4044 | 29650:360d21b028b1 |
---|---|
4010 void update_tickdir (void) { update_ticklength (); } | 4010 void update_tickdir (void) { update_ticklength (); } |
4011 void update_tickdirmode (void) { update_ticklength (); } | 4011 void update_tickdirmode (void) { update_ticklength (); } |
4012 | 4012 |
4013 void update_ticklabelinterpreter (void) | 4013 void update_ticklabelinterpreter (void) |
4014 { | 4014 { |
4015 update_xtick (); | 4015 update_xtick (false); |
4016 update_ytick (); | 4016 update_ytick (false); |
4017 update_ztick (); | 4017 update_ztick (true); |
4018 } | 4018 } |
4019 | 4019 |
4020 void update_xtick (void) | 4020 void update_xtick (bool sync_pos = true) |
4021 { | 4021 { |
4022 calc_ticks_and_lims (xlim, xtick, xminortickvalues, xlimmode.is ("auto"), | 4022 calc_ticks_and_lims (xlim, xtick, xminortickvalues, xlimmode.is ("auto"), |
4023 xtickmode.is ("auto"), xscale.is ("log")); | 4023 xtickmode.is ("auto"), xscale.is ("log")); |
4024 if (xticklabelmode.is ("auto")) | 4024 if (xticklabelmode.is ("auto")) |
4025 calc_ticklabels (xtick, xticklabel, xscale.is ("log"), | 4025 calc_ticklabels (xtick, xticklabel, xscale.is ("log"), |
4026 xaxislocation_is ("origin"), | 4026 xaxislocation_is ("origin"), |
4027 yscale.is ("log") ? 2 : | 4027 yscale.is ("log") ? 2 : |
4028 (yaxislocation_is ("origin") ? 0 : | 4028 (yaxislocation_is ("origin") ? 0 : |
4029 (yaxislocation_is ("left") ? -1 : 1)), | 4029 (yaxislocation_is ("left") ? -1 : 1)), |
4030 xlim); | 4030 xlim); |
4031 sync_positions (); | 4031 |
4032 } | 4032 if (sync_pos) |
4033 void update_ytick (void) | 4033 sync_positions (); |
4034 } | |
4035 void update_ytick (bool sync_pos = true) | |
4034 { | 4036 { |
4035 calc_ticks_and_lims (ylim, ytick, yminortickvalues, ylimmode.is ("auto"), | 4037 calc_ticks_and_lims (ylim, ytick, yminortickvalues, ylimmode.is ("auto"), |
4036 ytickmode.is ("auto"), yscale.is ("log")); | 4038 ytickmode.is ("auto"), yscale.is ("log")); |
4037 if (yticklabelmode.is ("auto")) | 4039 if (yticklabelmode.is ("auto")) |
4038 calc_ticklabels (ytick, yticklabel, yscale.is ("log"), | 4040 calc_ticklabels (ytick, yticklabel, yscale.is ("log"), |
4039 yaxislocation_is ("origin"), | 4041 yaxislocation_is ("origin"), |
4040 xscale.is ("log") ? 2 : | 4042 xscale.is ("log") ? 2 : |
4041 (xaxislocation_is ("origin") ? 0 : | 4043 (xaxislocation_is ("origin") ? 0 : |
4042 (xaxislocation_is ("bottom") ? -1 : 1)), | 4044 (xaxislocation_is ("bottom") ? -1 : 1)), |
4043 ylim); | 4045 ylim); |
4044 sync_positions (); | 4046 |
4045 } | 4047 if (sync_pos) |
4046 void update_ztick (void) | 4048 sync_positions (); |
4049 } | |
4050 void update_ztick (bool sync_pos = true) | |
4047 { | 4051 { |
4048 calc_ticks_and_lims (zlim, ztick, zminortickvalues, zlimmode.is ("auto"), | 4052 calc_ticks_and_lims (zlim, ztick, zminortickvalues, zlimmode.is ("auto"), |
4049 ztickmode.is ("auto"), zscale.is ("log")); | 4053 ztickmode.is ("auto"), zscale.is ("log")); |
4050 if (zticklabelmode.is ("auto")) | 4054 if (zticklabelmode.is ("auto")) |
4051 calc_ticklabels (ztick, zticklabel, zscale.is ("log"), false, 2, zlim); | 4055 calc_ticklabels (ztick, zticklabel, zscale.is ("log"), false, 2, zlim); |
4052 sync_positions (); | 4056 |
4057 if (sync_pos) | |
4058 sync_positions (); | |
4053 } | 4059 } |
4054 | 4060 |
4055 void update_xtickmode (void) | 4061 void update_xtickmode (void) |
4056 { | 4062 { |
4057 if (xtickmode.is ("auto")) | 4063 if (xtickmode.is ("auto")) |