Mercurial > hg > octave-nkf
annotate scripts/plot/close.m @ 17530:0f45d9dd8107
test: Fix 4 failing plot demos.
* scripts/plot/legend.m: Demo #11, use 'h' for returned handle.
* scripts/plot/plot.m: Fix typo "lenths" -> "lengths".
* scripts/plot/ribbon.m: Remove unnecessary call to meshgrid now
that sombrero returns meshgridded data.
* scripts/plot/trimesh.m: Set colormap so plot is always reproducible.
author | Rik <rik@octave.org> |
---|---|
date | Tue, 01 Oct 2013 15:39:20 -0700 |
parents | ffa7f1caab4e |
children |
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 |
17093
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 |
17093
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 ## When called with no arguments, close the current figure. This is equivalent |
17122
eaab03308c0b
doc: Rewrite docstrings for most plot functions.
Rik <rik@octave.org>
parents:
17093
diff
changeset
|
27 ## 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:
17093
diff
changeset
|
28 ## of graphics handles, then close each figure in @var{h}. |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
29 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17135
diff
changeset
|
30 ## 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:
17135
diff
changeset
|
31 ## (HandleVisibility = @qcode{"on"}) are closed. |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
32 ## |
17281
bc924baa2c4e
doc: Add new @qcode macro for code samples which are quoted.
Rik <rik@octave.org>
parents:
17135
diff
changeset
|
33 ## 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:
17135
diff
changeset
|
34 ## hidden ones, are closed. |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
35 ## |
17444
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
36 ## Implementation Note: @code{close} operates by calling the function specified |
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
37 ## by the @qcode{"closerequestfcn"} property for each figure. By default, the |
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
38 ## function @code{closereq} is used. It is possible that the function invoked |
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
39 ## will delay or abort removing the figure. To remove a figure without |
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
40 ## executing any callback functions use @code{delete}. When writing a callback |
ffa7f1caab4e
Clarify relationship of close, closereq.
Rik <rik@octave.org>
parents:
17281
diff
changeset
|
41 ## function to close a window do not use @code{close} to avoid recursion. |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
42 ## |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
43 ## @seealso{closereq, delete} |
4225 | 44 ## @end deftypefn |
45 | |
46 ## Author: jwe | |
10598
6e1674216b99
close.m: No error on "close([])".
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
47 ## 2010-05-02 PBig allow empty argument |
4225 | 48 |
49 function retval = close (arg1, arg2) | |
50 | |
6405 | 51 figs = []; |
52 | |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
53 if (nargin > 2) |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
54 print_usage (); |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
55 elseif (nargin == 0) |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
56 ## Close current figure. |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
57 ## Can't use gcf because it opens a new plot window if one does not exist. |
6278 | 58 figs = get (0, "currentfigure"); |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
59 if (figs == 0) # don't close root figure |
6278 | 60 figs = []; |
61 endif | |
4225 | 62 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
|
63 if (ischar (arg1) && strcmpi (arg1, "all")) |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
64 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
|
65 figs = figs(isfigure (figs)); |
6257 | 66 elseif (isfigure (arg1)) |
67 figs = arg1; | |
14868
5d3a684236b0
maint: Use Octave coding conventions for cuddling parentheses in scripts directory
Rik <octave@nomad.inbox5.com>
parents:
14363
diff
changeset
|
68 elseif (isempty (arg1)) |
10598
6e1674216b99
close.m: No error on "close([])".
Ben Abbott <bpabbott@mac.com>
parents:
10549
diff
changeset
|
69 figs = []; |
4225 | 70 else |
17135
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
71 error ('close: first argument must be "all" or a figure handle'); |
4225 | 72 endif |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
73 elseif ( ischar (arg1) && strcmpi (arg1, "all") |
10549 | 74 && ischar (arg2) && strcmpi (arg2, "hidden")) |
17093
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
75 figs = (allchild (0))'; |
e5ded64def41
close.m: Fix close to remove hidden figures with "all hidden" argument.
Rik <rik@octave.org>
parents:
14868
diff
changeset
|
76 figs = figs(isfigure (figs)); |
17135
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
77 else |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
78 error ('close: expecting argument to be "all hidden"'); |
4225 | 79 endif |
80 | |
6257 | 81 for h = figs |
7966
5747be3ac497
Implement closereq as real callback execution
John W. Eaton <jwe@octave.org>
parents:
7017
diff
changeset
|
82 __go_execute_callback__ (h, "closerequestfcn"); |
6257 | 83 endfor |
84 | |
4225 | 85 if (nargout > 0) |
86 retval = 1; | |
87 endif | |
88 | |
89 endfunction | |
6405 | 90 |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
91 |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
92 %!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
|
93 %! hf = figure ("visible", "off"); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
94 %! 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
|
95 %! close (hf); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
96 %! objs = findobj ("type", "figure"); |
17135
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
97 %! assert (! any (objs == hf)); |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
98 %! 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
|
99 %! if (isfigure (hf)) |
13123
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
100 %! close (hf); |
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
101 %! endif |
6efa1a691713
Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents:
11523
diff
changeset
|
102 %! end_unwind_protect |
14363
f3d52523cde1
Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents:
14138
diff
changeset
|
103 |
17135
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
104 %!error close (1,2,3) |
723a08d266d2
close.m: Add input validation for 2 input args and %!error test blocks.
Rik <rik@octave.org>
parents:
17122
diff
changeset
|
105 %!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:
17122
diff
changeset
|
106 %!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:
17122
diff
changeset
|
107 %!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:
17122
diff
changeset
|
108 %!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:
17122
diff
changeset
|
109 |