Mercurial > hg > octave-lyh
annotate scripts/plot/ishold.m @ 14138:72c96de7a403 stable
maint: update copyright notices for 2012
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Mon, 02 Jan 2012 14:25:41 -0500 |
parents | eb0ce6ffefb0 |
children | f3d52523cde1 |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13319
diff
changeset
|
1 ## Copyright (C) 2005-2012 John W. Eaton |
5406 | 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. | |
5406 | 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/>. | |
5406 | 18 |
19 ## -*- texinfo -*- | |
12546
39ca02387a32
Improve docstrings for a number of functions.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
20 ## @deftypefn {Command} {} ishold |
39ca02387a32
Improve docstrings for a number of functions.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
21 ## @deftypefnx {Function File} {} ishold (@var{h}) |
11431
0d9640d755b1
Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents:
10635
diff
changeset
|
22 ## Return true if the next plot will be added to the current plot, or |
0d9640d755b1
Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents:
10635
diff
changeset
|
23 ## false if the plot device will be cleared before drawing the next plot. |
12546
39ca02387a32
Improve docstrings for a number of functions.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
24 ## |
39ca02387a32
Improve docstrings for a number of functions.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
25 ## Optionally, operate on the graphics handle @var{h} rather than the current |
39ca02387a32
Improve docstrings for a number of functions.
Rik <octave@nomad.inbox5.com>
parents:
11563
diff
changeset
|
26 ## plot. |
11431
0d9640d755b1
Improve docstrings for all isXXX functions.
Rik <octave@nomad.inbox5.com>
parents:
10635
diff
changeset
|
27 ## @seealso{hold} |
5406 | 28 ## @end deftypefn |
29 | |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
30 function retval = ishold (h) |
5406 | 31 |
32 if (nargin == 0) | |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
33 fig = gcf (); |
13319
eb0ce6ffefb0
ishold: don't create axes if none exists
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
34 ax = get (fig, "currentaxes"); |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
35 elseif (nargin == 1) |
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
36 if (ishandle (h)) |
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
37 if (isfigure (h)) |
10549 | 38 ax = get (h, "currentaxes"); |
39 fig = h; | |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
40 elseif (strcmpi (get (h, "type"), "axes")) |
10549 | 41 ax = h; |
42 fig = get (h, "parent"); | |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
43 else |
10635
d1978e7364ad
Print name of function in error() string messages.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
44 error ("ishold: expecting argument to be axes or figure graphics handle"); |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
45 endif |
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
46 else |
10635
d1978e7364ad
Print name of function in error() string messages.
Rik <octave@nomad.inbox5.com>
parents:
10549
diff
changeset
|
47 error ("ishold: expecting argument to be axes or figure graphics handle"); |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
48 endif |
5406 | 49 else |
6046 | 50 print_usage (); |
5406 | 51 endif |
52 | |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
53 retval = (strcmpi (get (fig, "nextplot"), "add") |
13319
eb0ce6ffefb0
ishold: don't create axes if none exists
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
54 && ! isempty (ax) && strcmpi (get (ax, "nextplot"), "add")); |
9618
e381f80a5f7a
correctly toggle hold state
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
55 |
5406 | 56 endfunction |
13204 | 57 |
58 %!test | |
59 %! hf = figure ("visible", "off"); | |
60 %! unwind_protect | |
13319
eb0ce6ffefb0
ishold: don't create axes if none exists
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
61 %! assert (!ishold); |
eb0ce6ffefb0
ishold: don't create axes if none exists
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
62 %! assert (isempty (get (hf, "currentaxes"))); |
eb0ce6ffefb0
ishold: don't create axes if none exists
John W. Eaton <jwe@octave.org>
parents:
13204
diff
changeset
|
63 %! assert (get (hf, "NextPlot"), "add"); |
13204 | 64 %! l = plot ([0 1]); |
65 %! assert (!ishold); | |
66 %! assert (!ishold (gca)); | |
67 %! assert (get (gca, "NextPlot"), "replace"); | |
68 %! assert (get (hf, "NextPlot"), "add"); | |
69 %! hold; | |
70 %! assert (ishold); | |
71 %! assert (ishold (gca)); | |
72 %! assert (get (gca, "NextPlot"), "add"); | |
73 %! assert (get (hf, "NextPlot"), "add"); | |
74 %! p = fill ([0 1 1], [0 0 1],"black"); | |
75 %! assert (length (get (hf, "children")), 1); | |
76 %! assert (length (get (gca, "children")), 2); | |
77 %! unwind_protect_cleanup | |
78 %! close (hf); | |
79 %! end_unwind_protect |