Mercurial > octave-nkf
annotate scripts/plot/appearance/annotation.m @ 20141:8eb72c4ed457
Add uicontextmenu to annotation objects
* Canvas.cc (Canvas::canvasMousePressEvent): Allow searching in axes that have hidden handles so that annotations objects can be picked by mouse events.
* Canvas.cc (Canvas::canvasMousePressEvent): later disallow manipulating hidden axes in pan/zoomin/zoomout/rotate modes
* annotation.m: add context menu to manipulate annotation properties
* annotation.m: fix wrong position of textbox when position has negative width/height
author | Pantxo Diribarne <pantxo.diribarne@gmail.com> |
---|---|
date | Mon, 20 Apr 2015 09:26:13 +0200 |
parents | e9f89866074c |
children | 777f26aa8e3e |
rev | line source |
---|---|
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1 ## Copyright (C) 2015 Pantxo Diribarne |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
2 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
3 ## This program is free software; you can redistribute it and/or modify |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
4 ## it under the terms of the GNU General Public License as published by |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
5 ## the Free Software Foundation; either version 3 of the License, or |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
6 ## (at your option) any later version. |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
7 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
8 ## This program is distributed in the hope that it will be useful, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
9 ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
10 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
11 ## GNU General Public License for more details. |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
12 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
13 ## You should have received a copy of the GNU General Public License |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
14 ## along with Octave; see the file COPYING. If not, see |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
15 ## <http://www.gnu.org/licenses/>. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
16 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
17 ## -*- texinfo -*- |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
18 ## @deftypefn {Function File} {} annotation (@var{type}) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
19 ## @deftypefnx {Function File} {} annotation ("line", @var{x}, @var{y}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
20 ## @deftypefnx {Function File} {} annotation ("arrow", @var{x}, @var{y}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
21 ## @deftypefnx {Function File} {} annotation ("doublearrow", @var{x}, @var{y}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
22 ## @deftypefnx {Function File} {} annotation ("textarrow", @var{x}, @var{y}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
23 ## @deftypefnx {Function File} {} annotation ("textbox", @var{pos}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
24 ## @deftypefnx {Function File} {} annotation ("rectangle", @var{pos}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
25 ## @deftypefnx {Function File} {} annotation ("ellipse", @var{pos}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
26 ## @deftypefnx {Function File} {} annotation (@var{hf}, @dots{}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
27 ## @deftypefnx {Function File} {} annotation (@dots{}, @var{prop}, @var{val}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
28 ## @deftypefnx {Function File} {@var{h} =} annotation (@dots{}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
29 ## Draw annotations to emphasize parts of a figure. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
30 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
31 ## You may build a default annotation specifying only the type |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
32 ## @var{type} of the annotation. Otherwise you can set the position of |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
33 ## the annotation using either @var{x} and @var{y} coordinates for |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
34 ## line-based annotations or a position vector @var{pos} for others. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
35 ## In any case, coordinates are interpreted using the @qcode{"units"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
36 ## property of the annotation objects: the default is |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
37 ## @qcode{"normalized"}, which means the lower left hand corner of the |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
38 ## figure has coordinates @samp{[0 0]} and the upper right hand corner |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
39 ## @samp{[1 1]}. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
40 ## |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
41 ## The figure on which the annotations should be drawn may be |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
42 ## specified by providing its graphics handle @var{hf} before any |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
43 ## other argument. Otherwise annotations are drawn on the current |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
44 ## figure. |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
45 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
46 ## Further arguments can be provided in the form of |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
47 ## @var{prop}/@var{val} pairs to customize the annotation appearance |
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
48 ## and the units in which coordinates are interpreted. The annotation |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
49 ## can also be customized afterward using its graphics handle |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
50 ## @var{h} and @code{set} function. |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
51 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
52 ## All annotation objects share two properties: |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
53 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
54 ## @itemize |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
55 ## @item |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
56 ## @qcode{"units"}: the units in which coordinates are interpreted. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
57 ## Its value may be one of @qcode{"centimeters"} | |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
58 ## @qcode{"characters"} | @qcode{"inches"} | @qcode{"@{normalized@}"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
59 ## | @qcode{"pixels"} | @qcode{"points"}. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
60 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
61 ## @item |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
62 ## @qcode{"position"}: a four elements vector [x0 y0 width height] |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
63 ## specifying the coordinates (x0,y0) of the origin of the annotation |
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
64 ## object, its width and its height. The width and height may be |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
65 ## negative, depending on the orientation of the object. |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
66 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
67 ## @end itemize |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
68 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
69 ## Valid annotation types and their specific properties are described |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
70 ## below: |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
71 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
72 ## @table @asis |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
73 ## @item @qcode{"line"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
74 ## Constructs a line. @var{x} and @var{y} must be two |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
75 ## elements vectors specifying the x and y coordinates of the two |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
76 ## ends of the line. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
77 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
78 ## The line can be customized using @qcode{"linewidth"}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
79 ## @qcode{"linestyle"} and @qcode{"color"} properties the same way |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
80 ## as with @code{line} objects. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
81 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
82 ## @item @qcode{"arrow"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
83 ## Construct an arrow. The second point in vectors @var{x} and |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
84 ## @var{y} specifies the arrowhead coordinates. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
85 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
86 ## Besides line properties, the arrowhead can be customized using |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
87 ## @qcode{"headlength"}, @qcode{"headwidth"} and @qcode{"headstyle"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
88 ## properties. Supported values for @qcode{"headstyle"} property are: |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
89 ## [@qcode{"diamond"} | @qcode{"ellipse"} | @qcode{"plain"} | |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
90 ## @qcode{"rectangle"} | @qcode{"vback1"} | @qcode{"@{vback2@}"} | |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
91 ## @qcode{"vback3"}] |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
92 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
93 ## @item @qcode{"doublearrow"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
94 ## Construct a double arrow. Vectors @var{x} and @var{y} specify the |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
95 ## arrowheads coordinates. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
96 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
97 ## The line and the arrowhead can be customized as for arrow |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
98 ## annotations but some property names are duplicated: |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
99 ## @qcode{"head1length"}/@qcode{"head2length"}, |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
100 ## @qcode{"head1width"}/@qcode{"head2width"}, etc. The index 1 marks |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
101 ## the properties of the arrowhead at the first point in @var{x} and |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
102 ## @var{y} coordinates. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
103 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
104 ## @item @qcode{"textarrow"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
105 ## Construct an arrow with a text label at the opposite of the |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
106 ## arrowhead. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
107 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
108 ## The line and the arrowhead can be customized as for arrow |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
109 ## annotations, and the text can be customized using the same |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
110 ## properties as @code{text} graphics objects. Note however |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
111 ## that some text property names are prefixed with "text" to |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
112 ## distinguish arrow and text properties: |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
113 ## @qcode{"textbackgroundcolor"}, @qcode{"textcolor"}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
114 ## @qcode{"textedgecolor"}, @qcode{"textlinewidth"}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
115 ## @qcode{"textmargin"}, @qcode{"textrotation"}. |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
116 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
117 ## @item @qcode{"textbox"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
118 ## Construct a box with a text inside. @var{pos} specifies the |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
119 ## @qcode{"position"} property of the annotation. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
120 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
121 ## You may use @qcode{"backgroundcolor"}, @qcode{"edgecolor"}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
122 ## @qcode{"linestyle"} , @qcode{"linewidth"} properties to customize |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
123 ## the box background color and edges appearance. A limited set of |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
124 ## @code{text} objects properties is also available: besides |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
125 ## @qcode{"font@dots{}"} properties, you may also use |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
126 ## @qcode{"horizontalalignment"} and @qcode{"verticalalignment"} to |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
127 ## move the text inside the box. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
128 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
129 ## Finally the @qcode{"fitboxtotext"} property controls the actual |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
130 ## extent of the box. If @qcode{"on"} (the default) the |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
131 ## box limits are fitted to the text extent. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
132 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
133 ## @item @qcode{"rectangle"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
134 ## Construct a rectangle. @var{pos} specifies the |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
135 ## @qcode{"position"} property of the annotation. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
136 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
137 ## You may use @qcode{"facecolor"}, @qcode{"color"}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
138 ## @qcode{"linestyle"} and @qcode{"linewidth"} properties to customize |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
139 ## the rectangle background color and edges appearance. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
140 ## |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
141 ## @item @qcode{"ellipse"} |
19829
ca7599ae464d
doc: Grammarcheck documentation ahead of 4.0 release.
Rik <rik@octave.org>
parents:
19775
diff
changeset
|
142 ## Construct an ellipse. @var{pos} specifies the |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
143 ## @qcode{"position"} property of the annotation. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
144 ## |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
145 ## See @qcode{"rectangle"} annotations for customization. |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
146 ## @end table |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
147 ## |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
148 ## @seealso{xlabel, title} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
149 ## @end deftypefn |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
150 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
151 function varargout = annotation (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
152 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
153 objtype = ""; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
154 hf = []; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
155 lims = []; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
156 x = y = []; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
157 opts = {}; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
158 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
159 nargin = numel (varargin); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
160 if (nargin == 0) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
161 print_usage (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
162 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
163 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
164 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
165 ## Parent figure |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
166 if (isfigure (varargin{1})) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
167 hf = varargin{1}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
168 varargin = varargin(2:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
169 nargin --; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
170 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
171 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
172 ## Annotation type |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
173 types = {"line", "arrow", "doublearrow", "textarrow", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
174 "textbox", "ellipse", "rectangle"}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
175 if (ischar (varargin{1})) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
176 objtype = varargin{1}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
177 varargin(1) = []; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
178 nargin --; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
179 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
180 print_usage (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
181 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
182 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
183 switch (objtype) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
184 case types(1:4) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
185 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
186 if (nargin == 0) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
187 lims = []; |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
188 elseif (nargin >= 2) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
189 x = varargin{1}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
190 y = varargin{2}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
191 varargin(1:2) = []; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
192 |
19899
e9f89866074c
maint: Cleanup some .m files to follow Octave coding conventions.
John W. Eaton <jwe@octave.org>
parents:
19885
diff
changeset
|
193 if (isnumeric (x) && isnumeric (y) |
e9f89866074c
maint: Cleanup some .m files to follow Octave coding conventions.
John W. Eaton <jwe@octave.org>
parents:
19885
diff
changeset
|
194 && length (x) == 2 && length (y) == 2) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
195 lims = [x(1) y(1) diff(x) diff(y)]; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
196 else |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
197 error ("annotation: expect 2 elements vectors for X and Y"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
198 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
199 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
200 print_usage (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
201 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
202 case types(5:end) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
203 if (nargin == 0) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
204 lims = []; |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
205 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
206 lims = varargin{1}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
207 varargin(1) = []; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
208 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
209 if (! isvector (lims) || length (lims) != 4) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
210 error ("annotation: expect 4 elements vector for POS") |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
211 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
212 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
213 otherwise |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
214 error ("annotation: unknown annotation type %s", objtype) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
215 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
216 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
217 ## options |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
218 opts = varargin; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
219 nopts = numel (opts); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
220 if (! isempty (opts)) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
221 if (fix (nopts/2) != nopts/2 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
222 || ! all (cellfun (@ischar, opts(1:2:end)))) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
223 warning ("annotation: couldn't parse PROP/VAL pairs, skipping"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
224 opts = {}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
225 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
226 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
227 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
228 ## create annotation |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
229 showhidden = get (0, "showhiddenhandles"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
230 set (0, "showhiddenhandles", "on"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
231 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
232 unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
233 if (isempty (hf)) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
234 hf = gcf (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
235 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
236 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
237 ## Axes |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
238 hca = get (hf, "currentaxes"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
239 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
240 hax = findall (hf, "-depth", 1, "tag", "scribeoverlay"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
241 if (isempty (hax)) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
242 hax = buildoverlay (hf); |
19854
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19831
diff
changeset
|
243 else |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19831
diff
changeset
|
244 ## Make sure the annotations are on top of other axes |
4569903d6c5a
axes.m: reworks axes restacking for ML compatibility (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19831
diff
changeset
|
245 axes (hax); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
246 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
247 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
248 ## Build annotation |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
249 htmp = buildannot (hax, objtype, lims); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
250 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
251 ## Set user defined properties |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
252 if (! isempty (opts)) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
253 set (htmp, opts{:}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
254 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
255 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
256 unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
257 set (0, "showhiddenhandles", showhidden); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
258 set (hf, "currentaxes", hca); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
259 end_unwind_protect |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
260 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
261 if (nargout != 0) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
262 varargout{1} = htmp; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
263 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
264 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
265 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
266 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
267 function hax = buildoverlay (hf) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
268 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
269 hax = axes ("parent", hf, "position", [0 0 1 1], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
270 "visible", "off","tag", "scribeoverlay", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
271 "xlim", [0 1], "ylim", [0 1], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
272 "handlevisibility", "off"); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
273 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
274 ## hidden property to store figure size in absolute (points) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
275 ## coordinates |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
276 addproperty ("figsize_points", hax, "axesxmtick", []); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
277 update_figsize_points (hf, {}, hax); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
278 |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
279 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
280 listener = {@update_figsize_points, hax}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
281 addlistener (hf, "position", listener); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
282 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
283 delfcn = @() dellistener (hf, "position", listener); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
284 set (hax, "deletefcn", delfcn); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
285 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
286 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
287 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
288 function update_figsize_points (hf, dummy, hax) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
289 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
290 persistent recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
291 if (! recursive) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
292 recursive = true; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
293 units = get (hf, "units"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
294 set (hf, "units", "points"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
295 pos = get (hf, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
296 set (hf, "units", units); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
297 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
298 set (hax, "figsize_points", pos(3:4)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
299 recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
300 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
301 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
302 endfunction |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
303 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
304 function h = buildannot (hax, objtype, pos) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
305 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
306 ## Base hggroup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
307 h = hggroup ("parent", hax); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
308 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
309 ## Base context menu |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
310 hui = uicontextmenu (get (hax, "parent")); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
311 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
312 ## Add common properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
313 if (strcmp (graphics_toolkit (), "gnuplot")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
314 ## FIXME: this is a workaround for bug #39394 (gnuplot toolkit) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
315 defprops = {"position", "axesposition", [0.3 0.3 0.1 0.1], ... |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
316 "units", "textunits", "data"}; |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
317 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
318 defprops = {"position", "axesposition", [0.3 0.3 0.1 0.1], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
319 "units", "axesunits", "normalized"}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
320 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
321 addbaseprops (h, defprops); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
322 setappdata (h, "__former_units__", "normalized"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
323 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
324 ## Add common menus |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
325 prop = "units"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
326 vals = set (h, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
327 addbasemenu (hui, h, prop, vals, "Units"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
328 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
329 ## Common updaters |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
330 listener = {@update_position, h, true}; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
331 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
332 addlistener (hax, "figsize_points", listener); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
333 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
334 delfcn = @() dellistener (hax, "figsize_points", listener); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
335 set (h, "deletefcn", delfcn); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
336 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
337 addlistener (h, "units", {@update_position, h}); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
338 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
339 ## Now work with normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
340 if (! isempty (pos)) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
341 set (h, "position", pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
342 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
343 pos = getnormpos (h); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
344 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
345 ## Build annotation object and its specific properties/updaters |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
346 switch (objtype) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
347 case {"line", "arrow", "doublearrow", "textarrow"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
348 ## Add properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
349 proptable = lineprops (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
350 if (strcmp (objtype, "arrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
351 proptable = [proptable arrowprops()]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
352 elseif (strcmp (objtype, "doublearrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
353 proptable = [proptable dblarrowprops()]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
354 elseif (strcmp (objtype, "textarrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
355 proptable = [proptable arrowprops()]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
356 proptable = [proptable textprops()]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
357 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
358 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
359 addbaseprops (h, proptable); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
360 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
361 ## create line |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
362 hli = line ([pos(1); (pos(1) + pos(3))], |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
363 [pos(2); (pos(2) + pos(4))], |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
364 "parent", h, "color", get (h, "color"), |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
365 "linestyle", get (h, "linestyle"), |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
366 "linewidth", get (h, "linewidth")); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
367 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
368 linemenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
369 set (hli, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
370 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
371 ## create patch(s) and text |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
372 if (strcmp (objtype, "arrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
373 [x, y] = arrowcoordinates (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
374 hpa = patch (x, y, get (h, "color"), "parent", h, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
375 "edgecolor", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
376 update_arrow (h, {}, "position", hpa); |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
377 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
378 arrowmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
379 set (hpa, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
380 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
381 elseif (strcmp (objtype, "doublearrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
382 [x, y] = arrowcoordinates (h, 1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
383 hpa = patch (x, y, get (h, "color"), "parent", h, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
384 "edgecolor", get (h, "color")); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
385 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
386 [x, y] = arrowcoordinates (h, 2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
387 hpa(2) = patch (x, y, get (h, "color"), "parent", h, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
388 "edgecolor", get (h, "color")); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
389 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
390 update_arrow (h, {}, "position", hpa); |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
391 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
392 dblarrowmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
393 set (hpa, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
394 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
395 elseif (strcmp (objtype, "textarrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
396 [x, y] = arrowcoordinates (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
397 hpa = patch (x, y, get (h, "color"), "parent", h, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
398 "edgecolor", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
399 update_arrow (h, {}, "position", hpa); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
400 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
401 hte = text (get (h, "position")(1), ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
402 get (h, "position")(2), ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
403 get (h, "string"), "parent", h, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
404 "color", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
405 propnames = textprops ("names"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
406 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
407 update_text (h, {}, propnames{ii}, hte); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
408 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
409 update_text (h, {}, "position", hte); |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
410 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
411 arrowmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
412 textmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
413 set (hpa, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
414 set (hte, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
415 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
416 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
417 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
418 ## updaters |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
419 addlistener (h, "color", {@update_line, "color", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
420 addlistener (h, "linestyle", {@update_line, "linestyle", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
421 addlistener (h, "linewidth", {@update_line, "linewidth", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
422 addlistener (h, "x", {@update_line, "x", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
423 addlistener (h, "y", {@update_line, "y", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
424 addlistener (h, "position", {@update_line, "position", hli}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
425 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
426 if (strcmp (objtype, "arrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
427 addlistener (h, "position", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
428 addlistener (h, "headwidth", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
429 addlistener (h, "headstyle", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
430 addlistener (h, "headlength", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
431 addlistener (h, "color", {@update_arrow, "color", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
432 elseif (strcmp (objtype, "doublearrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
433 addlistener (h, "position", {@update_arrow, "position", hpa}); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
434 addlistener (h, "head1width", |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
435 {@update_arrow, "position", [hpa(1) 0]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
436 addlistener (h, "head2width", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
437 {@update_arrow, "position", [0 hpa(2)]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
438 addlistener (h, "head1style", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
439 {@update_arrow, "position", [hpa(1) 0]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
440 addlistener (h, "head2style", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
441 {@update_arrow, "position", [0 hpa(2)]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
442 addlistener (h, "head1length", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
443 {@update_arrow, "position", [hpa(1) 0]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
444 addlistener (h, "head2length", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
445 {@update_arrow, "position", [0 hpa(2)]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
446 addlistener (h, "color", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
447 {@update_arrow, "color", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
448 elseif (strcmp (objtype, "textarrow")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
449 addlistener (h, "position", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
450 addlistener (h, "headwidth", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
451 addlistener (h, "headstyle", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
452 addlistener (h, "headlength", {@update_arrow, "position", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
453 addlistener (h, "color", {@update_arrow, "color", hpa}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
454 propnames = textprops ("names"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
455 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
456 addlistener (h, propnames{ii}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
457 {@update_text, propnames{ii}, hte}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
458 if (any (strcmp (propnames{ii}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
459 {"fontangle", "fontname", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
460 "fontsize", "fontweight", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
461 "horizontalalignment", "string", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
462 "textmargin", "textrotation", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
463 "verticalalignment"}))) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
464 addlistener (h, propnames{ii}, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
465 {@update_text, "position", hte}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
466 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
467 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
468 addlistener (h, "position", {@update_text, "position", hte}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
469 addlistener (h, "color", {@update_text, "color", hte}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
470 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
471 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
472 case {"rectangle", "ellipse"} |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
473 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
474 ## Add properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
475 addbaseprops (h, rectprops ()); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
476 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
477 ## Create rectangle/ellipse |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
478 if (strcmp (objtype, "rectangle")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
479 [x, y] = pos2rect (pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
480 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
481 [x, y] = pos2ell (pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
482 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
483 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
484 hr = patch (x, y, "parent", h); |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
485 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
486 propnames = rectprops ("names"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
487 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
488 update_rect (h, {}, propnames{ii}, hr, objtype); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
489 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
490 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
491 rectmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
492 set (hr, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
493 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
494 ## Updaters |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
495 addlistener (h, "position", {@update_rect, "position", hr, objtype}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
496 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
497 addlistener (h, propnames{ii}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
498 {@update_rect, propnames{ii}, hr, objtype}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
499 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
500 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
501 case "textbox" |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
502 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
503 ## Add properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
504 addbaseprops (h, textboxprops()); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
505 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
506 ## Create textbox |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
507 hpa = patch ("parent", h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
508 hte = text (pos(1), pos(2), get (h, "string"), "parent", h, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
509 "color", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
510 update_textbox (h, {}, "position", [hte hpa]); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
511 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
512 propnames = textboxprops ("names"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
513 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
514 update_textbox (h, {}, propnames{ii}, [hte hpa]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
515 endfor |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
516 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
517 textboxmenu (hui, h); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
518 set (hpa, "uicontextmenu", hui); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
519 set (hte, "uicontextmenu", hui); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
520 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
521 ## Updaters |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
522 addlistener (h, "position", {@update_textbox, "position", [hte hpa]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
523 for ii = 1:numel (propnames) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
524 addlistener (h, propnames{ii}, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
525 {@update_textbox, propnames{ii}, [hte hpa]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
526 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
527 addlistener (h, "horizontalalignment", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
528 {@update_textbox, "position", [hte hpa]}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
529 addlistener (h, "verticalalignment", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
530 {@update_textbox, "position", [hte hpa]}); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
531 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
532 endswitch |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
533 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
534 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
535 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
536 function props = lineprops (varargin) |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
537 ## FIXME: Use "axesx(y)lim" instead of "linex(y)data" |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
538 props = {"color", "color", [0 0 0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
539 "linestyle", "linelinestyle", "-", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
540 "linewidth", "linelinewidth", 0.5, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
541 "x", "linexdata", [0.3 0.4], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
542 "y", "lineydata", [0.3 0.4]}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
543 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
544 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
545 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
546 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
547 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
548 function col = basecolors () |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
549 col = {"blue", "black", "cyan", "green", "magenta", "red", ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
550 "white", "yellow", "none"}; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
551 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
552 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
553 function linemenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
554 hm = uimenu ("parent", hui, "label", "Line"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
555 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
556 ## Color |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
557 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
558 addbasemenu (hm, hpar, "Color", vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
559 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
560 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
561 ## Linestyle |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
562 vals = set (hpar, "linestyle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
563 addbasemenu (hm, hpar, "Linestyle", vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
564 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
565 ## Linewidth |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
566 vals = [0.5 1 1.5 2]; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
567 addbasemenu (hm, hpar, "Linewidth", vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
568 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
569 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
570 function props = arrowprops (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
571 props = {"headlength", "data", 10, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
572 "headstyle", "radio", "diamond|ellipse|none|plain|rectangle|vback1|{vback2}|vback3", ... |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
573 "headwidth", "data", 10}; |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
574 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
575 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
576 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
577 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
578 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
579 function arrowmenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
580 hm = uimenu ("parent", hui, "label", "Arrowhead"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
581 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
582 ## Headlength/width |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
583 vals = 6:2:16; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
584 addbasemenu (hm, hpar, "headlength", vals, "Length"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
585 addbasemenu (hm, hpar, "headwidth", vals, "Width"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
586 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
587 ## Headstyle |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
588 vals = set (hpar, "headstyle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
589 addbasemenu (hm, hpar, "Headstyle", vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
590 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
591 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
592 function props = dblarrowprops (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
593 props = {"head1length", "data", 10, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
594 "head1style", "radio", "diamond|ellipse|none|plain|rectangle|vback1|{vback2}|vback3", ... |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
595 "head1width", "data", 10, ... |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
596 "head2length", "data", 10, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
597 "head2style", "radio", "diamond|ellipse|none|plain|rectangle|vback1|{vback2}|vback3", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
598 "head2width", "data", 10}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
599 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
600 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
601 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
602 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
603 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
604 function dblarrowmenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
605 hm1 = uimenu ("parent", hui, "label", "Arrowhead #1"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
606 hm2 = uimenu ("parent", hui, "label", "Arrowhead #2"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
607 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
608 ## Headlength/width |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
609 vals = 6:2:16; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
610 addbasemenu (hm1, hpar, "head1length", vals, "Length"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
611 addbasemenu (hm1, hpar, "head1width", vals, "Width"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
612 addbasemenu (hm2, hpar, "head2length", vals, "Length"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
613 addbasemenu (hm2, hpar, "head2width", vals, "Width"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
614 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
615 ## Headstyle |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
616 vals = set (hpar, "head1style"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
617 addbasemenu (hm1, hpar, "head1style", vals, "Headstyle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
618 addbasemenu (hm2, hpar, "head2style", vals, "Headstyle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
619 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
620 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
621 function props = textprops (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
622 props = {"fontangle", "textfontangle", "normal", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
623 "fontname", "textfontname", "Helvetica", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
624 "fontsize", "textfontsize", 10, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
625 "fontunits", "textfontunits", "points", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
626 "fontweight", "textfontweight", "normal", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
627 "horizontalalignment", "texthorizontalalignment", "left", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
628 "interpreter", "textinterpreter", "tex", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
629 "string", "textstring", "", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
630 "textbackgroundcolor", "textbackgroundcolor", "none", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
631 "textcolor", "textcolor", "k", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
632 "textedgecolor", "textedgecolor", "none", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
633 "textlinewidth", "textlinewidth",0.5, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
634 "textmargin", "textmargin", 5, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
635 "textrotation", "textrotation", 0, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
636 "verticalalignment", "textverticalalignment", "middle"}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
637 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
638 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
639 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
640 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
641 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
642 function stringdlg (hpar, prop) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
643 def = get (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
644 if (iscell (def)) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
645 prompt = arrayfun (@(n) sprintf ("Line #%d:", n), 1:numel (def), |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
646 "uniformoutput", false); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
647 else |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
648 prompt = ""; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
649 def = {def}; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
650 endif |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
651 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
652 cstr = inputdlg (prompt, prop, 1, def); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
653 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
654 if (! isempty (cstr)) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
655 set (hpar, prop, cstr) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
656 endif |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
657 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
658 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
659 function textmenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
660 hm = uimenu ("parent", hui, "label", "Text"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
661 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
662 ## String; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
663 prop = "String"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
664 fcn = @() stringdlg (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
665 uimenu (hm, "label", prop, "callback", fcn); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
666 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
667 ## Font properties |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
668 prop = "textcolor"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
669 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
670 addbasemenu (hm, hpar, prop, vals, "Color"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
671 prop = "fontsize"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
672 vals = 8:2:20; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
673 addbasemenu (hm, hpar, prop, vals, "Size"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
674 prop = "fontangle"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
675 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
676 addbasemenu (hm, hpar, prop, vals, "Angle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
677 prop = "fontweight"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
678 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
679 addbasemenu (hm, hpar, prop, vals, "Weight"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
680 prop = "textrotation"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
681 vals = 0:90:270; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
682 addbasemenu (hm, hpar, prop, vals, "Rotation"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
683 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
684 prop = "horizontalalignment"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
685 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
686 addbasemenu (hm, hpar, prop, vals, "Horizontal Alignment", ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
687 "separator", "on"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
688 prop = "verticalalignment"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
689 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
690 addbasemenu (hm, hpar, prop, vals, "Vertical Alignment"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
691 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
692 ## FIXME: Add text background properties when they are supported |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
693 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
694 prop = "interpreter"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
695 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
696 addbasemenu (hm, hpar, prop, vals, "Interpreter", ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
697 "separator", "on"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
698 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
699 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
700 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
701 function props = textboxprops (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
702 props = {"backgroundcolor", "patchfacecolor", "none", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
703 "color", "textcolor", [0 0 0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
704 "edgecolor", "patchedgecolor", [0 0 0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
705 "facealpha", "patchfacealpha", 1, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
706 "fontangle", "textfontangle", "normal", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
707 "fontname", "textfontname", "Helvetica", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
708 "fontsize", "textfontsize", 10, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
709 "fontunits", "textfontunits", "points", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
710 "fontweight", "textfontweight", "normal", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
711 "horizontalalignment", "texthorizontalalignment", "left", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
712 "interpreter", "textinterpreter", "tex", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
713 "linestyle", "linelinestyle", "-", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
714 "linewidth", "linelinewidth", 0.5, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
715 "string", "textstring", "", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
716 "fitboxtotext", "radio","{on}|off", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
717 "margin", "data", 5, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
718 "verticalalignment", "textverticalalignment", "middle"}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
719 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
720 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
721 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
722 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
723 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
724 function textboxmenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
725 ## Text properties |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
726 hm1 = uimenu ("parent", hui, "label", "Text"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
727 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
728 prop = "String"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
729 fcn = @() stringdlg (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
730 uimenu (hm1, "label", prop, "callback", fcn); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
731 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
732 prop = "Color"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
733 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
734 addbasemenu (hm1, hpar, prop, vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
735 prop = "fontsize"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
736 vals = 8:2:20; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
737 addbasemenu (hm1, hpar, prop, vals, "Size"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
738 prop = "fontangle"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
739 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
740 addbasemenu (hm1, hpar, prop, vals, "Angle"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
741 prop = "fontweight"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
742 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
743 addbasemenu (hm1, hpar, prop, vals, "Weight"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
744 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
745 prop = "horizontalalignment"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
746 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
747 addbasemenu (hm1, hpar, prop, vals, "Horizontal Alignment", ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
748 "separator", "on"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
749 prop = "verticalalignment"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
750 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
751 addbasemenu (hm1, hpar, prop, vals, "Vertical Alignment"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
752 prop = "Margin"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
753 vals = 2:2:10; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
754 addbasemenu (hm1, hpar, prop, vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
755 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
756 prop = "interpreter"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
757 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
758 addbasemenu (hm1, hpar, prop, vals, "Interpreter", ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
759 "separator", "on"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
760 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
761 ## Background properties |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
762 hm2 = uimenu ("parent", hui, "label", "Background"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
763 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
764 prop = "fitboxtotext"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
765 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
766 addbasemenu (hm2, hpar, prop, vals, "Fit box to text"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
767 prop = "backgroundcolor"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
768 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
769 addbasemenu (hm2, hpar, prop, vals, "Face Color"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
770 prop = "edgecolor"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
771 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
772 addbasemenu (hm2, hpar, prop, vals, "Edge Color"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
773 prop = "linestyle"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
774 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
775 addbasemenu (hm2, hpar, prop, vals, "Line Style"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
776 prop = "linewidth"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
777 vals = 0.5:.5:2; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
778 addbasemenu (hm2, hpar, prop, vals, "Line Width"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
779 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
780 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
781 function props = rectprops (varargin) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
782 props = {"edgecolor", "patchedgecolor", "k", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
783 "facealpha", "patchfacealpha", 1, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
784 "facecolor", "patchfacecolor", "none", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
785 "linestyle", "patchlinestyle", "-", ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
786 "linewidth", "patchlinewidth", 0.5}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
787 if (strcmp (varargin, "names")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
788 props = props(1:3:end); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
789 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
790 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
791 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
792 function rectmenu (hui, hpar) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
793 prop = "facecolor"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
794 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
795 addbasemenu (hui, hpar, prop, vals, "Face Color"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
796 prop = "edgecolor"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
797 vals = basecolors (); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
798 addbasemenu (hui, hpar, prop, vals, "Edge Color"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
799 prop = "linestyle"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
800 vals = set (hpar, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
801 addbasemenu (hui, hpar, prop, vals, "Line Style"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
802 prop = "linewidth"; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
803 vals = 0.5:.5:2; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
804 addbasemenu (hui, hpar, prop, vals, "Line Width"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
805 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
806 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
807 function addbaseprops (h, proptable) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
808 cellfun (@(pname, ptype, parg) addproperty (pname, h, ptype, parg), |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
809 proptable(1:3:end), proptable(2:3:end), proptable(3:3:end)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
810 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
811 |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
812 function addbasemenu (hm, hpar, pname, vals, mainlabel = "" ) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
813 if (isempty (mainlabel)) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
814 mainlabel = pname; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
815 endif |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
816 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
817 h = uimenu ("parent", hm, "label", mainlabel); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
818 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
819 is_numeric = ! iscell (vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
820 nv = numel (vals); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
821 htmp = zeros (1, nv); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
822 for ii = 1:nv |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
823 if (! is_numeric) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
824 val = label = vals{ii}; |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
825 else |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
826 val = vals(ii); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
827 label = num2str (val); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
828 endif |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
829 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
830 fcn = @() set (hpar, pname, val); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
831 htmp(ii) = uimenu (h, "label", label, "callback", fcn); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
832 endfor |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
833 handle_check (hpar, {}, htmp, pname, is_numeric); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
834 addlistener (hpar, pname, {@handle_check, htmp, pname, is_numeric}) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
835 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
836 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
837 function handle_check (h, dummy, hmenus, prop, is_numeric) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
838 vals = get (hmenus, "label"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
839 current = get (h, prop); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
840 if (is_numeric) |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
841 current = num2str (current); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
842 endif |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
843 |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
844 idx = strcmp (vals, current); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
845 set (hmenus(idx), "checked", "on"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
846 set (hmenus(! idx), "checked", "off"); |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
847 endfunction |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
848 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
849 function update_position (h1, dummy, h, force = false) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
850 if (! force) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
851 pos = convertposition (h, getappdata (h, "__former_units__"), |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
852 get (h, "units")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
853 setappdata (h, "__former_units__", get (h, "units")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
854 set (h, "position", pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
855 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
856 ## FIXME: Inefficient trick to force all objects to be redrawn |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
857 set (h, "position", [0 0 .5 .5], |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
858 "position", get (h, "position")); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
859 endif |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
860 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
861 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
862 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
863 function update_line (h, dummy, prop, hli) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
864 persistent recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
865 if (! recursive) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
866 switch (prop) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
867 case "color" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
868 set (hli, "color", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
869 case "linestyle" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
870 set (hli, "linestyle", get (h, "linestyle")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
871 case "linewidth" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
872 set (hli, "linewidth", get (h, "linewidth")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
873 case "x" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
874 ## Update position |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
875 x = get (h, "x"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
876 pos = get (h, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
877 pos(1) = x(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
878 pos(3) = diff (x); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
879 recursive = true; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
880 set (h, "position", pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
881 recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
882 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
883 ## Draw in normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
884 pos = getnormpos (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
885 x = [pos(1) (pos(1) + pos(3))]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
886 set (hli, "xdata", x); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
887 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
888 case "y" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
889 ## Update position |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
890 y = get (h, "y"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
891 pos = get (h, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
892 pos(2) = y(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
893 pos(4) = diff (y); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
894 recursive = true; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
895 set (h, "position", pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
896 recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
897 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
898 ## Draw in normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
899 pos = getnormpos (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
900 y = [pos(2) (pos(2) + pos(4))]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
901 set (hli, "ydata", y); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
902 case "position" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
903 ## Update x and y |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
904 pos = get (h, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
905 x = [pos(1) (pos(1) + pos(3))]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
906 y = [pos(2) (pos(2) + pos(4))]; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
907 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
908 recursive = true; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
909 set (h, "x", x); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
910 set (h, "y", y); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
911 recursive = false; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
912 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
913 ## Draw in normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
914 pos = getnormpos (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
915 x = [pos(1) (pos(1) + pos(3))]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
916 y = [pos(2) (pos(2) + pos(4))]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
917 set (hli, "xdata", x); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
918 set (hli, "ydata", y); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
919 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
920 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
921 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
922 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
923 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
924 function [x, y] = arrowcoordinates (h, nar = []) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
925 pos = getnormpos (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
926 ppos = norm2pts (h, pos(3:4).'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
927 ang = angle (complex (ppos(1), ppos(2))); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
928 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
929 if (isempty (nar)) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
930 ln = get (h, "headlength"); # in points |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
931 wd = get (h, "headwidth"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
932 headstyle = get (h, "headstyle"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
933 pos = pos(1:2) .+ pos(3:4); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
934 elseif (nar == 1) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
935 ln = get (h, "head1length"); # in points |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
936 wd = get (h, "head1width"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
937 headstyle = get (h, "head1style"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
938 pos = pos(1:2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
939 ang += pi; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
940 elseif (nar == 2) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
941 ln = get (h, "head2length"); # in points |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
942 wd = get (h, "head2width"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
943 headstyle = get (h, "head2style"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
944 pos = pos(1:2) .+ pos(3:4); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
945 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
946 error ("annotation: %d, no such arrow number") |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
947 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
948 |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
949 switch (headstyle) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
950 case "diamond" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
951 x = [0 -ln/2 -ln -ln/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
952 y = [0 -wd/2 0 wd/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
953 case "ellipse" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
954 pts = linspace (0, 2*pi, 12); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
955 x = ln/2 * (cos (pts) - 1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
956 y = wd/2 * sin (pts); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
957 case "rectangle" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
958 x = [0 0 -ln -ln 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
959 y = [wd/2 -wd/2 -wd/2 wd/2 wd/2]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
960 case "vback1" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
961 x = [0 -ln -0.85*ln -ln 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
962 y = [0 wd/2 0 -wd/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
963 case "vback2" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
964 x = [0 -ln -0.65*ln -ln 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
965 y = [0 wd/2 0 -wd/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
966 case "vback3" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
967 x = [0 -ln -0.2*ln -ln 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
968 y = [0 wd/2 0 -wd/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
969 case "plain" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
970 x = [0 -ln -ln -ln 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
971 y = [0 wd/2 0 -wd/2 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
972 case "none" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
973 x = [0 0 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
974 y = [0 0 0]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
975 otherwise |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
976 error ("annotation: \"%s\" headstyle not implemented", headstyle) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
977 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
978 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
979 R = [cos(ang) -sin(ang); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
980 sin(ang) cos(ang)]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
981 XY = R * [x; y]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
982 XY = pts2norm (h, XY); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
983 XY = pos(1:2).' .+ XY; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
984 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
985 x = XY(1,:).'; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
986 y = XY(2,:).'; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
987 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
988 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
989 function update_arrow (h, dummy, prop, hpa = []) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
990 persistent recursive = false; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
991 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
992 nar = []; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
993 for ii = 1:numel (hpa) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
994 if (numel (hpa) == 2) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
995 nar = ii; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
996 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
997 if (hpa(ii)) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
998 switch (prop) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
999 case "position" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1000 [x, y] = arrowcoordinates (h, nar); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1001 set (hpa(ii), "xdata", x, "ydata", y); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1002 case "color" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1003 set (hpa(ii), "facecolor", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1004 set (hpa(ii), "edgecolor", get (h, "color")); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1005 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1006 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1007 endfor |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1008 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1009 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1010 function update_text (h, dummy, prop, hte) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1011 persistent recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1012 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1013 if (! recursive) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1014 switch (prop) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1015 case "position" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1016 if (isempty (get (h, "string"))) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1017 return |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1018 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1019 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1020 pos = getnormpos (h); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1021 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1022 set (hte, "position", [textcoordinates(hte, pos) 0]); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1023 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1024 otherwise |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1025 if (strncmp (prop, "text", 4)) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1026 set (hte, prop(5:end), get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1027 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1028 set (hte, prop, get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1029 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1030 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1031 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1032 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1033 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1034 function update_textbox (h, dummy, prop, htb) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1035 persistent recursive = false; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1036 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1037 hte = htb(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1038 hpa = htb(2); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1039 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1040 if (! recursive) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1041 switch (prop) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1042 case {"edgecolor", "facealpha", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1043 "linestyle", "linewidth"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1044 set (hpa, prop, get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1045 case {"backgroundcolor"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1046 set (hpa, "facecolor", get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1047 otherwise |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1048 if (! any (strcmp (prop, {"fitboxtotext", "position"}))) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1049 set (hte, prop, get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1050 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1051 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1052 pos = getnormpos (h); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1053 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1054 if (strcmp (get (h, "fitboxtotext"), "on")) |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
1055 pos(3:4) = get (hte, "extent")(3:4) .* sign (pos(3:4)); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1056 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1057 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1058 [x, y] = pos2rect (pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1059 set (hpa, "xdata", x', "ydata", y'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1060 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1061 switch (get (h, "horizontalalignment")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1062 case "left" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1063 x = x(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1064 case "center" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1065 x = mean (x(1:2)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1066 case "right" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1067 x = x(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1068 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1069 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1070 switch (get (h, "verticalalignment")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1071 case {"top", "cap"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1072 y = y(3); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1073 case "middle" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1074 y = mean (y(2:3)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1075 case {"bottom", "baseline"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1076 y = y(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1077 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1078 set (hte, "position", [x y 0]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1079 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1080 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1081 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1082 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1083 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1084 function XY = textcoordinates (hte, pos) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1085 ## Get the "tight" extent of the text object in points units |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1086 textpos = get(hte, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1087 rot = get (hte, "rotation"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1088 units = get (hte, "units"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1089 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1090 set (hte, "rotation", 0, "units", "points", "position", [0 0 0]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1091 ext = get (hte, "extent"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1092 set (hte, "rotation", rot, "units", units, "position", textpos); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1093 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1094 ## Find which one of the 8 following points we should align the |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1095 ## arrow with |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1096 ## 8-----7-----6 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1097 ## 1 text box 5 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1098 ## 2-----3-----4 |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1099 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1100 ## FIXME: Matlab's horizontal/verticalalignment properties are |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1101 ## interpreted differently: horizontalalignment is passed to the |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1102 ## underlying text object whereas the verticalalignement controls |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1103 ## the vertical alignment of the arrow. |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1104 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1105 ang = angle (complex (pos(3), pos(4))); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1106 rot = rot / 180 * pi; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1107 |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1108 [~, pt] = min (abs ((-pi:pi/4:pi) - ang)); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1109 pt -= floor (rot / (pi/4)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1110 if (pt <= 0) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1111 pt = rem (pt, 8) + 8; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1112 elseif (pt > 8) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1113 pt = rem (pt, 8); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1114 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1115 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1116 ## Compute the text actual "position" property |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1117 dx = ext(3)/2; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1118 dy = ext(4)/2; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1119 XY = [-dx -dx 0 dx dx dx 0 -dx; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1120 0 -dy -dy -dy 0 dy dy dy]; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1121 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1122 switch (get (hte, "horizontalalignment")) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1123 case "left" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1124 XY(1,:) += dx; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1125 case "right" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1126 XY(1,:) -= dx; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1127 endswitch |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1128 |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1129 switch (get (hte, "verticalalignment")) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1130 case {"baseline", "bottom"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1131 XY(2,:) += dy; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1132 case {"cap", "top"} |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1133 XY(2,:) -= dy; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1134 endswitch |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1135 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1136 R = [cos(rot) -sin(rot); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1137 sin(rot) cos(rot)]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1138 XY = R * XY; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1139 XY = pts2norm (get (hte, "parent"), XY); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1140 XY = pos(1:2) .- XY(:,pt).'; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1141 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1142 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1143 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1144 function nXY = pts2norm (h, pXY) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1145 sz = get (get (h,"parent"), "figsize_points"); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1146 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1147 nXY(1,:) = pXY(1,:) ./ sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1148 nXY(2,:) = pXY(2,:) ./ sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1149 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1150 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1151 function pXY = norm2pts (h, nXY) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1152 sz = get (get (h,"parent"), "figsize_points"); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1153 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1154 pXY(1,:) = nXY(1,:) .* sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1155 pXY(2,:) = nXY(2,:) .* sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1156 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1157 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1158 function pos = convertposition (h, from, to) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1159 ## FIXME: handle "characters" units |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1160 pos = get (h, "position"); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1161 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1162 ## First convert to normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1163 sz = get (get (h,"parent"), "figsize_points"); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1164 switch (from) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1165 case "centimeters" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1166 pos /= 2.54; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1167 pos *= 72; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1168 pos(1:2:end) /= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1169 pos(2:2:end) /= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1170 case "inches" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1171 pos *= 72; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1172 pos(1:2:end) /= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1173 pos(2:2:end) /= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1174 case "pixels" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1175 pos /= get (0, "screenpixelsperinch"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1176 pos *= 72; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1177 pos(1:2:end) /= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1178 pos(2:2:end) /= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1179 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1180 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1181 ## Then convert to requested coordinates |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1182 switch (to) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1183 case "centimeters" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1184 sz /= 72; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1185 sz *= 2.54; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1186 pos(1:2:end) *= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1187 pos(2:2:end) *= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1188 case "inches" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1189 sz /= 72; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1190 pos(1:2:end) *= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1191 pos(2:2:end) *= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1192 case "pixels" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1193 sz /= 72; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1194 sz *= get (0, "screenpixelsperinch"); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1195 pos(1:2:end) *= sz(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1196 pos(2:2:end) *= sz(2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1197 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1198 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1199 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1200 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1201 function pos = getnormpos (h) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1202 units = get (h, "units"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1203 pos = convertposition (h, units, "normalized"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1204 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1205 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1206 function [x, y] = pos2rect (pos) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1207 x = [pos(1) pos(1)+pos(3) pos(1)+pos(3) pos(1)]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1208 y = [pos(2) pos(2) pos(2)+pos(4) pos(2)+pos(4)]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1209 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1210 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1211 function [x, y] = pos2ell (pos) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1212 a = pos(3)/2; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1213 b = pos(4)/2; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1214 |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1215 ## Arbitrarily use 100 points |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1216 ## when it is spread over |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1217 ang = linspace (0, 2*pi, 100); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1218 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1219 x = a * cos (ang); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1220 y = b * sin (ang); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1221 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1222 x += pos(1) + a; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1223 y += pos(2) + b; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1224 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1225 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1226 function update_rect (h, dummy, prop, hre, typ) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1227 persistent recursive = false; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1228 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1229 if (! recursive) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1230 switch (prop) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1231 case "position" |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1232 pos = getnormpos (h); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1233 if (strcmp (typ, "rectangle")) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1234 [x, y] = pos2rect (pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1235 else |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1236 [x, y] = pos2ell (pos); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1237 endif |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1238 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1239 set (hre, "xdata", x, "ydata", y); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1240 otherwise |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1241 set (hre, prop, get (h, prop)); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1242 endswitch |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1243 endif |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1244 endfunction |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1245 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1246 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1247 ## FIXME: the additionnal regular axes is necessary for fltk to draw the |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1248 ## annotation axes. |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1249 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1250 %! clf; axes ('visible', 'off'); |
20141
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
1251 %! annotation ('textbox', [.25 .9 .5 .09], 'string', ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
1252 %! {'Right Click on annotation objects', ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
1253 %! 'to customize their appearance'}, ... |
8eb72c4ed457
Add uicontextmenu to annotation objects
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19899
diff
changeset
|
1254 %! 'horizontalalignment', 'center', 'fitboxtotext', 'off'); |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1255 %! annotation ('ellipse', [.2 .2 .6 .6], 'linewidth', 4) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1256 %! ang = pi/2:-pi/2:-pi; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1257 %! lab = {'N', 'W', 'S', 'E'}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1258 %! x0 = 0.5; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1259 %! y0 = 0.5; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1260 %! r = 0.3; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1261 %! for ii = 1:4 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1262 %! x = r * cos (ang(ii)) + x0; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1263 %! y = r * sin (ang(ii)) + y0; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1264 %! annotation ('textarrow', [x x0], [y y0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1265 %! 'string', lab{ii}, 'fontsize', 20); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1266 %! end |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1267 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1268 %! h = annotation ('doublearrow', [x0 x0], [y0-r y0+r], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1269 %! 'head1style', 'diamond', 'head1length', 60, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1270 %! 'head2style', 'diamond', 'head2length', 60); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1271 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1272 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1273 %! clf; axes ('visible', 'off'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1274 %! plot (1:10); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1275 %! xlabel ('X-LABEL') |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1276 %! ylabel ('LARGE Y-LABEL', 'fontsize', 20) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1277 %! title ('FIGURE LAYOUT', 'fontsize', 24) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1278 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1279 %! ti = get (gca, 'tightinset'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1280 %! pos = get (gca, 'position'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1281 %! pos(1:2) = pos(1:2) - ti(1:2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1282 %! pos(3) = pos(3) + ti (1) + ti (3); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1283 %! pos(4) = pos(4) + ti (2) + ti (4); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1284 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1285 %! ht = annotation ('textbox', pos, 'string', ' Position + tighinset', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1286 %! 'fitboxtotext', 'off', 'linestyle', '--', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1287 %! 'edgecolor', 'g', 'linewidth', 3, 'color', 'g', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1288 %! 'verticalalignment', 'bottom', 'fontsize', 15); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1289 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1290 %! ho = annotation ('textbox', get (gca, 'outerposition'), ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1291 %! 'string', ' Outerposition','fitboxtotext', 'off', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1292 %! 'linestyle', '--', 'edgecolor', 'r', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1293 %! 'linewidth', 3, 'color', 'r', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1294 %! 'verticalalignment', 'bottom', 'fontsize', 15); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1295 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1296 %! hi = annotation ('textbox', get (gca, 'position'), ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1297 %! 'string', ' Position','fitboxtotext', 'off', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1298 %! 'linestyle', '--', 'edgecolor', 'b', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1299 %! 'linewidth', 3, 'color', 'b', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1300 %! 'verticalalignment', 'bottom', 'fontsize', 15); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1301 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1302 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1303 %! clf; axes ('visible', 'off'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1304 %! h = annotation ('arrow'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1305 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1306 %! %% Get allowed headstyles |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1307 %! styles = set (h, 'headstyle'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1308 %! delete (h) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1309 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1310 %! %% Textbox for the title |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1311 %! annotation ('textbox', [0.1 0 0.8 1], 'string', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1312 %! '"headstyle" property:', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1313 %! 'backgroundcolor', [0.7 0.7 0.7], 'fontsize', 20, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1314 %! 'fitboxtotext', 'off', 'verticalalignment', 'top', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1315 %! 'horizontalalignment', 'center'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1316 %! |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1317 %! %% Textarrows |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1318 %! ns = numel (styles); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1319 %! nrows = ceil (ns/2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1320 %! dy = 1/nrows; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1321 %! y = 1 - dy/2; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1322 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1323 %! jj = 1; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1324 %! for ii = 1:nrows |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1325 %! annotation ('textarrow', [0.3 0.5], [y y], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1326 %! 'string', ['"' styles{jj} '"'], 'fontsize', 15, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1327 %! 'headstyle', styles{jj}, 'textcolor', 'b'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1328 %! jj = jj + 1; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1329 %! if (jj <= ns) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1330 %! annotation ('textarrow', [0.7 0.5], [y y], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1331 %! 'string', ['"' styles{jj} '"'], 'fontsize', 15, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1332 %! 'headstyle', styles{jj}, 'textcolor', 'b'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1333 %! jj = jj + 1; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1334 %! end |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1335 %! y = y - dy; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1336 %! end |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1337 %! annotation ('line', [0.5 0.5], [dy/2 1-dy/2], 'linestyle', '-.') |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1338 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1339 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1340 %! clf; axes ('visible', 'off'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1341 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1342 %! %% Textbox for the title |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1343 %! annotation ('textbox', [0.1 0 0.8 1], 'string', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1344 %! 'Text arrows: text rotation', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1345 %! 'backgroundcolor', [0.7 0.7 0.7], 'fontsize', 20, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1346 %! 'fitboxtotext', 'off', 'verticalalignment', 'top', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1347 %! 'horizontalalignment', 'center'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1348 %! |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1349 %! %% Textarrows |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1350 %! for ii = 1:10 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1351 %! rot = floor (rand (1) * 360 / 90) * 90; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1352 %! annotation ('textarrow', 0.5 + [(0.6 * (rand(1) - .5)) 0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1353 %! 0.5 + [(0.6 * (rand(1) - .5)) 0], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1354 %! 'string', 'A text', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1355 %! 'headstyle', 'none', 'textrotation', rot); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1356 %! end |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1357 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1358 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1359 %! clf; axes ('visible', 'off'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1360 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1361 %! %% Textbox for the title |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1362 %! annotation ('textbox', [0.1 0 0.8 1], 'string', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1363 %! 'Text arrows: text alignment', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1364 %! 'backgroundcolor', [0.7 0.7 0.7], 'fontsize', 20, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1365 %! 'fitboxtotext', 'off', 'verticalalignment', 'top', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1366 %! 'horizontalalignment', 'center'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1367 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1368 %! %% Textarrows |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1369 %! halig = {'right', 'center', 'left'}; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1370 %! ii = 1; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1371 %! for x = .3:.2:.7 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1372 %! annotation ('textarrow', [x .5], [.5 .9], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1373 %! 'string', {'Multiple lines', 'text'}, ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1374 %! 'headstyle', 'none', 'horizontalalignment', halig{ii}); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1375 %! ii = ii + 1; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1376 %! end |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1377 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1378 %!demo |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1379 %! clf; axes ('visible', 'off'); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1380 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1381 %! x = 0:0.01:2*pi; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1382 %! y = sin (x); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1383 %! plot (x, y) |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1384 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1385 %! %% Extrema |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1386 %! x0 = [pi/2 3*pi/2]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1387 %! y0 = [1 -1]; |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1388 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1389 %! %% Convert axes coordinates into normalized coordinates |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1390 %! xl = xlim (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1391 %! yl = [-1.2 1.5]; |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1392 %! ylim (yl); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1393 %! x0 = (x0 - xl(1)) / diff(xl); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1394 %! y0 = (y0 - yl(1)) / diff(yl); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1395 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1396 %! pos = get (gca (), 'position'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1397 %! x0 = x0*pos(3) + pos(1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1398 %! y0 = y0*pos(4) + pos(2); |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1399 %! |
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1400 %! |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1401 %! %% Textarrows |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1402 %! for ii = 1:2 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1403 %! annotation ('doublearrow', [(x0(ii) - .05) (x0(ii) + .05)], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1404 %! [y0(ii) y0(ii)], 'head1style', 'vback3', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1405 %! 'head2style', 'vback3', ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1406 %! 'head1width', 4, 'head2width', 4) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1407 %! h = annotation ('textarrow', [0.5 x0(ii)], [.85 y0(ii)], ... |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1408 %! 'linestyle', '--', 'headstyle', 'none'); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1409 %! end |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1410 %! set (h, 'string', 'Extrema', 'fontsize', 15) |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1411 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1412 ## test line properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1413 %!test |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1414 %! hf = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1415 %! hax = axes (); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1416 %! unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1417 %! h = annotation ("line", [0.2 0.7], [0.2 0.7], "linewidth", 2, |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1418 %! "linestyle", "--", "color", "r"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1419 %! hli = get (h, "children"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1420 %! assert (get (hli, "linewidth"), 2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1421 %! assert (get (hli, "linestyle"), "--"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1422 %! assert (get (hli, "color"), [1 0 0]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1423 %! assert (gca (), hax); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1424 %! unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1425 %! close (hf) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1426 %! end_unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1427 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1428 ## test textarrow properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1429 %!test |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1430 %! hf = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1431 %! unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1432 %! h = annotation ("textarrow", [0.2 0.7], [0.2 0.7], |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1433 %! "string", "Hello!", "fontsize", 20, |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1434 %! "textrotation", 90, "textcolor", "r"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1435 %! hte = findobj (h, "-depth", 1, "type", "text"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1436 %! assert (get (hte, "string"), "Hello!"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1437 %! assert (get (hte, "fontsize"), 20); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1438 %! assert (get (hte, "rotation"), 90); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1439 %! assert (get (hte, "color"), [1 0 0]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1440 %! unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1441 %! close (hf) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1442 %! end_unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1443 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1444 ## test textbox properties |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1445 %!test |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1446 %! hf = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1447 %! unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1448 %! h = annotation ("textbox", [0.2 0.2 0.7 0.3], "string", "Hello!", |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1449 %! "horizontalalignment", "left", |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1450 %! "verticalalignment", "bottom", |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1451 %! "backgroundcolor", "r"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1452 %! hte = findobj (h, "-depth", 1, "type", "text"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1453 %! hpa = findobj (h, "-depth", 1, "type", "patch"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1454 %! assert (get (hte, "string"), "Hello!"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1455 %! assert (get (hte, "verticalalignment"), "bottom"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1456 %! assert (get (hte, "horizontalalignment"), "left"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1457 %! assert (get (hpa, "facecolor"), [1 0 0]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1458 %! unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1459 %! close (hf) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1460 %! end_unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1461 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1462 ## test units conversion |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1463 %!test |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1464 %! hf = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1465 %! unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1466 %! h = annotation ("arrow", [0.1 0.2], [0.5 0.2]); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1467 %! set (h, "units", "inches"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1468 %! pos = get (h, "position"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1469 %! x = get (h, "x"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1470 %! y = get (h, "y"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1471 %! set (h, "units", "centimeters"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1472 %! assert (get (h, "position"), pos * 2.54, 20*eps); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1473 %! assert (get (h, "x"), x * 2.54, 20*eps); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1474 %! assert (get (h, "y"), y * 2.54, 20*eps); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1475 %! unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1476 %! close (hf) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1477 %! end_unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1478 |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1479 ## test annotated figure |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1480 %!test |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1481 %! hf1 = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1482 %! hf2 = figure ("visible", "off"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1483 %! unwind_protect |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1484 %! h = annotation (hf1, "doublearrow"); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1485 %! assert (ancestor (h, "figure"), hf1); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1486 %! assert (gcf (), hf2); |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1487 %! unwind_protect_cleanup |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1488 %! close (hf1) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1489 %! close (hf2) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1490 %! end_unwind_protect |
19867
9fc020886ae9
maint: Clean up m-files to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19854
diff
changeset
|
1491 |
19775
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1492 ## Test input validation |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1493 %!error <unknown annotation type foo> annotation ("foo") |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1494 %!error annotation ([], "foo") |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1495 %!error annotation ({}) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1496 %!error annotation ("line", [.5 .6]) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1497 %!error <expect 2 elements vectors for X and Y> annotation ("line", 1:3, 1:3) |
b8e4104a8f55
Add the annotation function (bug #43282)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
diff
changeset
|
1498 %!error <expect 4 elements vector for POS> annotation ("textbox", 1:3) |