Mercurial > hg > octave-nkf
annotate scripts/plot/util/axes.m @ 20260:48aa3d6d3427
ru_RU.ts: Add translations from Dmitry Roshchin
author | Andreas Weber <andy.weber.aw@gmail.com> |
---|---|
date | Wed, 08 Apr 2015 21:39:24 +0200 |
parents | 9fc020886ae9 |
children | 777f26aa8e3e |
rev | line source |
---|---|
19898
4197fc428c7d
maint: Update copyright notices for 2015.
John W. Eaton <jwe@octave.org>
parents:
19790
diff
changeset
|
1 ## Copyright (C) 2005-2015 John W. Eaton |
6257 | 2 ## |
3 ## This file is part of Octave. | |
4 ## | |
5 ## Octave is free software; you can redistribute it and/or modify it | |
6 ## under the terms of the GNU General Public License as published by | |
7016 | 7 ## the Free Software Foundation; either version 3 of the License, or (at |
8 ## your option) any later version. | |
6257 | 9 ## |
10 ## Octave is distributed in the hope that it will be useful, but | |
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 ## General Public License for more details. | |
14 ## | |
15 ## You should have received a copy of the GNU General Public License | |
7016 | 16 ## along with Octave; see the file COPYING. If not, see |
17 ## <http://www.gnu.org/licenses/>. | |
6257 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
20 ## @deftypefn {Function File} {} axes () |
6257 | 21 ## @deftypefnx {Function File} {} axes (@var{property}, @var{value}, @dots{}) |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
22 ## @deftypefnx {Function File} {} axes (@var{hax}) |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
23 ## @deftypefnx {Function File} {@var{h} =} axes (@dots{}) |
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
24 ## Create an axes object and return a handle to it, or set the current |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
25 ## axes to @var{hax}. |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
26 ## |
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
27 ## Called without any arguments, or with @var{property}/@var{value} pairs, |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
28 ## construct a new axes. For accepted properties and corresponding |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
29 ## values, @pxref{XREFset,,set}. |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
30 ## |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
31 ## Called with a single axes handle argument @var{hax}, the function makes |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
32 ## @var{hax} the current axis. It also restacks the axes in the |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
33 ## corresponding figure so that @var{hax} is the first entry in the list |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17042
diff
changeset
|
34 ## of children. This causes @var{hax} to be displayed on top of any other |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
35 ## axes objects (Z-order stacking). |
19790
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
17744
diff
changeset
|
36 ## |
20038
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20025
diff
changeset
|
37 ## @seealso{gca, set, get} |
6257 | 38 ## @end deftypefn |
39 | |
40 ## Author: jwe | |
41 | |
42 function h = axes (varargin) | |
43 | |
44 if (nargin == 0 || nargin > 1) | |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
45 ## Parent figure |
6851 | 46 idx = find (strcmpi (varargin(1:2:end), "parent"), 1, "first"); |
47 if (! isempty (idx) && length (varargin) >= 2*idx) | |
48 cf = varargin{2*idx}; | |
49 varargin([2*idx-1, 2*idx]) = []; | |
50 else | |
51 cf = gcf (); | |
52 endif | |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
53 |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
54 ## If there is an annotation axes currently on top of the figure |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
55 ## children stack, we will put it back on top |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
56 do_restack = false; |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
57 ch = allchild (cf); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
58 hax = ch(isaxes (ch)); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
59 idx = find (strcmp (get (hax, "tag"), "scribeoverlay")); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
60 if (idx == 1) |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
61 hover = hax(idx); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
62 do_restack = true; |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
63 endif |
20038
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
20025
diff
changeset
|
64 |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
65 ## Create an axes object. |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
66 htmp = __go_axes__ (cf, varargin{:}); |
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
67 if (__is_handle_visible__ (htmp)) |
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
68 set (ancestor (cf, "figure"), "currentaxes", htmp); |
13327
f81fcceb394c
axes: only update the currentaxes property of the parent figure if the axes object is visible
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
69 endif |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
70 |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
71 ## Restack if necessary |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
72 if (do_restack) |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
73 restack_axes (hover, cf); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
74 endif |
6688 | 75 else |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
76 ## ARG is axes handle. |
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
77 htmp = varargin{1}; |
17125
b5d6314314fc
Change various plot functions to take advantage of new isaxes() function.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
78 if (isscalar (htmp) && isaxes (htmp)) |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
79 cf = ancestor (htmp, "figure"); |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
80 if (__is_handle_visible__ (htmp)) |
19946
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
81 set (0, "currentfigure", cf); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19898
diff
changeset
|
82 set (cf, "currentaxes", htmp); |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
83 endif |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
84 |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
85 ## restack |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
86 restack_axes (htmp, cf); |
6257 | 87 else |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
88 error ("axes: H must be a scalar axes handle"); |
6257 | 89 endif |
90 endif | |
91 | |
92 if (nargout > 0) | |
17042
62d5f73e840c
axes.m: reorder figure children after setting the currentaxes (bug #39539).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
14868
diff
changeset
|
93 h = htmp; |
6257 | 94 endif |
95 | |
96 endfunction | |
17338
1c89599167a6
maint: End m-files with 1 blank line.
Rik <rik@octave.org>
parents:
17125
diff
changeset
|
97 |
20025
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
98 function restack_axes (h, cf) |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
99 show = get (0, "showhiddenhandles"); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
100 set (0, "showhiddenhandles", "on"); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
101 unwind_protect |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
102 ch = get (cf, "children"); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
103 hax = ch(isaxes (ch)); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
104 ch(isaxes (ch)) = [h; hax(hax != h)]; |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
105 set (cf, "children", ch); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
106 unwind_protect_cleanup |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
107 set (0, "showhiddenhandles", show); |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
108 end_unwind_protect |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19946
diff
changeset
|
109 endfunction |