annotate scripts/plot/gtext.m @ 15070:1feefc5e5630

gtext.m: Allow multiple text placements--one per mouse click. Return graphics handle if asked. * gtext.m: Allow multiple text placements depending on cell array orientation in the same fashion as Matlab. Return graphics handle to text object if asked.
author Rik <rik@octave.org>
date Tue, 31 Jul 2012 18:26:37 -0700
parents f3d52523cde1
children 20cac6006005
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
14138
72c96de7a403 maint: update copyright notices for 2012
John W. Eaton <jwe@octave.org>
parents: 13259
diff changeset
1 ## Copyright (C) 2008-2012 David Bateman
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
2 ##
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
3 ## This file is part of Octave.
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
4 ##
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
5 ## Octave is free software; you can redistribute it and/or modify it
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
6 ## under the terms of the GNU General Public License as published by
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
7 ## the Free Software Foundation; either version 3 of the License, or (at
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
8 ## your option) any later version.
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
9 ##
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
10 ## Octave is distributed in the hope that it will be useful, but
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
11 ## WITHOUT ANY WARRANTY; without even the implied warranty of
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
12 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
13 ## General Public License for more details.
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
14 ##
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
15 ## You should have received a copy of the GNU General Public License
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
16 ## along with Octave; see the file COPYING. If not, see
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
17 ## <http://www.gnu.org/licenses/>.
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
18
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
19 ## -*- texinfo -*-
9307
c2923c27c877 Various documentation improvements
Rik <rdrider0-list@yahoo.com>
parents: 9245
diff changeset
20 ## @deftypefn {Function File} {} gtext (@var{s})
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
21 ## @deftypefnx {Function File} {} gtext (@{@var{s1}, @var{s2}, @dots{}@})
9307
c2923c27c877 Various documentation improvements
Rik <rdrider0-list@yahoo.com>
parents: 9245
diff changeset
22 ## @deftypefnx {Function File} {} gtext (@{@var{s1}; @var{s2}; @dots{}@})
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
23 ## @deftypefnx {Function File} {} gtext (@dots{}, @var{prop}, @var{val})
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
24 ## @deftypefnx {Function File} {@var{h) =} gtext (@dots{})
9307
c2923c27c877 Various documentation improvements
Rik <rdrider0-list@yahoo.com>
parents: 9245
diff changeset
25 ## Place text on the current figure using the mouse. The text is defined
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
26 ## by the string @var{s}. If @var{s} is a cell string organized as a row
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
27 ## vector then each string of the cell array is written to a separate line.
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
28 ## If @var{s} is organized as a column vector then one string element of the
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
29 ## cell array is placed for every mouse click. Additional inputs besides a
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
30 ## string or cellstr are passed to the underlying text object as Property-value
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
31 ## pairs.
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
32 ##
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
33 ## The optional return value @var{h} is a graphics handle to the created
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
34 ## text object.
9307
c2923c27c877 Various documentation improvements
Rik <rdrider0-list@yahoo.com>
parents: 9245
diff changeset
35 ## @seealso{ginput, text}
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
36 ## @end deftypefn
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
37
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
38 function h = gtext (s, varargin)
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
39
13259
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
40 if (nargin < 1)
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
41 print_usage ();
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
42 endif
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
43
13259
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
44 if (! (ischar (s) || iscellstr (s)))
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
45 error ("gtext: S must be a string or cell array of strings");
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
46 endif
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
47
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
48 htmp = -1;
13259
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
49 if (! isempty (s))
15070
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
50 if (ischar (s) || isrow (s))
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
51 [x, y] = ginput (1);
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
52 htmp = text (x, y, s, varargin{:});
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
53 else
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
54 for i = 1:numel (s)
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
55 [x, y] = ginput (1);
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
56 htmp = text (x, y, s{i}, varargin{:});
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
57 endfor
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
58 endif
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
59 endif
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
60
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
61 if (nargout > 0)
1feefc5e5630 gtext.m: Allow multiple text placements--one per mouse click.
Rik <rik@octave.org>
parents: 14363
diff changeset
62 h = htmp;
13259
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
63 endif
b6efe55f97c7 Allow gtext() to have multi-line text strings (Bug #33232)
Rik <octave@nomad.inbox5.com>
parents: 13123
diff changeset
64
7674
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
65 endfunction
52d8d50e74c1 Add gtext, waitforbuttonpress. Attempt to get ginput working under windows
David Bateman <dbateman@free.fr>
parents:
diff changeset
66
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
67
13123
6efa1a691713 Add further tests for scripts/plot.
Kai Habel <kai.habel@gmx.de>
parents: 11587
diff changeset
68 ## Remove from test statistics. No real tests possible.
14363
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
69 %!assert (1)
f3d52523cde1 Use Octave coding conventions in all m-file %!test blocks
Rik <octave@nomad.inbox5.com>
parents: 14138
diff changeset
70