Mercurial > hg > octave-lyh
annotate scripts/plot/close.m @ 17396:e04847bbcfdf
Squeeze Nd > 2 plot vectors.
* scripts/plot/__plt__.m: Squeeze input plot vectors when ndims>2.
Throw error if there are more than 2 non-singleton dimensions.
* scripts/plot/plot.m: Modify doc-string. Add demos.
author | Ben Abbott <bpabbott@mac.com> |
---|---|
date | Sat, 07 Sep 2013 12:21:38 -0400 |
parents | bc924baa2c4e |
children | ffa7f1caab4e |
rev | line source |
---|---|
14138
72c96de7a403
maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents:
13124
diff
changeset
|
1 ## Copyright (C) 2002-2012 John W. Eaton |
4225 | 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. | |
4225 | 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/>. | |
4225 | 18 |
19 ## -*- texinfo -*- | |
10793
be55736a0783
Grammarcheck the documentation from m-files.
Rik <octave@nomad.inbox5.com>
parents:
10598
diff
changeset
|
20 ## @deftypefn {Command} {} close |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
21 ## @deftypefnx {Command} {} close (@var{h}) |
4225 | 22 ## @deftypefnx {Command} {} close all |
6257 | 23 ## @deftypefnx {Command} {} close all hidden |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
24 ## Close figure window(s). |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
25 ## |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
26 ## @code{close} operates by calling the function specified by the |
17289
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17139
diff
changeset
|
27 ## @qcode{"closerequestfcn"} property for each figure. By default, the function |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
28 ## @code{closereq} is used. |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
29 ## |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
30 ## When called with no arguments, close the current figure. This is equivalent |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17094
diff
changeset
|
31 ## to @code{close (gcf)}. If the input @var{h} is a graphic handle, or vector |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17094
diff
changeset
|
32 ## of graphics handles, then close each figure in @var{h}. |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
33 ## |
17289
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17139
diff
changeset
|
34 ## If the argument @qcode{"all"} is given then all figures with visible handles |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17139
diff
changeset
|
35 ## (HandleVisibility = @qcode{"on"}) are closed. |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
36 ## |
17289
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17139
diff
changeset
|
37 ## If the argument @qcode{"all hidden"} is given then all figures, including |
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17139
diff
changeset
|
38 ## hidden ones, are closed. |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
39 ## |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
40 ## Implementation Note: @code{close} calls a function to dispose of the figure. |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
41 ## It is possible that the function will delay or abort removing the figure. |
17126
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17094
diff
changeset
|
42 ## To remove a figure without executing any callback functions use |
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17094
diff
changeset
|
43 ## @code{delete}. |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
44 ## |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
45 ## @seealso{closereq, delete} |
4225 | 46 ## @end deftypefn |
47 | |
48 ## Author: jwe | |
10598
6e1674216b99
close.m: No error on "close([])".
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
49 ## 2010-05-02 PBig allow empty argument |
4225 | 50 |
51 function retval = close (arg1, arg2) | |
52 | |
6405 | 53 figs = []; |
54 | |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
55 if (nargin > 2) |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
56 print_usage (); |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
57 elseif (nargin == 0) |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
58 ## Close current figure. |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
59 ## Can't use gcf because it opens a new plot window if one does not exist. |
6278 | 60 figs = get (0, "currentfigure"); |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
61 if (figs == 0) # don't close root figure |
6278 | 62 figs = []; |
63 endif | |
4225 | 64 elseif (nargin == 1) |
8190
73d6b71788c0
use case-insensitive comparison for graphics properties; misc style fixes
John W. Eaton <jwe@octave.org>
parents:
7966
diff
changeset
|
65 if (ischar (arg1) && strcmpi (arg1, "all")) |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
66 figs = (get (0, "children"))'; |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
67 figs = figs(isfigure (figs)); |
6257 | 68 elseif (isfigure (arg1)) |
69 figs = arg1; | |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
70 elseif (isempty (arg1)) |
10598
6e1674216b99
close.m: No error on "close([])".
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
71 figs = []; |
4225 | 72 else |
17139
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
73 error ('close: first argument must be "all" or a figure handle'); |
4225 | 74 endif |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
75 elseif ( ischar (arg1) && strcmpi (arg1, "all") |
10549 | 76 && ischar (arg2) && strcmpi (arg2, "hidden")) |
17094
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
77 figs = (allchild (0))'; |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
78 figs = figs(isfigure (figs)); |
17139
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
79 else |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
80 error ('close: expecting argument to be "all hidden"'); |
4225 | 81 endif |
82 | |
6257 | 83 for h = figs |
7966
5747be3ac497
Implement closereq as real callback execution
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
84 __go_execute_callback__ (h, "closerequestfcn"); |
6257 | 85 endfor |
86 | |
4225 | 87 if (nargout > 0) |
88 retval = 1; | |
89 endif | |
90 | |
91 endfunction | |
6405 | 92 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
93 |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
94 %!test |
13124
2ea1658ad049
Don't use explicit figure number for tests to avoid interference with any figures opened by user.
Kai Habel <kai.habel@gmx.de>
parents:
13123
diff
changeset
|
95 %! hf = figure ("visible", "off"); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
96 %! unwind_protect |
13124
2ea1658ad049
Don't use explicit figure number for tests to avoid interference with any figures opened by user.
Kai Habel <kai.habel@gmx.de>
parents:
13123
diff
changeset
|
97 %! close (hf); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
98 %! objs = findobj ("type", "figure"); |
17139
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
99 %! assert (! any (objs == hf)); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
100 %! unwind_protect_cleanup |
13124
2ea1658ad049
Don't use explicit figure number for tests to avoid interference with any figures opened by user.
Kai Habel <kai.habel@gmx.de>
parents:
13123
diff
changeset
|
101 %! if (isfigure (hf)) |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
102 %! close (hf); |
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
103 %! endif |
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
104 %! end_unwind_protect |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
105 |
17139
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
106 %!error close (1,2,3) |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
107 %!error <first argument must be "all" or a figure> close ({"all"}) |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
108 %!error <first argument must be "all" or a figure> close ("all_and_more") |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
109 %!error <first argument must be "all" or a figure> close (-1) |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
110 %!error <expecting argument to be "all hidden"> close "all" hid" |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17126
diff
changeset
|
111 |