Mercurial > octave
annotate libinterp/corefcn/graphics.in.h @ 30253:20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
* NEWS: Announce addition.
* gl-render.cc (make_marker_list): Add instructions for drawing '|' and '_' markers.
* graphics.cc (radio_values::radio_values): Add special case in constructor from
string of options to parse '|||' and return value '|'.
* graphics.in.h (line, patch, scatter, surface): Add '|' and '_' to marker
property for graphics objects which have this property.
* __pltopt__.m: Add '|' and '_' to list of possible markers in input validation.
* __gnuplot_draw_axes__.m: Add FIXME note about implementing these two markers
in gnuplot. There doesn't seem to be an easy way to do this as it is not one
of the defined point styles.
author | Rik <rik@octave.org> |
---|---|
date | Wed, 27 Oct 2021 15:07:52 -0700 |
parents | 14b098a6ba46 |
children | f306fe9bfa0d |
rev | line source |
---|---|
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
1 //////////////////////////////////////////////////////////////////////// |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
2 // |
29358
0a5b15007766
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
29014
diff
changeset
|
3 // Copyright (C) 2007-2021 The Octave Project Developers |
27923
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
4 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
5 // See the file COPYRIGHT.md in the top-level directory of this |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
6 // distribution or <https://octave.org/copyright/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
7 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
8 // This file is part of Octave. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
9 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
10 // Octave is free software: you can redistribute it and/or modify it |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
11 // under the terms of the GNU General Public License as published by |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
12 // the Free Software Foundation, either version 3 of the License, or |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
13 // (at your option) any later version. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
14 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
15 // Octave is distributed in the hope that it will be useful, but |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
16 // WITHOUT ANY WARRANTY; without even the implied warranty of |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
18 // GNU General Public License for more details. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
19 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
20 // You should have received a copy of the GNU General Public License |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
21 // along with Octave; see the file COPYING. If not, see |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
22 // <https://www.gnu.org/licenses/>. |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
23 // |
bd51beb6205e
update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents:
27919
diff
changeset
|
24 //////////////////////////////////////////////////////////////////////// |
6874 | 25 |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20785
diff
changeset
|
26 #if ! defined (octave_graphics_h) |
17822
ebb3ef964372
maint: Use common #define syntax "octave_filename_h" in h_files.
Rik <rik@octave.org>
parents:
17787
diff
changeset
|
27 #define octave_graphics_h 1 |
6874 | 28 |
21244
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21209
diff
changeset
|
29 #include "octave-config.h" |
1473547f50f5
include octave-config.h in public header files
John W. Eaton <jwe@octave.org>
parents:
21209
diff
changeset
|
30 |
6874 | 31 #include <cctype> |
23639 | 32 #include <cmath> |
6874 | 33 |
34 #include <algorithm> | |
35 #include <list> | |
36 #include <map> | |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
37 #include <memory> |
6874 | 38 #include <set> |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
39 #include <sstream> |
6874 | 40 #include <string> |
27798
8c1cb06468db
Change class of coplanar_last_idx for patch objects (bug #55895).
Markus Mützel <markus.muetzel@gmx.de>
parents:
27734
diff
changeset
|
41 #include <vector> |
6874 | 42 |
11075
4e31d44a9763
extract caseless_str class to separate header file
John W. Eaton <jwe@octave.org>
parents:
11074
diff
changeset
|
43 #include "caseless-str.h" |
9004
17ba311ef110
add one more missing include
Jaroslav Hajek <highegg@gmail.com>
parents:
8944
diff
changeset
|
44 |
21100
e39e05d90788
Switch gripe_XXX to either err_XXX or warn_XXX naming scheme.
Rik <rik@octave.org>
parents:
21055
diff
changeset
|
45 #include "errwarn.h" |
23774
41795b504a8b
don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents:
23763
diff
changeset
|
46 #include "graphics-handle.h" |
41795b504a8b
don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents:
23763
diff
changeset
|
47 #include "graphics-toolkit.h" |
6874 | 48 #include "oct-map.h" |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
49 #include "oct-mutex.h" |
13985
43cc49c7abd1
Use thread-safe atomic reference counting (GCC and MSVC).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13938
diff
changeset
|
50 #include "oct-refcount.h" |
6874 | 51 #include "ov.h" |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
52 #include "text-renderer.h" |
6874 | 53 |
29993
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
54 OCTAVE_NAMESPACE_BEGIN |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
55 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
56 // FIXME: maybe this should be a configure option? |
8944
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
57 // Matlab defaults to "Helvetica", but that causes problems for many |
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
58 // gnuplot users. |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20785
diff
changeset
|
59 #if ! defined (OCTAVE_DEFAULT_FONTNAME) |
8944
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
60 #define OCTAVE_DEFAULT_FONTNAME "*" |
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
61 #endif |
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
62 |
6874 | 63 // --------------------------------------------------------------------- |
64 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
65 class OCTINTERP_API base_scaler |
7427 | 66 { |
67 public: | |
68 base_scaler (void) { } | |
69 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
70 virtual ~base_scaler (void) = default; |
7440 | 71 |
20893
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
72 virtual Matrix scale (const Matrix&) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
73 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
74 error ("invalid axis scale"); |
20893
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
75 } |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
76 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
77 virtual NDArray scale (const NDArray&) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
78 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
79 error ("invalid axis scale"); |
20893
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
80 } |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
81 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
82 virtual double scale (double) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
83 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
84 error ("invalid axis scale"); |
20893
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
85 } |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
86 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
87 virtual double unscale (double) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
88 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
89 error ("invalid axis scale"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
90 } |
7427 | 91 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
92 virtual base_scaler * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
93 { return new base_scaler (); } |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
94 |
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
95 virtual bool is_linear (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
96 { return false; } |
7427 | 97 }; |
98 | |
99 class lin_scaler : public base_scaler | |
100 { | |
101 public: | |
102 lin_scaler (void) { } | |
103 | |
104 Matrix scale (const Matrix& m) const { return m; } | |
105 | |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
106 NDArray scale (const NDArray& m) const { return m; } |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
107 |
7427 | 108 double scale (double d) const { return d; } |
109 | |
110 double unscale (double d) const { return d; } | |
111 | |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
112 base_scaler * clone (void) const { return new lin_scaler (); } |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
113 |
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
114 bool is_linear (void) const { return true; } |
7427 | 115 }; |
116 | |
117 class log_scaler : public base_scaler | |
118 { | |
119 public: | |
120 log_scaler (void) { } | |
121 | |
122 Matrix scale (const Matrix& m) const | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
123 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
124 Matrix retval (m.rows (), m.cols ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
125 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
126 do_scale (m.data (), retval.fortran_vec (), m.numel ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
127 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
128 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
129 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
130 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
131 NDArray scale (const NDArray& m) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
132 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
133 NDArray retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
134 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
135 do_scale (m.data (), retval.fortran_vec (), m.numel ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
136 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
137 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
138 } |
7427 | 139 |
140 double scale (double d) const | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
141 { return log10 (d); } |
7427 | 142 |
143 double unscale (double d) const | |
23639 | 144 { return std::pow (10.0, d); } |
7427 | 145 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
146 base_scaler * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
147 { return new log_scaler (); } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
148 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
149 private: |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
150 void do_scale (const double *src, double *dest, int n) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
151 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
152 for (int i = 0; i < n; i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
153 dest[i] = log10 (src[i]); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
154 } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
155 }; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
156 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
157 class OCTINTERP_API neg_log_scaler : public base_scaler |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
158 { |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
159 public: |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
160 neg_log_scaler (void) { } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
161 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
162 Matrix scale (const Matrix& m) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
163 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
164 Matrix retval (m.rows (), m.cols ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
165 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
166 do_scale (m.data (), retval.fortran_vec (), m.numel ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
167 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
168 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
169 } |
13756
6dfebfa334cb
allow negative data log plots with OpenGL+FLTK graphics (bug #34232)
John W. Eaton <jwe@octave.org>
parents:
13722
diff
changeset
|
170 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
171 NDArray scale (const NDArray& m) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
172 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
173 NDArray retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
174 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
175 do_scale (m.data (), retval.fortran_vec (), m.numel ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
176 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
177 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
178 } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
179 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
180 double scale (double d) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
181 { return -log10 (-d); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
182 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
183 double unscale (double d) const |
23639 | 184 { return -std::pow (10.0, -d); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
185 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
186 base_scaler * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
187 { return new neg_log_scaler (); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
188 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
189 private: |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
190 void do_scale (const double *src, double *dest, int n) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
191 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
192 for (int i = 0; i < n; i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
193 dest[i] = -log10 (-src[i]); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
194 } |
7427 | 195 }; |
196 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
197 class OCTINTERP_API scaler |
7427 | 198 { |
199 public: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
200 scaler (void) : m_rep (new base_scaler ()) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
201 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
202 scaler (const scaler& s) : m_rep (s.m_rep->clone ()) { } |
7427 | 203 |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
204 scaler (const std::string& s) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
205 : m_rep (s == "log" |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
206 ? new log_scaler () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
207 : (s == "neglog" |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
208 ? new neg_log_scaler () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
209 : (s == "linear" |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
210 ? new lin_scaler () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
211 : new base_scaler ()))) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
212 { } |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
213 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
214 ~scaler (void) { delete m_rep; } |
7427 | 215 |
216 Matrix scale (const Matrix& m) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
217 { return m_rep->scale (m); } |
7427 | 218 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
219 NDArray scale (const NDArray& m) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
220 { return m_rep->scale (m); } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
221 |
7427 | 222 double scale (double d) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
223 { return m_rep->scale (d); } |
7427 | 224 |
225 double unscale (double d) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
226 { return m_rep->unscale (d); } |
7427 | 227 |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
228 bool is_linear (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
229 { return m_rep->is_linear (); } |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
230 |
7427 | 231 scaler& operator = (const scaler& s) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
232 { |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
233 if (&s != this) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
234 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
235 if (m_rep) |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
236 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
237 delete m_rep; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
238 m_rep = nullptr; |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
239 } |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
240 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
241 m_rep = s.m_rep->clone (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
242 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
243 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
244 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
245 } |
7427 | 246 |
247 scaler& operator = (const std::string& s) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
248 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
249 if (m_rep) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
250 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
251 delete m_rep; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
252 m_rep = nullptr; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
253 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
254 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
255 if (s == "log") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
256 m_rep = new log_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
257 else if (s == "neglog") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
258 m_rep = new neg_log_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
259 else if (s == "linear") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
260 m_rep = new lin_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
261 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
262 m_rep = new base_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
263 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
264 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
265 } |
7427 | 266 |
267 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
268 base_scaler *m_rep; |
7427 | 269 }; |
270 | |
271 // --------------------------------------------------------------------- | |
272 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
273 class OCTINTERP_API property; |
7363 | 274 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
275 // FIXME: These values should probably be defined inside a namespace or |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
276 // class, but which one is most appropriate? For now, prefix with |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
277 // "GCB_" to avoid conflict with PERSISTENT token ID used in the lexer. |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
278 // The lexer token IDs should probably also be fixed... |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
279 |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
280 enum listener_mode { GCB_POSTSET, GCB_PERSISTENT, GCB_PREDELETE }; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
281 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
282 class OCTINTERP_API base_property |
7363 | 283 { |
284 public: | |
285 friend class property; | |
286 | |
287 public: | |
12174 | 288 base_property (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
289 : m_id (-1), m_count (1), m_name (), m_parent (), m_hidden (), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
290 m_listeners () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
291 { } |
7363 | 292 |
293 base_property (const std::string& s, const graphics_handle& h) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
294 : m_id (-1), m_count (1), m_name (s), m_parent (h), m_hidden (false), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
295 m_listeners () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
296 { } |
7363 | 297 |
298 base_property (const base_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
299 : m_id (-1), m_count (1), m_name (p.m_name), m_parent (p.m_parent), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
300 m_hidden (p.m_hidden), m_listeners () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
301 { } |
7363 | 302 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
303 virtual ~base_property (void) = default; |
7363 | 304 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
305 bool ok (void) const { return m_parent.ok (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
306 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
307 std::string get_name (void) const { return m_name; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
308 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
309 void set_name (const std::string& s) { m_name = s; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
310 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
311 graphics_handle get_parent (void) const { return m_parent; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
312 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
313 void set_parent (const graphics_handle& h) { m_parent = h; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
314 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
315 bool is_hidden (void) const { return m_hidden; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
316 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
317 void set_hidden (bool flag) { m_hidden = flag; } |
7363 | 318 |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
319 virtual bool is_radio (void) const { return false; } |
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
320 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
321 int get_id (void) const { return m_id; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
322 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
323 void set_id (int d) { m_id = d; } |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
324 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
325 // Sets property value, notifies graphics toolkit. |
8058
ca39c21fa4b8
[mq]: generic_octave_to_backend_nofitication
John W. Eaton <jwe@octave.org>
parents:
8052
diff
changeset
|
326 // If do_run is true, runs associated listeners. |
13321
5ea207067ee5
Export base_property::set.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13307
diff
changeset
|
327 OCTINTERP_API bool set (const octave_value& v, bool do_run = true, |
5ea207067ee5
Export base_property::set.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13307
diff
changeset
|
328 bool do_notify_toolkit = true); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
329 |
7363 | 330 virtual octave_value get (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
331 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
332 error (R"(get: invalid property "%s")", m_name.c_str ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
333 } |
7363 | 334 |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
335 virtual std::string values_as_string (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
336 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
337 error (R"(values_as_string: invalid property "%s")", m_name.c_str ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
338 } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
339 |
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
340 virtual Cell values_as_cell (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
341 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
342 error (R"(values_as_cell: invalid property "%s")", m_name.c_str ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
343 } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
344 |
7363 | 345 base_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
346 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
347 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
348 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
349 } |
7363 | 350 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
351 void add_listener (const octave_value& v, listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
352 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
353 octave_value_list& l = m_listeners[mode]; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
354 l.resize (l.length () + 1, v); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
355 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
356 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
357 void delete_listener (const octave_value& v = octave_value (), |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
358 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
359 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
360 octave_value_list& l = m_listeners[mode]; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
361 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
362 if (v.is_defined ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
363 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
364 bool found = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
365 int i; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
366 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
367 for (i = 0; i < l.length (); i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
368 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
369 if (v.internal_rep () == l(i).internal_rep ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
370 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
371 found = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
372 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
373 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
374 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
375 if (found) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
376 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
377 for (int j = i; j < l.length () - 1; j++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
378 l(j) = l(j + 1); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
379 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
380 l.resize (l.length () - 1); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
381 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
382 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
383 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
384 { |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
385 if (mode == GCB_PERSISTENT) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
386 l.resize (0); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
387 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
388 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
389 octave_value_list lnew (0); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
390 octave_value_list& lp = m_listeners[GCB_PERSISTENT]; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
391 for (int i = l.length () - 1; i >= 0 ; i--) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
392 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
393 for (int j = 0; j < lp.length (); j++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
394 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
395 if (l(i).internal_rep () == lp(j).internal_rep ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
396 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
397 lnew.resize (lnew.length () + 1, l(i)); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
398 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
399 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
400 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
401 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
402 l = lnew; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
403 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
404 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
405 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
406 } |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
407 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
408 OCTINTERP_API void run_listeners (listener_mode mode = GCB_POSTSET); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
409 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
410 virtual base_property * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
411 { return new base_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
412 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
413 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
414 virtual bool do_set (const octave_value&) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
415 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
416 error (R"(set: invalid property "%s")", m_name.c_str ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
417 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
418 |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
419 private: |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
420 typedef std::map<listener_mode, octave_value_list> listener_map; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
421 typedef std::map<listener_mode, octave_value_list>::iterator |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
422 listener_map_iterator; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
423 typedef std::map<listener_mode, octave_value_list>::const_iterator |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
424 listener_map_const_iterator; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
425 |
7363 | 426 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
427 int m_id; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
428 octave::refcount<octave_idx_type> m_count; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
429 std::string m_name; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
430 graphics_handle m_parent; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
431 bool m_hidden; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
432 listener_map m_listeners; |
7363 | 433 }; |
434 | |
435 // --------------------------------------------------------------------- | |
436 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
437 class OCTINTERP_API string_property : public base_property |
7363 | 438 { |
439 public: | |
440 string_property (const std::string& s, const graphics_handle& h, | |
441 const std::string& val = "") | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
442 : base_property (s, h), m_str (val) { } |
7363 | 443 |
444 string_property (const string_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
445 : base_property (p), m_str (p.m_str) { } |
7363 | 446 |
447 octave_value get (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
448 { return octave_value (m_str); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
449 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
450 std::string string_value (void) const { return m_str; } |
7363 | 451 |
452 string_property& operator = (const octave_value& val) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
453 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
454 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
455 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
456 } |
7363 | 457 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
458 base_property * clone (void) const { return new string_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
459 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
460 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
461 bool do_set (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
462 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
463 if (! val.is_string ()) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
464 error (R"(set: invalid string property value for "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
465 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
466 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
467 std::string new_str = val.string_value (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
468 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
469 if (new_str != m_str) |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
470 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
471 m_str = new_str; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
472 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
473 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
474 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
475 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
476 |
7363 | 477 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
478 std::string m_str; |
7363 | 479 }; |
480 | |
481 // --------------------------------------------------------------------- | |
482 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
483 class OCTINTERP_API string_array_property : public base_property |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
484 { |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
485 public: |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
486 enum desired_enum { string_t, cell_t }; |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
487 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
488 string_array_property (const std::string& s, const graphics_handle& h, |
16890
830f27544bb7
Accept char array inputs for linestyleorder property (bug #34906).
Rik <rik@octave.org>
parents:
16832
diff
changeset
|
489 const std::string& val = "", const char& sep = '|', |
830f27544bb7
Accept char array inputs for linestyleorder property (bug #34906).
Rik <rik@octave.org>
parents:
16832
diff
changeset
|
490 const desired_enum& typ = string_t) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
491 : base_property (s, h), m_desired_type (typ), m_separator (sep), m_str () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
492 { |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
493 std::size_t pos = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
494 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
495 while (true) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
496 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
497 std::size_t new_pos = val.find_first_of (m_separator, pos); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
498 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
499 if (new_pos == std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
500 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
501 m_str.append (val.substr (pos)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
502 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
503 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
504 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
505 m_str.append (val.substr (pos, new_pos - pos)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
506 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
507 pos = new_pos + 1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
508 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
509 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
510 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
511 string_array_property (const std::string& s, const graphics_handle& h, |
16890
830f27544bb7
Accept char array inputs for linestyleorder property (bug #34906).
Rik <rik@octave.org>
parents:
16832
diff
changeset
|
512 const Cell& c, const char& sep = '|', |
830f27544bb7
Accept char array inputs for linestyleorder property (bug #34906).
Rik <rik@octave.org>
parents:
16832
diff
changeset
|
513 const desired_enum& typ = string_t) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
514 : base_property (s, h), m_desired_type (typ), m_separator (sep), m_str () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
515 { |
23575
e95738a119da
maint: Deprecate is_cellstr and replace with iscellstr.
Rik <rik@octave.org>
parents:
23564
diff
changeset
|
516 if (! c.iscellstr ()) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
517 error (R"(set: invalid order property value for "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
518 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
519 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
520 string_vector strings (c.numel ()); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
521 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
522 for (octave_idx_type i = 0; i < c.numel (); i++) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
523 strings[i] = c(i).string_value (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
524 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
525 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
526 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
527 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
528 string_array_property (const string_array_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
529 : base_property (p), m_desired_type (p.m_desired_type), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
530 m_separator (p.m_separator), m_str (p.m_str) { } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
531 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
532 octave_value get (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
533 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
534 if (m_desired_type == string_t) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
535 return octave_value (string_value ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
536 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
537 return octave_value (cell_value ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
538 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
539 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
540 std::string string_value (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
541 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
542 std::string s; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
543 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
544 for (octave_idx_type i = 0; i < m_str.numel (); i++) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
545 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
546 s += m_str[i]; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
547 if (i != m_str.numel () - 1) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
548 s += m_separator; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
549 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
550 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
551 return s; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
552 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
553 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
554 Cell cell_value (void) const {return Cell (m_str);} |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
555 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
556 string_vector string_vector_value (void) const { return m_str; } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
557 |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
558 string_array_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
559 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
560 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
561 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
562 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
563 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
564 base_property * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
565 { return new string_array_property (*this); } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
566 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
567 protected: |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
568 bool do_set (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
569 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
570 if (val.is_string () && val.rows () == 1) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
571 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
572 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
573 std::string new_str = val.string_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
574 string_vector strings; |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
575 std::size_t pos = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
576 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
577 // Split single string on delimiter (usually '|') |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
578 while (pos != std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
579 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
580 std::size_t new_pos = new_str.find_first_of (m_separator, pos); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
581 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
582 if (new_pos == std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
583 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
584 strings.append (new_str.substr (pos)); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
585 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
586 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
587 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
588 strings.append (new_str.substr (pos, new_pos - pos)); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
589 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
590 pos = new_pos + 1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
591 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
592 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
593 if (m_str.numel () == strings.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
594 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
595 for (octave_idx_type i = 0; i < m_str.numel (); i++) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
596 if (strings[i] != m_str[i]) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
597 { |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
598 replace = true; |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
599 break; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
600 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
601 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
602 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
603 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
604 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
605 m_desired_type = string_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
606 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
607 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
608 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
609 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
610 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
611 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
612 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
613 else if (val.is_string ()) // multi-row character matrix |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
614 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
615 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
616 charMatrix chm = val.char_matrix_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
617 octave_idx_type nel = chm.rows (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
618 string_vector strings (nel); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
619 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
620 if (nel != m_str.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
621 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
622 for (octave_idx_type i = 0; i < nel; i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
623 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
624 strings[i] = chm.row_as_string (i); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
625 if (! replace && strings[i] != m_str[i]) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
626 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
627 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
628 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
629 m_desired_type = string_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
630 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
631 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
632 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
633 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
634 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
635 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
636 } |
23575
e95738a119da
maint: Deprecate is_cellstr and replace with iscellstr.
Rik <rik@octave.org>
parents:
23564
diff
changeset
|
637 else if (val.iscellstr ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
638 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
639 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
640 Cell new_cell = val.cell_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
641 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
642 string_vector strings = new_cell.cellstr_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
643 |
20232
a9574e3c6e9e
Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents:
20181
diff
changeset
|
644 octave_idx_type nel = strings.numel (); |
a9574e3c6e9e
Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents:
20181
diff
changeset
|
645 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
646 if (nel != m_str.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
647 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
648 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
649 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
650 for (octave_idx_type i = 0; i < nel; i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
651 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
652 if (strings[i] != m_str[i]) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
653 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
654 replace = true; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
655 break; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
656 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
657 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
658 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
659 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
660 m_desired_type = cell_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
661 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
662 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
663 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
664 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
665 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
666 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
667 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
668 else |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
669 error (R"(set: invalid string property value for "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
670 get_name ().c_str ()); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
671 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
672 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
673 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
674 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
675 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
676 desired_enum m_desired_type; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
677 char m_separator; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
678 string_vector m_str; |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
679 }; |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
680 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
681 // --------------------------------------------------------------------- |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
682 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
683 class OCTINTERP_API text_label_property : public base_property |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
684 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
685 public: |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
686 enum type { char_t, cellstr_t }; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
687 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
688 text_label_property (const std::string& s, const graphics_handle& h, |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
689 const std::string& val = "") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
690 : base_property (s, h), m_value (val), m_stored_type (char_t) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
691 { } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
692 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
693 text_label_property (const std::string& s, const graphics_handle& h, |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
694 const NDArray& nda) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
695 : base_property (s, h), m_stored_type (char_t) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
696 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
697 octave_idx_type nel = nda.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
698 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
699 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
700 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
701 for (octave_idx_type i = 0; i < nel; i++) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
702 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
703 std::ostringstream buf; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
704 buf << nda(i); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
705 m_value[i] = buf.str (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
706 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
707 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
708 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
709 text_label_property (const std::string& s, const graphics_handle& h, |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
710 const Cell& c) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
711 : base_property (s, h), m_stored_type (cellstr_t) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
712 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
713 octave_idx_type nel = c.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
714 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
715 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
716 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
717 for (octave_idx_type i = 0; i < nel; i++) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
718 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
719 octave_value tmp = c(i); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
720 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
721 if (tmp.is_string ()) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
722 m_value[i] = c(i).string_value (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
723 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
724 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
725 double d = c(i).double_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
726 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
727 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
728 buf << d; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
729 m_value[i] = buf.str (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
730 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
731 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
732 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
733 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
734 text_label_property (const text_label_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
735 : base_property (p), m_value (p.m_value), m_stored_type (p.m_stored_type) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
736 { } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
737 |
12965
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
738 bool empty (void) const |
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
739 { |
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
740 octave_value tmp = get (); |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
741 return tmp.isempty (); |
12965
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
742 } |
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
743 |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
744 octave_value get (void) const |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
745 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
746 if (m_stored_type == char_t) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
747 return octave_value (char_value ()); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
748 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
749 return octave_value (cell_value ()); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
750 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
751 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
752 std::string string_value (void) const |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
753 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
754 return m_value.empty () ? "" : m_value[0]; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
755 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
756 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
757 string_vector string_vector_value (void) const { return m_value; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
758 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
759 charMatrix char_value (void) const { return charMatrix (m_value, ' '); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
760 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
761 Cell cell_value (void) const {return Cell (m_value); } |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
762 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
763 text_label_property& operator = (const octave_value& val) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
764 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
765 set (val); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
766 return *this; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
767 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
768 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
769 base_property * clone (void) const { return new text_label_property (*this); } |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
770 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
771 protected: |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
772 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
773 bool do_set (const octave_value& val) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
774 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
775 if (val.is_string ()) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
776 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
777 m_value = val.string_vector_value (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
778 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
779 m_stored_type = char_t; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
780 } |
23576
00e518162fda
maint: Deprecate is_cell and replace with iscell.
Rik <rik@octave.org>
parents:
23575
diff
changeset
|
781 else if (val.iscell ()) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
782 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
783 Cell c = val.cell_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
784 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
785 octave_idx_type nel = c.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
786 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
787 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
788 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
789 for (octave_idx_type i = 0; i < nel; i++) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
790 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
791 octave_value tmp = c(i); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
792 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
793 if (tmp.is_string ()) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
794 m_value[i] = c(i).string_value (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
795 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
796 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
797 double d = c(i).double_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
798 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
799 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
800 buf << d; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
801 m_value[i] = buf.str (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
802 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
803 } |
12965
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
804 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
805 m_stored_type = cellstr_t; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
806 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
807 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
808 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
809 NDArray nda; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
810 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
811 try |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
812 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
813 nda = val.array_value (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
814 } |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
815 catch (octave::execution_exception& ee) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
816 { |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
817 error (ee, R"(set: invalid string property value for "%s")", |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
818 get_name ().c_str ()); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
819 } |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
820 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
821 octave_idx_type nel = nda.numel (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
822 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
823 m_value.resize (nel); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
824 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
825 for (octave_idx_type i = 0; i < nel; i++) |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
826 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
827 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
828 buf << nda(i); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
829 m_value[i] = buf.str (); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
830 } |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
831 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
832 m_stored_type = char_t; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
833 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
834 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
835 return true; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
836 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
837 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
838 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
839 string_vector m_value; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
840 type m_stored_type; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
841 }; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
842 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
843 // --------------------------------------------------------------------- |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
844 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
845 class OCTINTERP_API radio_values |
7363 | 846 { |
847 public: | |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20990
diff
changeset
|
848 OCTINTERP_API radio_values (const std::string& opt_string = ""); |
7363 | 849 |
850 radio_values (const radio_values& a) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
851 : m_default_val (a.m_default_val), m_possible_vals (a.m_possible_vals) { } |
7363 | 852 |
853 radio_values& operator = (const radio_values& a) | |
854 { | |
855 if (&a != this) | |
856 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
857 m_default_val = a.m_default_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
858 m_possible_vals = a.m_possible_vals; |
7363 | 859 } |
860 | |
861 return *this; | |
862 } | |
863 | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
864 std::string default_value (void) const { return m_default_val; } |
7363 | 865 |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
866 bool validate (const std::string& val, std::string& match) |
7363 | 867 { |
868 bool retval = true; | |
869 | |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
870 if (! contains (val, match)) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
871 error ("invalid value = %s", val.c_str ()); |
7363 | 872 |
873 return retval; | |
874 } | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
875 |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
876 bool contains (const std::string& val, std::string& match) |
7363 | 877 { |
29654
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
878 std::size_t k = 0; |
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
879 |
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
880 std::size_t len = val.length (); |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
881 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
882 std::string first_match; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
883 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
884 for (const auto& possible_val : m_possible_vals) |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
885 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
886 if (possible_val.compare (val, len)) |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
887 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
888 if (len == possible_val.length ()) |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
889 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
890 // We found a full match (consider the case of val == "replace" |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
891 // with possible values "replace" and "replacechildren"). Any |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
892 // other matches are irrelevant, so set match and return now. |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
893 match = possible_val; |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
894 return true; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
895 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
896 else |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
897 { |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
898 if (k == 0) |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
899 first_match = possible_val; |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
900 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
901 k++; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
902 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
903 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
904 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
905 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
906 if (k == 1) |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
907 { |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
908 match = first_match; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
909 return true; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
910 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
911 else |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
912 return false; |
7363 | 913 } |
914 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
915 OCTINTERP_API std::string values_as_string (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
916 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
917 OCTINTERP_API Cell values_as_cell (void) const; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
918 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
919 octave_idx_type nelem (void) const { return m_possible_vals.size (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
920 |
7363 | 921 private: |
922 // Might also want to cache | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
923 std::string m_default_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
924 std::set<caseless_str> m_possible_vals; |
7363 | 925 }; |
926 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
927 class OCTINTERP_API radio_property : public base_property |
7363 | 928 { |
929 public: | |
7364 | 930 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 931 const radio_values& v = radio_values ()) |
7364 | 932 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
933 m_vals (v), m_current_val (v.default_value ()) { } |
7363 | 934 |
7364 | 935 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 936 const std::string& v) |
7364 | 937 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
938 m_vals (v), m_current_val (m_vals.default_value ()) { } |
7363 | 939 |
7364 | 940 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 941 const radio_values& v, const std::string& def) |
7364 | 942 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
943 m_vals (v), m_current_val (def) { } |
7363 | 944 |
945 radio_property (const radio_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
946 : base_property (p), m_vals (p.m_vals), m_current_val (p.m_current_val) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
947 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
948 octave_value get (void) const { return octave_value (m_current_val); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
949 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
950 const std::string& current_value (void) const { return m_current_val; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
951 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
952 std::string values_as_string (void) const { return m_vals.values_as_string (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
953 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
954 Cell values_as_cell (void) const { return m_vals.values_as_cell (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
955 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
956 bool is (const caseless_str& v) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
957 { return v.compare (m_current_val); } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
958 |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
959 bool is_radio (void) const { return true; } |
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
960 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
961 radio_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
962 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
963 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
964 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
965 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
966 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
967 base_property * clone (void) const { return new radio_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
968 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
969 protected: |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
970 bool do_set (const octave_value& newval) |
7363 | 971 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
972 if (! newval.is_string ()) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
973 error (R"(set: invalid value for radio property "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
974 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
975 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
976 std::string s = newval.string_value (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
977 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
978 std::string match; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
979 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
980 if (! m_vals.validate (s, match)) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
981 error (R"(set: invalid value for radio property "%s" (value = %s))", |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
982 get_name ().c_str (), s.c_str ()); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
983 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
984 if (match != m_current_val) |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
985 { |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
986 if (s.length () != match.length ()) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
987 warning_with_id ("Octave:abbreviated-property-match", |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
988 "%s: allowing %s to match %s value %s", |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
989 "set", s.c_str (), get_name ().c_str (), |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
990 match.c_str ()); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
991 m_current_val = match; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
992 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
993 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
994 return false; |
7363 | 995 } |
996 | |
997 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
998 radio_values m_vals; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
999 std::string m_current_val; |
7363 | 1000 }; |
1001 | |
1002 // --------------------------------------------------------------------- | |
1003 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1004 class OCTINTERP_API color_values |
7363 | 1005 { |
1006 public: | |
1007 color_values (double r = 0, double g = 0, double b = 1) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1008 : m_rgb (1, 3) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1009 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1010 m_rgb(0) = r; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1011 m_rgb(1) = g; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1012 m_rgb(2) = b; |
7363 | 1013 |
1014 validate (); | |
1015 } | |
1016 | |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1017 color_values (const std::string& str) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1018 : m_rgb (1, 3) |
7363 | 1019 { |
1020 if (! str2rgb (str)) | |
1021 error ("invalid color specification: %s", str.c_str ()); | |
1022 } | |
1023 | |
1024 color_values (const color_values& c) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1025 : m_rgb (c.m_rgb) |
7363 | 1026 { } |
1027 | |
1028 color_values& operator = (const color_values& c) | |
1029 { | |
1030 if (&c != this) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1031 m_rgb = c.m_rgb; |
7363 | 1032 |
1033 return *this; | |
1034 } | |
1035 | |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1036 bool operator == (const color_values& c) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1037 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1038 return (m_rgb(0) == c.m_rgb(0) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1039 && m_rgb(1) == c.m_rgb(1) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1040 && m_rgb(2) == c.m_rgb(2)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1041 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1042 |
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1043 bool operator != (const color_values& c) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1044 { return ! (*this == c); } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1045 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1046 Matrix rgb (void) const { return m_rgb; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1047 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1048 operator octave_value (void) const { return m_rgb; } |
7363 | 1049 |
1050 void validate (void) const | |
1051 { | |
1052 for (int i = 0; i < 3; i++) | |
1053 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1054 if (m_rgb(i) < 0 || m_rgb(i) > 1) |
20730
948f45a2931e
don't check error_state after creating color object
John W. Eaton <jwe@octave.org>
parents:
20726
diff
changeset
|
1055 error ("invalid RGB color specification"); |
7363 | 1056 } |
1057 } | |
1058 | |
1059 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1060 Matrix m_rgb; |
7363 | 1061 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1062 OCTINTERP_API bool str2rgb (const std::string& str); |
7363 | 1063 }; |
1064 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1065 class OCTINTERP_API color_property : public base_property |
7363 | 1066 { |
1067 public: | |
1068 color_property (const color_values& c, const radio_values& v) | |
1069 : base_property ("", graphics_handle ()), | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1070 m_current_type (color_t), m_color_val (c), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1071 m_current_val (v.default_value ()) |
7363 | 1072 { } |
1073 | |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1074 color_property (const radio_values& v, const color_values& c) |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1075 : base_property ("", graphics_handle ()), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1076 m_current_type (radio_t), m_color_val (c), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1077 m_current_val (v.default_value ()) |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1078 { } |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1079 |
7364 | 1080 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1081 const color_values& c = color_values (), |
1082 const radio_values& v = radio_values ()) | |
7364 | 1083 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1084 m_current_type (color_t), m_color_val (c), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1085 m_current_val (v.default_value ()) |
7363 | 1086 { } |
1087 | |
7364 | 1088 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1089 const radio_values& v) |
7364 | 1090 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1091 m_current_type (radio_t), m_color_val (color_values ()), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1092 m_current_val (v.default_value ()) |
7363 | 1093 { } |
1094 | |
7364 | 1095 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1096 const std::string& v) |
7364 | 1097 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1098 m_current_type (radio_t), m_color_val (color_values ()), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1099 m_current_val (m_radio_val.default_value ()) |
7363 | 1100 { } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1101 |
7364 | 1102 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1103 const color_property& v) |
7364 | 1104 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1105 m_current_type (v.m_current_type), m_color_val (v.m_color_val), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1106 m_radio_val (v.m_radio_val), m_current_val (v.m_current_val) |
7363 | 1107 { } |
1108 | |
1109 color_property (const color_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1110 : base_property (p), m_current_type (p.m_current_type), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1111 m_color_val (p.m_color_val), m_radio_val (p.m_radio_val), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1112 m_current_val (p.m_current_val) { } |
7363 | 1113 |
1114 octave_value get (void) const | |
1115 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1116 if (m_current_type == color_t) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1117 return m_color_val.rgb (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1118 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1119 return m_current_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1120 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1121 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1122 bool is_rgb (void) const { return (m_current_type == color_t); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1123 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1124 bool is_radio (void) const { return (m_current_type == radio_t); } |
7363 | 1125 |
1126 bool is (const std::string& v) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1127 { return (is_radio () && m_current_val == v); } |
7363 | 1128 |
1129 Matrix rgb (void) const | |
1130 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1131 if (m_current_type != color_t) |
20726
25d676f9619c
Preface error() messages with name of function when possible.
Rik <rik@octave.org>
parents:
20711
diff
changeset
|
1132 error ("color has no RGB value"); |
7363 | 1133 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1134 return m_color_val.rgb (); |
7363 | 1135 } |
1136 | |
1137 const std::string& current_value (void) const | |
1138 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1139 if (m_current_type != radio_t) |
7363 | 1140 error ("color has no radio value"); |
1141 | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1142 return m_current_val; |
7363 | 1143 } |
1144 | |
1145 color_property& operator = (const octave_value& val) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1146 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1147 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1148 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1149 } |
7363 | 1150 |
1151 operator octave_value (void) const { return get (); } | |
1152 | |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1153 base_property * clone (void) const { return new color_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1154 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1155 std::string values_as_string (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1156 { return m_radio_val.values_as_string (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1157 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1158 Cell values_as_cell (void) const { return m_radio_val.values_as_cell (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1159 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1160 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1161 OCTINTERP_API bool do_set (const octave_value& newval); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1162 |
7363 | 1163 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1164 enum current_enum { color_t, radio_t } m_current_type; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1165 color_values m_color_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1166 radio_values m_radio_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1167 std::string m_current_val; |
7363 | 1168 }; |
1169 | |
1170 // --------------------------------------------------------------------- | |
1171 | |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1172 enum finite_type |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1173 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1174 NO_CHECK, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1175 FINITE, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1176 NOT_NAN, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1177 NOT_INF |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1178 }; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1179 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1180 class OCTINTERP_API double_property : public base_property |
7363 | 1181 { |
1182 public: | |
7364 | 1183 double_property (const std::string& nm, const graphics_handle& h, |
7363 | 1184 double d = 0) |
7364 | 1185 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1186 m_current_val (d), m_finite_constraint (NO_CHECK), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1187 m_minval (std::pair<double, bool> (octave_NaN, true)), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1188 m_maxval (std::pair<double, bool> (octave_NaN, true)) { } |
7363 | 1189 |
1190 double_property (const double_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1191 : base_property (p), m_current_val (p.m_current_val), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1192 m_finite_constraint (NO_CHECK), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1193 m_minval (std::pair<double, bool> (octave_NaN, true)), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1194 m_maxval (std::pair<double, bool> (octave_NaN, true)) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1195 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1196 octave_value get (void) const { return octave_value (m_current_val); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1197 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1198 double double_value (void) const { return m_current_val; } |
7363 | 1199 |
1200 double_property& operator = (const octave_value& val) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1201 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1202 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1203 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1204 } |
7363 | 1205 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1206 base_property * clone (void) const |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1207 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1208 double_property *p = new double_property (*this); |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1209 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1210 p->m_finite_constraint = m_finite_constraint; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1211 p->m_minval = m_minval; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1212 p->m_maxval = m_maxval; |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1213 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1214 return p; |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1215 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1216 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1217 void add_constraint (const std::string& type, double val, bool inclusive) |
22910
23847979b91e
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
1218 { |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1219 if (type == "min") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1220 m_minval = std::pair<double, bool> (val, inclusive); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1221 else if (type == "max") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1222 m_maxval = std::pair<double, bool> (val, inclusive); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1223 } |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1224 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1225 void add_constraint (const finite_type finite) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1226 { m_finite_constraint = finite; } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1227 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1228 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1229 bool do_set (const octave_value& v) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1230 { |
23582
0cc2011d800e
maint: Deprecate is_real_type and replace with isreal.
Rik <rik@octave.org>
parents:
23577
diff
changeset
|
1231 if (! v.is_scalar_type () || ! v.isreal ()) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1232 error (R"(set: invalid value for double property "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1233 get_name ().c_str ()); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1234 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1235 double new_val = v.double_value (); |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1236 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1237 // Check min and max |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1238 if (! octave::math::isnan (m_minval.first)) |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1239 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1240 if (m_minval.second && m_minval.first > new_val) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1241 error (R"(set: "%s" must be greater than or equal to %g)", |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1242 get_name ().c_str (), m_minval.first); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1243 else if (! m_minval.second && m_minval.first >= new_val) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1244 error (R"(set: "%s" must be greater than %g)", |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1245 get_name ().c_str (), m_minval.first); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1246 } |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1247 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1248 if (! octave::math::isnan (m_maxval.first)) |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1249 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1250 if (m_maxval.second && m_maxval.first < new_val) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1251 error (R"(set: "%s" must be less than or equal to %g)", |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1252 get_name ().c_str (), m_maxval.first); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1253 else if (! m_maxval.second && m_maxval.first <= new_val) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1254 error (R"(set: "%s" must be less than %g)", |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1255 get_name ().c_str (), m_maxval.first); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1256 } |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1257 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1258 if (m_finite_constraint == NO_CHECK) { /* do nothing */ } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1259 else if (m_finite_constraint == FINITE) |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1260 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1261 if (! octave::math::isfinite (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1262 error (R"(set: "%s" must be finite)", get_name ().c_str ()); |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1263 } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1264 else if (m_finite_constraint == NOT_NAN) |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1265 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1266 if (octave::math::isnan (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1267 error (R"(set: "%s" must not be nan)", get_name ().c_str ()); |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1268 } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1269 else if (m_finite_constraint == NOT_INF) |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1270 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1271 if (octave::math::isinf (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1272 error (R"(set: "%s" must not be infinite)", get_name ().c_str ()); |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1273 } |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1274 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1275 if (new_val != m_current_val) |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1276 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1277 m_current_val = new_val; |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1278 return true; |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1279 } |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1280 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1281 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1282 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1283 |
7363 | 1284 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1285 double m_current_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1286 finite_type m_finite_constraint; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1287 std::pair<double, bool> m_minval, m_maxval; |
7363 | 1288 }; |
1289 | |
1290 // --------------------------------------------------------------------- | |
1291 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1292 class OCTINTERP_API double_radio_property : public base_property |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1293 { |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1294 public: |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1295 double_radio_property (double d, const radio_values& v) |
17652
57750dc54ab6
maint: Correct indentation in graphics.cc, graphics.in.h. No code changes.
Rik <rik@octave.org>
parents:
17646
diff
changeset
|
1296 : base_property ("", graphics_handle ()), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1297 m_current_type (double_t), m_dval (d), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1298 m_current_val (v.default_value ()) |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1299 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1300 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1301 double_radio_property (const std::string& nm, const graphics_handle& h, |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
1302 const std::string& v) |
17652
57750dc54ab6
maint: Correct indentation in graphics.cc, graphics.in.h. No code changes.
Rik <rik@octave.org>
parents:
17646
diff
changeset
|
1303 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1304 m_current_type (radio_t), m_dval (0), m_radio_val (v), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1305 m_current_val (m_radio_val.default_value ()) |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1306 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1307 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1308 double_radio_property (const std::string& nm, const graphics_handle& h, |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
1309 const double_radio_property& v) |
17652
57750dc54ab6
maint: Correct indentation in graphics.cc, graphics.in.h. No code changes.
Rik <rik@octave.org>
parents:
17646
diff
changeset
|
1310 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1311 m_current_type (v.m_current_type), m_dval (v.m_dval), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1312 m_radio_val (v.m_radio_val), m_current_val (v.m_current_val) |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1313 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1314 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1315 double_radio_property (const double_radio_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1316 : base_property (p), m_current_type (p.m_current_type), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1317 m_dval (p.m_dval), m_radio_val (p.m_radio_val), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1318 m_current_val (p.m_current_val) { } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1319 |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1320 octave_value get (void) const |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1321 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1322 if (m_current_type == double_t) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1323 return m_dval; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1324 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1325 return m_current_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1326 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1327 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1328 bool is_double (void) const { return (m_current_type == double_t); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1329 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1330 bool is_radio (void) const { return (m_current_type == radio_t); } |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1331 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1332 bool is (const std::string& v) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1333 { return (is_radio () && m_current_val == v); } |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1334 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1335 double double_value (void) const |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1336 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1337 if (m_current_type != double_t) |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1338 error ("%s: property has no double", get_name ().c_str ()); |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1339 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1340 return m_dval; |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1341 } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1342 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1343 const std::string& current_value (void) const |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1344 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1345 if (m_current_type != radio_t) |
26107
05dfcb24ef12
Supply missing arguments to variable length *printf functions (bug #55046).
Rik <rik@octave.org>
parents:
26055
diff
changeset
|
1346 error ("%s: property has no radio value", get_name ().c_str ()); |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1347 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1348 return m_current_val; |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1349 } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1350 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1351 double_radio_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1352 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1353 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1354 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1355 } |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1356 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1357 operator octave_value (void) const { return get (); } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1358 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1359 base_property * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1360 { return new double_radio_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1361 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1362 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1363 OCTINTERP_API bool do_set (const octave_value& v); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1364 |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1365 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1366 enum current_enum { double_t, radio_t } m_current_type; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1367 double m_dval; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1368 radio_values m_radio_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1369 std::string m_current_val; |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1370 }; |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1371 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1372 // --------------------------------------------------------------------- |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1373 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1374 class OCTINTERP_API array_property : public base_property |
7363 | 1375 { |
1376 public: | |
7836
4fb2db9c87dd
Turn cdata properties into array_property. Add min/max computation to array_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7835
diff
changeset
|
1377 array_property (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1378 : base_property ("", graphics_handle ()), m_data (Matrix ()), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1379 m_min_val (), m_max_val (), m_min_pos (), m_max_neg (), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1380 m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1381 m_minval (std::pair<double, bool> (octave_NaN, true)), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1382 m_maxval (std::pair<double, bool> (octave_NaN, true)) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1383 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1384 get_data_limits (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1385 } |
7836
4fb2db9c87dd
Turn cdata properties into array_property. Add min/max computation to array_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7835
diff
changeset
|
1386 |
7364 | 1387 array_property (const std::string& nm, const graphics_handle& h, |
7363 | 1388 const octave_value& m) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1389 : base_property (nm, h), m_data (m.issparse () ? m.full_value () : m), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1390 m_min_val (), m_max_val (), m_min_pos (), m_max_neg (), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1391 m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1392 m_minval (std::pair<double, bool> (octave_NaN, true)), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1393 m_maxval (std::pair<double, bool> (octave_NaN, true)) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1394 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1395 get_data_limits (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1396 } |
7363 | 1397 |
7848
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1398 // This copy constructor is only intended to be used |
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1399 // internally to access min/max values; no need to |
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1400 // copy constraints. |
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1401 array_property (const array_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1402 : base_property (p), m_data (p.m_data), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1403 m_min_val (p.m_min_val), m_max_val (p.m_max_val), m_min_pos (p.m_min_pos), m_max_neg (p.m_max_neg), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1404 m_type_constraints (), m_size_constraints (), m_finite_constraint (NO_CHECK), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1405 m_minval (std::pair<double, bool> (octave_NaN, true)), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1406 m_maxval (std::pair<double, bool> (octave_NaN, true)) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1407 { } |
7848
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1408 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1409 octave_value get (void) const { return m_data; } |
7363 | 1410 |
1411 void add_constraint (const std::string& type) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1412 { m_type_constraints.insert (type); } |
7363 | 1413 |
7524
a653856aa3e1
array_value::add_constraint: pass dim_vector as const reference, not value
John W. Eaton <jwe@octave.org>
parents:
7523
diff
changeset
|
1414 void add_constraint (const dim_vector& dims) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1415 { m_size_constraints.push_back (dims); } |
7363 | 1416 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1417 void add_constraint (const finite_type finite) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1418 { m_finite_constraint = finite; } |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1419 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1420 void add_constraint (const std::string& type, double val, bool inclusive) |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1421 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1422 if (type == "min") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1423 m_minval = std::pair<double, bool> (val, inclusive); |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1424 else if (type == "max") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1425 m_maxval = std::pair<double, bool> (val, inclusive); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1426 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1427 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1428 double min_val (void) const { return m_min_val; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1429 double max_val (void) const { return m_max_val; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1430 double min_pos (void) const { return m_min_pos; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1431 double max_neg (void) const { return m_max_neg; } |
7836
4fb2db9c87dd
Turn cdata properties into array_property. Add min/max computation to array_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7835
diff
changeset
|
1432 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
1433 Matrix get_limits (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1434 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1435 Matrix m (1, 4); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1436 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1437 m(0) = min_val (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1438 m(1) = max_val (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1439 m(2) = min_pos (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1440 m(3) = max_neg (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1441 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1442 return m; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1443 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
1444 |
7363 | 1445 array_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1446 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1447 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1448 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1449 } |
7363 | 1450 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1451 base_property * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1452 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1453 array_property *p = new array_property (*this); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1454 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1455 p->m_type_constraints = m_type_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1456 p->m_size_constraints = m_size_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1457 p->m_finite_constraint = m_finite_constraint; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1458 p->m_minval = m_minval; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1459 p->m_maxval = m_maxval; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1460 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1461 return p; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1462 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1463 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1464 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1465 bool do_set (const octave_value& v) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1466 { |
23583
b7747a2c88b2
maint: Deprecate is_sparse_type and replace with issparse.
Rik <rik@octave.org>
parents:
23582
diff
changeset
|
1467 octave_value tmp = (v.issparse () ? v.full_value () : v); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1468 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1469 if (! validate (tmp)) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1470 error (R"(invalid value for array property "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1471 get_name ().c_str ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1472 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1473 // FIXME: should we check for actual data change? |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1474 if (! is_equal (tmp)) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1475 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1476 m_data = tmp; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1477 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1478 get_data_limits (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1479 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1480 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1481 } |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1482 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1483 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1484 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1485 |
7363 | 1486 private: |
1487 OCTINTERP_API bool validate (const octave_value& v); | |
1488 | |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1489 OCTINTERP_API bool is_equal (const octave_value& v) const; |
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1490 |
7836
4fb2db9c87dd
Turn cdata properties into array_property. Add min/max computation to array_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7835
diff
changeset
|
1491 OCTINTERP_API void get_data_limits (void); |
4fb2db9c87dd
Turn cdata properties into array_property. Add min/max computation to array_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7835
diff
changeset
|
1492 |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1493 protected: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1494 octave_value m_data; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1495 double m_min_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1496 double m_max_val; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1497 double m_min_pos; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1498 double m_max_neg; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1499 std::set<std::string> m_type_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1500 std::list<dim_vector> m_size_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1501 finite_type m_finite_constraint; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1502 std::pair<double, bool> m_minval, m_maxval; |
7363 | 1503 }; |
1504 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1505 class OCTINTERP_API row_vector_property : public array_property |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1506 { |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1507 public: |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1508 row_vector_property (const std::string& nm, const graphics_handle& h, |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
1509 const octave_value& m) |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1510 : array_property (nm, h, m) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1511 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1512 add_constraint (dim_vector (-1, 1)); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1513 add_constraint (dim_vector (1, -1)); |
17631
94dd9bba06a0
Fix validation of array properties to set(), avoid segfaults (bug #bug #35687).
Rik <rik@octave.org>
parents:
17625
diff
changeset
|
1514 add_constraint (dim_vector (0, 0)); |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1515 } |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1516 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1517 row_vector_property (const row_vector_property& p) |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1518 : array_property (p) |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1519 { |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1520 add_constraint (dim_vector (-1, 1)); |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1521 add_constraint (dim_vector (1, -1)); |
17631
94dd9bba06a0
Fix validation of array properties to set(), avoid segfaults (bug #bug #35687).
Rik <rik@octave.org>
parents:
17625
diff
changeset
|
1522 add_constraint (dim_vector (0, 0)); |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1523 } |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1524 |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1525 void add_constraint (const std::string& type) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1526 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1527 array_property::add_constraint (type); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1528 } |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1529 |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1530 void add_constraint (const dim_vector& dims) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1531 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1532 array_property::add_constraint (dims); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1533 } |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1534 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1535 void add_constraint (const finite_type finite) |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1536 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1537 array_property::add_constraint (finite); |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1538 } |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1539 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1540 void add_constraint (const std::string& type, double val, bool inclusive) |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1541 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1542 array_property::add_constraint (type, val, inclusive); |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1543 } |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1544 |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1545 void add_constraint (octave_idx_type len) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1546 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1547 m_size_constraints.remove (dim_vector (1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1548 m_size_constraints.remove (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1549 m_size_constraints.remove (dim_vector (0, 0)); |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1550 |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1551 add_constraint (dim_vector (1, len)); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1552 add_constraint (dim_vector (len, 1)); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1553 } |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1554 |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1555 row_vector_property& operator = (const octave_value& val) |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1556 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1557 set (val); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1558 return *this; |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1559 } |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1560 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1561 base_property * clone (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1562 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1563 row_vector_property *p = new row_vector_property (*this); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1564 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1565 p->m_type_constraints = m_type_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1566 p->m_size_constraints = m_size_constraints; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1567 p->m_finite_constraint = m_finite_constraint; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1568 p->m_minval = m_minval; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1569 p->m_maxval = m_maxval; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1570 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1571 return p; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1572 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1573 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1574 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1575 bool do_set (const octave_value& v) |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1576 { |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1577 bool retval = array_property::do_set (v); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1578 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1579 dim_vector dv = m_data.dims (); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1580 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1581 if (dv(0) > 1 && dv(1) == 1) |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1582 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1583 int tmp = dv(0); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1584 dv(0) = dv(1); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1585 dv(1) = tmp; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1586 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1587 m_data = m_data.reshape (dv); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1588 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1589 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1590 return retval; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1591 } |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1592 |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1593 private: |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1594 OCTINTERP_API bool validate (const octave_value& v); |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1595 }; |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1596 |
7363 | 1597 // --------------------------------------------------------------------- |
1598 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1599 class OCTINTERP_API bool_property : public radio_property |
7363 | 1600 { |
1601 public: | |
7364 | 1602 bool_property (const std::string& nm, const graphics_handle& h, |
7363 | 1603 bool val) |
7364 | 1604 : radio_property (nm, h, radio_values (val ? "{on}|off" : "on|{off}")) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1605 { } |
7363 | 1606 |
7364 | 1607 bool_property (const std::string& nm, const graphics_handle& h, |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1608 const char *val) |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24637
diff
changeset
|
1609 : radio_property (nm, h, radio_values (std::string (val) == "on" ? |
24635
b708857d634e
Correctly display boolean properties default values (bug #52768)
Sahil Yadav <yadavsahil5198@gmail.com>
parents:
24534
diff
changeset
|
1610 "{on}|off" : "on|{off}"), val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1611 { } |
7363 | 1612 |
1613 bool_property (const bool_property& p) | |
1614 : radio_property (p) { } | |
1615 | |
1616 bool is_on (void) const { return is ("on"); } | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1617 |
7363 | 1618 bool_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1619 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1620 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1621 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1622 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1623 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1624 base_property * clone (void) const { return new bool_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1625 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1626 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1627 bool do_set (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1628 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1629 if (val.is_bool_scalar ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1630 return radio_property::do_set (val.bool_value () ? "on" : "off"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1631 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1632 return radio_property::do_set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1633 } |
7363 | 1634 }; |
1635 | |
1636 // --------------------------------------------------------------------- | |
1637 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1638 class OCTINTERP_API handle_property : public base_property |
7363 | 1639 { |
1640 public: | |
7364 | 1641 handle_property (const std::string& nm, const graphics_handle& h, |
7363 | 1642 const graphics_handle& val = graphics_handle ()) |
7364 | 1643 : base_property (nm, h), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1644 m_current_val (val) { } |
7363 | 1645 |
1646 handle_property (const handle_property& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1647 : base_property (p), m_current_val (p.m_current_val) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1648 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1649 octave_value get (void) const { return m_current_val.as_octave_value (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1650 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1651 graphics_handle handle_value (void) const { return m_current_val; } |
7363 | 1652 |
1653 handle_property& operator = (const octave_value& val) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1654 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1655 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1656 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1657 } |
7363 | 1658 |
1659 handle_property& operator = (const graphics_handle& h) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1660 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1661 set (octave_value (h.value ())); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1662 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1663 } |
7363 | 1664 |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
1665 void invalidate (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1666 { m_current_val = octave::numeric_limits<double>::NaN (); } |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
1667 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1668 base_property * clone (void) const { return new handle_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1669 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1670 void add_constraint (const std::string& type) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1671 { m_type_constraints.insert (type); } |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1672 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1673 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1674 OCTINTERP_API bool do_set (const octave_value& v); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1675 std::set<std::string> m_type_constraints; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1676 |
7363 | 1677 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1678 graphics_handle m_current_val; |
7363 | 1679 }; |
1680 | |
1681 // --------------------------------------------------------------------- | |
1682 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1683 class OCTINTERP_API any_property : public base_property |
7363 | 1684 { |
1685 public: | |
7364 | 1686 any_property (const std::string& nm, const graphics_handle& h, |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1687 const octave_value& m = Matrix ()) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1688 : base_property (nm, h), m_data (m) { } |
7363 | 1689 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1690 any_property (const any_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1691 : base_property (p), m_data (p.m_data) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1692 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1693 octave_value get (void) const { return m_data; } |
7363 | 1694 |
1695 any_property& operator = (const octave_value& val) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1696 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1697 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1698 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1699 } |
7363 | 1700 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1701 base_property * clone (void) const { return new any_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1702 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1703 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1704 bool do_set (const octave_value& v) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1705 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1706 m_data = v; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1707 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1708 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1709 |
7363 | 1710 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1711 octave_value m_data; |
7363 | 1712 }; |
1713 | |
1714 // --------------------------------------------------------------------- | |
1715 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1716 class OCTINTERP_API children_property : public base_property |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1717 { |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1718 public: |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1719 children_property (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1720 : base_property ("", graphics_handle ()), m_children_list () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1721 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1722 do_init_children (Matrix ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1723 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1724 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1725 children_property (const std::string& nm, const graphics_handle& h, |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1726 const Matrix& val) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1727 : base_property (nm, h), m_children_list () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1728 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1729 do_init_children (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1730 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1731 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1732 children_property (const children_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1733 : base_property (p), m_children_list () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1734 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1735 do_init_children (p.m_children_list); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1736 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1737 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1738 children_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1739 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1740 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1741 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1742 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1743 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1744 base_property * clone (void) const { return new children_property (*this); } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1745 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1746 bool remove_child (double val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1747 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1748 return do_remove_child (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1749 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1750 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1751 void adopt (double val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1752 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1753 do_adopt_child (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1754 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1755 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1756 Matrix get_children (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1757 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1758 return do_get_children (false); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1759 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1760 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1761 Matrix get_hidden (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1762 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1763 return do_get_children (true); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1764 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1765 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1766 Matrix get_all (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1767 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1768 return do_get_all_children (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1769 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1770 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1771 octave_value get (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1772 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1773 return octave_value (get_children ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1774 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1775 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
1776 void delete_children (bool clear = false, bool from_root = false) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1777 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1778 do_delete_children (clear, from_root); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1779 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1780 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
1781 void renumber (graphics_handle old_gh, graphics_handle new_gh) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1782 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1783 for (auto& hchild : m_children_list) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1784 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1785 if (hchild == old_gh) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1786 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1787 hchild = new_gh.value (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1788 return; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1789 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1790 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1791 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1792 error ("children_list::renumber: child not found!"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1793 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
1794 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1795 private: |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1796 typedef std::list<double>::iterator children_list_iterator; |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1797 typedef std::list<double>::const_iterator const_children_list_iterator; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1798 std::list<double> m_children_list; |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1799 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1800 protected: |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1801 bool do_set (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1802 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1803 Matrix new_kids; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1804 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1805 try |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1806 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1807 new_kids = val.matrix_value (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1808 } |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
1809 catch (octave::execution_exception& ee) |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1810 { |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
1811 error (ee, "set: children must be an array of graphics handles"); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1812 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1813 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1814 octave_idx_type nel = new_kids.numel (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1815 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1816 const Matrix new_kids_column = new_kids.reshape (dim_vector (nel, 1)); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1817 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1818 bool is_ok = true; |
19678
c17e1cefdbd3
Fix reordering graphics property children for hidden objects (bug #44211)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19666
diff
changeset
|
1819 bool add_hidden = true; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1820 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1821 const Matrix visible_kids = do_get_children (false); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1822 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1823 if (visible_kids.numel () == new_kids.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1824 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1825 Matrix t1 = visible_kids.sort (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1826 Matrix t2 = new_kids_column.sort (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1827 Matrix t3 = get_hidden ().sort (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1828 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1829 if (t1 != t2) |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1830 is_ok = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1831 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1832 if (t1 == t3) |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1833 add_hidden = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1834 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1835 else |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1836 is_ok = false; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1837 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1838 if (! is_ok) |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1839 error ("set: new children must be a permutation of existing children"); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1840 |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1841 Matrix tmp = new_kids_column; |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1842 |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1843 if (add_hidden) |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1844 tmp.stack (get_hidden ()); |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1845 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1846 m_children_list.clear (); |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1847 |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1848 // Don't use do_init_children here, as that reverses the |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1849 // order of the list, and we don't want to do that if setting |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1850 // the child list directly. |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1851 for (octave_idx_type i = 0; i < tmp.numel (); i++) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1852 m_children_list.push_back (tmp.xelem (i)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1853 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1854 return is_ok; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1855 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1856 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1857 private: |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1858 void do_init_children (const Matrix& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1859 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1860 m_children_list.clear (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1861 for (octave_idx_type i = 0; i < val.numel (); i++) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1862 m_children_list.push_front (val.xelem (i)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1863 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1864 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1865 void do_init_children (const std::list<double>& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1866 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1867 m_children_list.clear (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1868 m_children_list = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1869 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1870 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1871 OCTINTERP_API Matrix do_get_children (bool return_hidden) const; |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1872 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1873 Matrix do_get_all_children (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1874 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1875 Matrix retval (m_children_list.size (), 1); |
21568
3d60ed163b70
maint: Eliminate bad spacing around '='.
Rik <rik@octave.org>
parents:
21562
diff
changeset
|
1876 octave_idx_type i = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1877 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1878 for (const auto& hchild : m_children_list) |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1879 retval(i++) = hchild; |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1880 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1881 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1882 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1883 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1884 bool do_remove_child (double child) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1885 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1886 for (auto it = m_children_list.begin (); it != m_children_list.end (); it++) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1887 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1888 if (*it == child) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1889 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1890 m_children_list.erase (it); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1891 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1892 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1893 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1894 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1895 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1896 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1897 void do_adopt_child (double val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1898 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1899 m_children_list.push_front (val); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1900 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1901 |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1902 void do_delete_children (bool clear, bool from_root); |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1903 }; |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1904 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1905 // --------------------------------------------------------------------- |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1906 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1907 class OCTINTERP_API callback_property : public base_property |
7363 | 1908 { |
1909 public: | |
7364 | 1910 callback_property (const std::string& nm, const graphics_handle& h, |
7363 | 1911 const octave_value& m) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1912 : base_property (nm, h), m_callback (m) { } |
7363 | 1913 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1914 callback_property (const callback_property& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1915 : base_property (p), m_callback (p.m_callback) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1916 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1917 octave_value get (void) const { return m_callback; } |
7363 | 1918 |
7367 | 1919 OCTINTERP_API void execute (const octave_value& data = octave_value ()) const; |
7363 | 1920 |
10517 | 1921 bool is_defined (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1922 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1923 return (m_callback.is_defined () && ! m_callback.isempty ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1924 } |
10517 | 1925 |
7363 | 1926 callback_property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1927 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1928 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1929 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1930 } |
7363 | 1931 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
1932 base_property * clone (void) const { return new callback_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1933 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1934 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1935 bool do_set (const octave_value& v) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1936 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1937 if (! validate (v)) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1938 error (R"(invalid value for callback property "%s")", |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1939 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1940 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1941 m_callback = v; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1942 return true; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1943 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1944 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1945 |
7363 | 1946 private: |
1947 OCTINTERP_API bool validate (const octave_value& v) const; | |
1948 | |
1949 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1950 octave_value m_callback; |
7363 | 1951 }; |
1952 | |
1953 // --------------------------------------------------------------------- | |
1954 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1955 class OCTINTERP_API property |
7363 | 1956 { |
1957 public: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1958 property (void) : m_rep (new base_property ("", graphics_handle ())) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1959 { } |
7363 | 1960 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1961 property (base_property *bp, bool persist = false) : m_rep (bp) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1962 { if (persist) m_rep->m_count++; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1963 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1964 property (const property& p) : m_rep (p.m_rep) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1965 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1966 m_rep->m_count++; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1967 } |
7363 | 1968 |
1969 ~property (void) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1970 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1971 if (--m_rep->m_count == 0) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1972 delete m_rep; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1973 } |
7363 | 1974 |
1975 bool ok (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1976 { return m_rep->ok (); } |
7363 | 1977 |
1978 std::string get_name (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1979 { return m_rep->get_name (); } |
7363 | 1980 |
1981 void set_name (const std::string& name) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1982 { m_rep->set_name (name); } |
7363 | 1983 |
1984 graphics_handle get_parent (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1985 { return m_rep->get_parent (); } |
7363 | 1986 |
1987 void set_parent (const graphics_handle& h) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1988 { m_rep->set_parent (h); } |
7363 | 1989 |
1990 bool is_hidden (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1991 { return m_rep->is_hidden (); } |
7363 | 1992 |
1993 void set_hidden (bool flag) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1994 { m_rep->set_hidden (flag); } |
7363 | 1995 |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
1996 bool is_radio (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1997 { return m_rep->is_radio (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
1998 |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
1999 int get_id (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2000 { return m_rep->get_id (); } |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2001 |
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2002 void set_id (int d) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2003 { m_rep->set_id (d); } |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2004 |
7363 | 2005 octave_value get (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2006 { return m_rep->get (); } |
7363 | 2007 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2008 bool set (const octave_value& val, bool do_run = true, |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2009 bool do_notify_toolkit = true) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2010 { return m_rep->set (val, do_run, do_notify_toolkit); } |
7363 | 2011 |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2012 std::string values_as_string (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2013 { return m_rep->values_as_string (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2014 |
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2015 Cell values_as_cell (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2016 { return m_rep->values_as_cell (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2017 |
7363 | 2018 property& operator = (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2019 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2020 *m_rep = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2021 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2022 } |
7363 | 2023 |
2024 property& operator = (const property& p) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2025 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2026 if (m_rep && --m_rep->m_count == 0) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2027 delete m_rep; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2028 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2029 m_rep = p.m_rep; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2030 m_rep->m_count++; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2031 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2032 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2033 } |
7363 | 2034 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2035 void add_listener (const octave_value& v, listener_mode mode = GCB_POSTSET) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2036 { m_rep->add_listener (v, mode); } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2037 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2038 void delete_listener (const octave_value& v = octave_value (), |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2039 listener_mode mode = GCB_POSTSET) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2040 { m_rep->delete_listener (v, mode); } |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2041 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2042 void run_listeners (listener_mode mode = GCB_POSTSET) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2043 { m_rep->run_listeners (mode); } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2044 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2045 static OCTINTERP_API property |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2046 create (const std::string& name, const graphics_handle& parent, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2047 const caseless_str& type, const octave_value_list& args); |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2048 |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2049 property clone (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2050 { return property (m_rep->clone ()); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2051 |
20946 | 2052 #if 0 |
7363 | 2053 const string_property& as_string_property (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2054 { return *(dynamic_cast<string_property *> (m_rep)); } |
7363 | 2055 |
2056 const radio_property& as_radio_property (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2057 { return *(dynamic_cast<radio_property *> (m_rep)); } |
7363 | 2058 |
2059 const color_property& as_color_property (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2060 { return *(dynamic_cast<color_property *> (m_rep)); } |
7363 | 2061 |
2062 const double_property& as_double_property (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2063 { return *(dynamic_cast<double_property *> (m_rep)); } |
7363 | 2064 |
2065 const bool_property& as_bool_property (void) const | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2066 { return *(dynamic_cast<bool_property *> (m_rep)); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2067 |
7363 | 2068 const handle_property& as_handle_property (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2069 { return *(dynamic_cast<handle_property *> (m_rep)); } |
20946 | 2070 #endif |
7363 | 2071 |
2072 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2073 base_property *m_rep; |
7363 | 2074 }; |
2075 | |
2076 // --------------------------------------------------------------------- | |
2077 | |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
2078 typedef std::pair<std::string, octave_value> pval_pair; |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
2079 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2080 class OCTINTERP_API pval_vector : public std::vector<pval_pair> |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2081 { |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2082 public: |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2083 const_iterator find (const std::string pname) const |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2084 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2085 const_iterator it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2086 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2087 for (it = (*this).begin (); it != (*this).end (); it++) |
21021
a5b99b09f8fd
maint: Use comparison operators rather than compare() for strings.
Rik <rik@octave.org>
parents:
21017
diff
changeset
|
2088 if (pname == (*it).first) |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2089 return it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2090 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2091 return (*this).end (); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2092 } |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2093 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2094 iterator find (const std::string pname) |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2095 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2096 iterator it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2097 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2098 for (it = (*this).begin (); it != (*this).end (); it++) |
21021
a5b99b09f8fd
maint: Use comparison operators rather than compare() for strings.
Rik <rik@octave.org>
parents:
21017
diff
changeset
|
2099 if (pname == (*it).first) |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2100 return it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2101 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2102 return (*this).end (); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2103 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2104 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2105 octave_value lookup (const std::string pname) const |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2106 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2107 octave_value retval; |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2108 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2109 const_iterator it = find (pname); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2110 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2111 if (it != (*this).end ()) |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2112 retval = (*it).second; |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2113 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2114 return retval; |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2115 } |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2116 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2117 octave_value& operator [] (const std::string pname) |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2118 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2119 iterator it = find (pname); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2120 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2121 if (it == (*this).end ()) |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2122 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2123 push_back (pval_pair (pname, octave_value ())); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2124 return (*this).back ().second; |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2125 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2126 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2127 return (*it).second; |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2128 } |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2129 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2130 void erase (const std::string pname) |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2131 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2132 iterator it = find (pname); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2133 if (it != (*this).end ()) |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2134 erase (it); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2135 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2136 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2137 void erase (iterator it) |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2138 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
2139 std::vector<pval_pair>::erase (it); |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2140 } |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2141 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2142 }; |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2143 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2144 class OCTINTERP_API property_list |
7363 | 2145 { |
2146 public: | |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2147 typedef pval_vector pval_map_type; |
7363 | 2148 typedef std::map<std::string, pval_map_type> plist_map_type; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2149 |
7363 | 2150 typedef pval_map_type::iterator pval_map_iterator; |
2151 typedef pval_map_type::const_iterator pval_map_const_iterator; | |
2152 | |
2153 typedef plist_map_type::iterator plist_map_iterator; | |
2154 typedef plist_map_type::const_iterator plist_map_const_iterator; | |
2155 | |
2156 property_list (const plist_map_type& m = plist_map_type ()) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2157 : m_plist_map (m) { } |
7363 | 2158 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
2159 ~property_list (void) = default; |
7363 | 2160 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2161 OCTINTERP_API void set (const caseless_str& name, const octave_value& val); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2162 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2163 OCTINTERP_API octave_value lookup (const caseless_str& name) const; |
7363 | 2164 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2165 plist_map_iterator begin (void) { return m_plist_map.begin (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2166 plist_map_const_iterator begin (void) const { return m_plist_map.begin (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2167 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2168 plist_map_iterator end (void) { return m_plist_map.end (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2169 plist_map_const_iterator end (void) const { return m_plist_map.end (); } |
7363 | 2170 |
2171 plist_map_iterator find (const std::string& go_name) | |
2172 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2173 return m_plist_map.find (go_name); |
7363 | 2174 } |
2175 | |
2176 plist_map_const_iterator find (const std::string& go_name) const | |
2177 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2178 return m_plist_map.find (go_name); |
7363 | 2179 } |
2180 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2181 OCTINTERP_API octave_scalar_map |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2182 as_struct (const std::string& prefix_arg) const; |
7363 | 2183 |
2184 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2185 plist_map_type m_plist_map; |
7363 | 2186 }; |
2187 | |
2188 // --------------------------------------------------------------------- | |
2189 | |
6874 | 2190 class base_graphics_object; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2191 class graphics_object; |
6874 | 2192 |
7365 | 2193 class OCTINTERP_API base_properties |
6874 | 2194 { |
2195 public: | |
7176 | 2196 base_properties (const std::string& ty = "unknown", |
7363 | 2197 const graphics_handle& mh = graphics_handle (), |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2198 const graphics_handle& p = graphics_handle ()); |
6874 | 2199 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
2200 virtual ~base_properties (void) = default; |
6874 | 2201 |
17625
bd1dd30ed202
graphics.in.h: Correct bad spelling of "unknown" in graphics_object_name().
Rik <rik@octave.org>
parents:
17544
diff
changeset
|
2202 virtual std::string graphics_object_name (void) const { return "unknown"; } |
6874 | 2203 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2204 OCTINTERP_API void mark_modified (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2205 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2206 OCTINTERP_API void override_defaults (base_graphics_object& obj); |
6874 | 2207 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2208 virtual void init_integerhandle (const octave_value&) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2209 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2210 panic_impossible (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2211 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2212 |
6874 | 2213 // Look through DEFAULTS for properties with given CLASS_NAME, and |
2214 // apply them to the current object with set (virtual method). | |
2215 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2216 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2217 set_from_list (base_graphics_object& obj, property_list& defaults); |
6874 | 2218 |
7363 | 2219 void insert_property (const std::string& name, property p) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2220 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2221 p.set_name (name); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2222 p.set_parent (m___myhandle__); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2223 m_all_props[name] = p; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2224 } |
7363 | 2225 |
9972 | 2226 virtual void set (const caseless_str&, const octave_value&); |
9185
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2227 |
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2228 virtual octave_value get (const caseless_str& pname) const; |
7363 | 2229 |
9616
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2230 virtual octave_value get (const std::string& pname) const |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2231 { |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2232 return get (caseless_str (pname)); |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2233 } |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2234 |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2235 virtual octave_value get (const char *pname) const |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2236 { |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2237 return get (caseless_str (pname)); |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2238 } |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2239 |
7379 | 2240 virtual octave_value get (bool all = false) const; |
7363 | 2241 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2242 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2243 // currently not possible with the way that properties are stored as |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2244 // specific types in the graphics_object classes. |
9185
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2245 virtual property get_property (const caseless_str& pname); |
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2246 |
9585
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2247 virtual bool has_property (const caseless_str&) const |
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2248 { |
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2249 panic_impossible (); |
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2250 return false; |
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2251 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2252 |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2253 bool is_modified (void) const { return is___modified__ (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2254 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2255 virtual void remove_child (const graphics_handle& h, bool = false) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2256 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2257 if (m_children.remove_child (h.value ())) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2258 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2259 m_children.run_listeners (); |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2260 mark_modified (); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2261 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2262 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2263 |
7386 | 2264 virtual void adopt (const graphics_handle& h) |
6874 | 2265 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2266 m_children.adopt (h.value ()); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2267 m_children.run_listeners (); |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
2268 mark_modified (); |
6874 | 2269 } |
2270 | |
27734
a9780be9ecbc
move graphics_toolkit class inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27730
diff
changeset
|
2271 virtual octave::graphics_toolkit get_toolkit (void) const; |
7419 | 2272 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2273 virtual Matrix |
20946 | 2274 get_boundingbox (bool /* finternal */ = false, |
2275 const Matrix& /* parent_pix_size */ = Matrix ()) const | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2276 { return Matrix (1, 4, 0.0); } |
7447 | 2277 |
7828
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
2278 virtual void update_boundingbox (void); |
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
2279 |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
2280 virtual void update_autopos (const std::string& elem_type); |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
2281 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2282 virtual void add_listener (const caseless_str&, const octave_value&, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2283 listener_mode = GCB_POSTSET); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2284 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2285 virtual void delete_listener (const caseless_str&, const octave_value&, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2286 listener_mode = GCB_POSTSET); |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2287 |
27698
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2288 void set_beingdeleted (const octave_value& val) |
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2289 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2290 m_beingdeleted.set (val, true, false); |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
2291 update_beingdeleted (); |
27698
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2292 } |
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2293 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2294 void set_tag (const octave_value& val) { m_tag = val; } |
7176 | 2295 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2296 OCTINTERP_API void set_parent (const octave_value& val); |
6874 | 2297 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2298 Matrix get_children (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2299 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2300 return m_children.get_children (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2301 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2302 |
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2303 Matrix get_all_children (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2304 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2305 return m_children.get_all (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2306 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2307 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2308 Matrix get_hidden_children (void) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2309 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2310 return m_children.get_hidden (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2311 } |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2312 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2313 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2314 get_children_of_type (const caseless_str& type, bool get_invisible, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2315 bool traverse, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2316 std::list<graphics_object> &children_list) const; |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
2317 |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2318 void set_modified (const octave_value& val) { set___modified__ (val); } |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2319 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2320 void set___modified__ (const octave_value& val) { m___modified__ = val; } |
7366 | 2321 |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2322 // Redirect calls to "uicontextmenu" to "contextmenu". |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2323 |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2324 graphics_handle get_uicontextmenu (void) const |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2325 { |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2326 return get_contextmenu (); |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2327 } |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2328 |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2329 void set_uicontextmenu (const octave_value& val) |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2330 { |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2331 set_contextmenu (val); |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2332 } |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2333 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2334 void reparent (const graphics_handle& new_parent) { m_parent = new_parent; } |
6874 | 2335 |
7214 | 2336 // Update data limits for AXIS_TYPE (xdata, ydata, etc.) in the parent |
2337 // axes object. | |
2338 | |
7386 | 2339 virtual void update_axis_limits (const std::string& axis_type) const; |
7214 | 2340 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2341 virtual void update_axis_limits (const std::string& axis_type, |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2342 const graphics_handle& h) const; |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2343 |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2344 virtual void update_contextmenu (void) const; |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
2345 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2346 virtual void delete_children (bool clear = false, bool from_root = false) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2347 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2348 m_children.delete_children (clear, from_root); |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2349 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2350 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2351 void renumber_child (graphics_handle old_gh, graphics_handle new_gh) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2352 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2353 m_children.renumber (old_gh, new_gh); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2354 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2355 |
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2356 void renumber_parent (graphics_handle new_gh) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2357 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2358 m_parent = new_gh; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2359 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2360 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2361 static OCTINTERP_API property_list::pval_map_type factory_defaults (void); |
7222 | 2362 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
2363 // FIXME: These functions should be generated automatically by the |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2364 // genprops.awk script. |
7222 | 2365 // |
2366 // EMIT_BASE_PROPERTIES_GET_FUNCTIONS | |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2367 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2368 virtual octave_value get_alim (void) const { return octave_value (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2369 virtual octave_value get_clim (void) const { return octave_value (); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2370 virtual octave_value get_xlim (void) const { return octave_value (); } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2371 virtual octave_value get_ylim (void) const { return octave_value (); } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2372 virtual octave_value get_zlim (void) const { return octave_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2373 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2374 virtual bool is_aliminclude (void) const { return false; } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2375 virtual bool is_climinclude (void) const { return false; } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2376 virtual bool is_xliminclude (void) const { return false; } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2377 virtual bool is_yliminclude (void) const { return false; } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2378 virtual bool is_zliminclude (void) const { return false; } |
8249 | 2379 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2380 OCTINTERP_API bool is_handle_visible (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2381 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2382 OCTINTERP_API std::set<std::string> dynamic_property_names (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2383 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2384 OCTINTERP_API bool has_dynamic_property (const std::string& pname) const; |
9185
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2385 |
6874 | 2386 protected: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2387 std::set<std::string> m_dynamic_properties; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2388 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2389 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2390 set_dynamic (const caseless_str& pname, const octave_value& val); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2391 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2392 OCTINTERP_API octave_value get_dynamic (const caseless_str& pname) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2393 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2394 OCTINTERP_API octave_value get_dynamic (bool all = false) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2395 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2396 OCTINTERP_API property get_property_dynamic (const caseless_str& pname) const; |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2397 |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2398 BEGIN_BASE_PROPERTIES |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2399 // properties common to all objects |
27698
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2400 bool_property beingdeleted s , "off" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2401 radio_property busyaction , "{queue}|cancel" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2402 callback_property buttondownfcn , Matrix () |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2403 children_property children gf , Matrix () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2404 bool_property clipping , "on" |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2405 handle_property contextmenu u , graphics_handle () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2406 callback_property createfcn , Matrix () |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2407 callback_property deletefcn , Matrix () |
24395
41cf6ee90cb6
Better handling of "handlevisibility" property (bug #52621).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24277
diff
changeset
|
2408 radio_property handlevisibility u , "{on}|callback|off" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2409 bool_property hittest , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2410 bool_property interruptible , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2411 handle_property parent fs , p |
24523
501986e12b8b
Implement "pickableparts" property (bug #52795).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24501
diff
changeset
|
2412 radio_property pickableparts , "{visible}|all|none" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2413 bool_property selected , "off" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2414 bool_property selectionhighlight , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2415 string_property tag s , "" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2416 string_property type frs , ty |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2417 handle_property uicontextmenu gsh , graphics_handle () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2418 any_property userdata , Matrix () |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
2419 bool_property visible u , "on" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2420 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2421 // Octave-specific properties |
27682
e18237114cf8
Hide __appdata__ internal property (bug #57211).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27446
diff
changeset
|
2422 any_property __appdata__ h , Matrix () |
22665
4ea5b0c3b10f
Make base graphics property __modified__ hidden (bug #49205).
Rik <rik@octave.org>
parents:
22631
diff
changeset
|
2423 bool_property __modified__ hs , "on" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2424 graphics_handle __myhandle__ fhrs , mh |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2425 END_PROPERTIES |
7363 | 2426 |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
2427 virtual void update_beingdeleted (void) { }; |
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
2428 |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
2429 virtual void update_handlevisibility (void); |
24395
41cf6ee90cb6
Better handling of "handlevisibility" property (bug #52621).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24277
diff
changeset
|
2430 |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
2431 virtual void update_visible (void) { }; |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
2432 |
7363 | 2433 protected: |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2434 struct cmp_caseless_str |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2435 { |
30155
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
30053
diff
changeset
|
2436 public: |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
2437 bool operator () (const caseless_str& a, const caseless_str& b) const |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
8023
diff
changeset
|
2438 { |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2439 std::string a1 = a; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2440 std::transform (a1.begin (), a1.end (), a1.begin (), tolower); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2441 std::string b1 = b; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2442 std::transform (b1.begin (), b1.end (), b1.begin (), tolower); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2443 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2444 return a1 < b1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2445 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2446 }; |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
8023
diff
changeset
|
2447 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2448 std::map<caseless_str, property, cmp_caseless_str> m_all_props; |
7363 | 2449 |
2450 protected: | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2451 |
22910
23847979b91e
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
2452 virtual void init (void) |
23847979b91e
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
2453 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2454 m_contextmenu.add_constraint ("uicontextmenu"); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
2455 } |
6874 | 2456 }; |
2457 | |
7365 | 2458 class OCTINTERP_API base_graphics_object |
6874 | 2459 { |
2460 public: | |
2461 friend class graphics_object; | |
2462 | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2463 base_graphics_object (void) : m_toolkit_flag (false) { } |
6874 | 2464 |
22869
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2465 // No copying! |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2466 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2467 base_graphics_object (const base_graphics_object&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2468 |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2469 base_graphics_object& operator = (const base_graphics_object&) = delete; |
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2470 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
2471 virtual ~base_graphics_object (void) = default; |
6874 | 2472 |
2473 virtual void mark_modified (void) | |
2474 { | |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2475 if (! valid_object ()) |
7386 | 2476 error ("base_graphics_object::mark_modified: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2477 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2478 get_properties ().mark_modified (); |
6874 | 2479 } |
2480 | |
7386 | 2481 virtual void override_defaults (base_graphics_object& obj) |
6874 | 2482 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2483 if (! valid_object ()) |
7386 | 2484 error ("base_graphics_object::override_defaults: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2485 get_properties ().override_defaults (obj); |
6874 | 2486 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2487 |
23433
c9fab0bc983e
maint: Use convention 'int& x' for naming references.
Rik <rik@octave.org>
parents:
23401
diff
changeset
|
2488 void build_user_defaults_map (property_list::pval_map_type& def, |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2489 const std::string go_name) const; |
6874 | 2490 |
7386 | 2491 virtual void set_from_list (property_list& plist) |
6874 | 2492 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2493 if (! valid_object ()) |
7386 | 2494 error ("base_graphics_object::set_from_list: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2495 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2496 get_properties ().set_from_list (*this, plist); |
6874 | 2497 } |
2498 | |
7386 | 2499 virtual void set (const caseless_str& pname, const octave_value& pval) |
6874 | 2500 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2501 if (! valid_object ()) |
7386 | 2502 error ("base_graphics_object::set: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2503 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2504 get_properties ().set (pname, pval); |
6874 | 2505 } |
2506 | |
2507 virtual void set_defaults (const std::string&) | |
2508 { | |
2509 error ("base_graphics_object::set_defaults: invalid graphics object"); | |
2510 } | |
2511 | |
26918
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2512 // The following version of the get method is not declared virtual |
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2513 // because no derived class overrides it. |
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2514 |
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2515 octave_value get (bool all = false) const |
6874 | 2516 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2517 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2518 error ("base_graphics_object::get: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2519 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2520 return get_properties ().get (all); |
6874 | 2521 } |
2522 | |
7386 | 2523 virtual octave_value get (const caseless_str& pname) const |
6874 | 2524 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2525 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2526 error ("base_graphics_object::get: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2527 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2528 return get_properties ().get (pname); |
6874 | 2529 } |
2530 | |
7189 | 2531 virtual octave_value get_default (const caseless_str&) const; |
6874 | 2532 |
7189 | 2533 virtual octave_value get_factory_default (const caseless_str&) const; |
6874 | 2534 |
2535 virtual octave_value get_defaults (void) const | |
2536 { | |
2537 error ("base_graphics_object::get_defaults: invalid graphics object"); | |
2538 } | |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2539 |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2540 virtual property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2541 { |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2542 if (! valid_object ()) |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2543 error ("base_graphics_object::get_defaults_list: invalid graphics object"); |
21055
5e00ed38a58b
maint: Replace if/error/else paradigm with just if/error.
Rik <rik@octave.org>
parents:
21021
diff
changeset
|
2544 |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2545 return property_list (); |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2546 } |
6874 | 2547 |
2548 virtual octave_value get_factory_defaults (void) const | |
2549 { | |
2550 error ("base_graphics_object::get_factory_defaults: invalid graphics object"); | |
2551 } | |
2552 | |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2553 virtual property_list get_factory_defaults_list (void) const |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2554 { |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2555 error ("base_graphics_object::get_factory_defaults_list: invalid graphics object"); |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2556 } |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2557 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2558 virtual bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2559 { |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2560 return base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2561 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2562 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2563 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2564 // currently not possible. |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2565 virtual std::string values_as_string (void); |
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2566 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2567 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2568 // currently not possible. |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
2569 virtual std::string value_as_string (const std::string& prop); |
18118
ca84d3c9dc24
set: allow retrieving allowed values for individual properties
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
17822
diff
changeset
|
2570 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2571 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2572 // currently not possible. |
11074
8a3b7e8fcbbc
graphics.cc, graphics.h.in, genprops.awk: use octave_map and octave_scalar_map instead of Octave_map
John W. Eaton <jwe@octave.org>
parents:
10998
diff
changeset
|
2573 virtual octave_scalar_map values_as_struct (void); |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2574 |
6874 | 2575 virtual graphics_handle get_parent (void) const |
2576 { | |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2577 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2578 error ("base_graphics_object::get_parent: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2579 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2580 return get_properties ().get_parent (); |
6874 | 2581 } |
2582 | |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2583 graphics_handle get_handle (void) const |
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2584 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2585 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2586 error ("base_graphics_object::get_handle: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2587 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2588 return get_properties ().get___myhandle__ (); |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2589 } |
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2590 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2591 virtual void remove_child (const graphics_handle& h, bool from_root = false) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2592 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2593 if (! valid_object ()) |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2594 error ("base_graphics_object::remove_child: invalid graphics object"); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2595 |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2596 get_properties ().remove_child (h, from_root); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2597 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2598 |
7386 | 2599 virtual void adopt (const graphics_handle& h) |
6874 | 2600 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2601 if (! valid_object ()) |
7386 | 2602 error ("base_graphics_object::adopt: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2603 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2604 get_properties ().adopt (h); |
6874 | 2605 } |
2606 | |
7386 | 2607 virtual void reparent (const graphics_handle& np) |
6874 | 2608 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2609 if (! valid_object ()) |
7386 | 2610 error ("base_graphics_object::reparent: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2611 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2612 get_properties ().reparent (np); |
6874 | 2613 } |
2614 | |
2615 virtual void defaults (void) const | |
2616 { | |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
2617 if (! valid_object ()) |
7386 | 2618 error ("base_graphics_object::default: invalid graphics object"); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
2619 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
2620 std::string msg = (type () + "::defaults"); |
21100
e39e05d90788
Switch gripe_XXX to either err_XXX or warn_XXX naming scheme.
Rik <rik@octave.org>
parents:
21055
diff
changeset
|
2621 err_not_implemented (msg.c_str ()); |
6874 | 2622 } |
2623 | |
2624 virtual base_properties& get_properties (void) | |
2625 { | |
2626 static base_properties properties; | |
22190
e68128601f5e
skip invalid objects in Qt graphics event handlers (bug #46501)
John W. Eaton <jwe@octave.org>
parents:
22069
diff
changeset
|
2627 warning ("base_graphics_object::get_properties: invalid graphics object"); |
e68128601f5e
skip invalid objects in Qt graphics event handlers (bug #46501)
John W. Eaton <jwe@octave.org>
parents:
22069
diff
changeset
|
2628 return properties; |
6874 | 2629 } |
2630 | |
7222 | 2631 virtual const base_properties& get_properties (void) const |
2632 { | |
2633 static base_properties properties; | |
22190
e68128601f5e
skip invalid objects in Qt graphics event handlers (bug #46501)
John W. Eaton <jwe@octave.org>
parents:
22069
diff
changeset
|
2634 warning ("base_graphics_object::get_properties: invalid graphics object"); |
e68128601f5e
skip invalid objects in Qt graphics event handlers (bug #46501)
John W. Eaton <jwe@octave.org>
parents:
22069
diff
changeset
|
2635 return properties; |
7222 | 2636 } |
2637 | |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2638 virtual void update_axis_limits (const std::string& axis_type); |
7214 | 2639 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2640 virtual void update_axis_limits (const std::string& axis_type, |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2641 const graphics_handle& h); |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2642 |
6874 | 2643 virtual bool valid_object (void) const { return false; } |
2644 | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2645 bool valid_toolkit_object (void) const { return m_toolkit_flag; } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2646 |
7386 | 2647 virtual std::string type (void) const |
2648 { | |
2649 return (valid_object () ? get_properties ().graphics_object_name () | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2650 : "unknown"); |
7386 | 2651 } |
6874 | 2652 |
2653 bool isa (const std::string& go_name) const | |
2654 { | |
2655 return type () == go_name; | |
2656 } | |
2657 | |
27734
a9780be9ecbc
move graphics_toolkit class inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
27730
diff
changeset
|
2658 virtual octave::graphics_toolkit get_toolkit (void) const |
7419 | 2659 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2660 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2661 error ("base_graphics_object::get_toolkit: invalid graphics object"); |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2662 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2663 return get_properties ().get_toolkit (); |
7419 | 2664 } |
2665 | |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2666 virtual void add_property_listener (const std::string& nm, |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
2667 const octave_value& v, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2668 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2669 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2670 if (valid_object ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2671 get_properties ().add_listener (nm, v, mode); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2672 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2673 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2674 virtual void delete_property_listener (const std::string& nm, |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
2675 const octave_value& v, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2676 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2677 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2678 if (valid_object ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2679 get_properties ().delete_listener (nm, v, mode); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2680 } |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2681 |
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2682 virtual void remove_all_listeners (void); |
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2683 |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2684 virtual void reset_default_properties (void); |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
2685 |
6874 | 2686 protected: |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2687 virtual void initialize (const graphics_object& go) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2688 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2689 if (! m_toolkit_flag) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2690 m_toolkit_flag = get_toolkit ().initialize (go); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2691 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2692 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2693 virtual void finalize (const graphics_object& go) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2694 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2695 if (m_toolkit_flag) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2696 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2697 get_toolkit ().finalize (go); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2698 m_toolkit_flag = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2699 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2700 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2701 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2702 virtual void update (const graphics_object& go, int id) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2703 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2704 if (m_toolkit_flag) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2705 get_toolkit ().update (go, id); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2706 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2707 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2708 protected: |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
2709 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2710 // A flag telling whether this object is a valid object |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2711 // in the backend context. |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2712 bool m_toolkit_flag; |
6874 | 2713 }; |
2714 | |
7365 | 2715 class OCTINTERP_API graphics_object |
6874 | 2716 { |
2717 public: | |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2718 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2719 graphics_object (void) : m_rep (new base_graphics_object ()) { } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2720 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2721 graphics_object (base_graphics_object *new_rep) : m_rep (new_rep) { } |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2722 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
2723 graphics_object (const graphics_object&) = default; |
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
2724 |
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
2725 graphics_object& operator = (const graphics_object&) = default; |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2726 |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2727 ~graphics_object (void) = default; |
6874 | 2728 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2729 void mark_modified (void) { m_rep->mark_modified (); } |
6874 | 2730 |
2731 void override_defaults (base_graphics_object& obj) | |
2732 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2733 m_rep->override_defaults (obj); |
6874 | 2734 } |
2735 | |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
2736 void override_defaults (void) |
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
2737 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2738 m_rep->override_defaults (*m_rep); |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
2739 } |
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
2740 |
23433
c9fab0bc983e
maint: Use convention 'int& x' for naming references.
Rik <rik@octave.org>
parents:
23401
diff
changeset
|
2741 void build_user_defaults_map (property_list::pval_map_type& def, |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2742 const std::string go_name) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2743 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2744 m_rep->build_user_defaults_map (def, go_name); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2745 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2746 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2747 void set_from_list (property_list& plist) { m_rep->set_from_list (plist); } |
6874 | 2748 |
7189 | 2749 void set (const caseless_str& name, const octave_value& val) |
6874 | 2750 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2751 m_rep->set (name, val); |
6874 | 2752 } |
2753 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2754 OCTINTERP_API void set (const octave_value_list& args); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2755 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2756 OCTINTERP_API void set (const Array<std::string>& names, const Cell& values, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2757 octave_idx_type row); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2758 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2759 OCTINTERP_API void set (const octave_map& m); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2760 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2761 OCTINTERP_API void set_value_or_default (const caseless_str& name, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2762 const octave_value& val); |
10056
33ba83a06a42
Fix set function to allow cell and struct arguments.
Thorsten Meyer <thorsten.meyier@gmx.de>
parents:
9972
diff
changeset
|
2763 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2764 void set_defaults (const std::string& mode) { m_rep->set_defaults (mode); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2765 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2766 octave_value get (bool all = false) const { return m_rep->get (all); } |
6874 | 2767 |
7189 | 2768 octave_value get (const caseless_str& name) const |
6874 | 2769 { |
2770 return name.compare ("default") | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2771 ? get_defaults () |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2772 : (name.compare ("factory") |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2773 ? get_factory_defaults () : m_rep->get (name)); |
6874 | 2774 } |
2775 | |
9620
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2776 octave_value get (const std::string& name) const |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2777 { |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2778 return get (caseless_str (name)); |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2779 } |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2780 |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2781 octave_value get (const char *name) const |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2782 { |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2783 return get (caseless_str (name)); |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2784 } |
b00af0da85dd
graphics.h.in: provide std::string and char* versions of graphics_object:get functions
John W. Eaton <jwe@octave.org>
parents:
9616
diff
changeset
|
2785 |
7189 | 2786 octave_value get_default (const caseless_str& name) const |
6874 | 2787 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2788 return m_rep->get_default (name); |
6874 | 2789 } |
2790 | |
7189 | 2791 octave_value get_factory_default (const caseless_str& name) const |
6874 | 2792 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2793 return m_rep->get_factory_default (name); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2794 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2795 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2796 octave_value get_defaults (void) const { return m_rep->get_defaults (); } |
6874 | 2797 |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2798 property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2799 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2800 return m_rep->get_defaults_list (); |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2801 } |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2802 |
6874 | 2803 octave_value get_factory_defaults (void) const |
2804 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2805 return m_rep->get_factory_defaults (); |
6874 | 2806 } |
2807 | |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2808 property_list get_factory_defaults_list (void) const |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2809 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2810 return m_rep->get_factory_defaults_list (); |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2811 } |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2812 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2813 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2814 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2815 return m_rep->has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2816 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2817 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2818 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2819 // currently not possible. |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2820 std::string values_as_string (void) { return m_rep->values_as_string (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2821 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2822 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2823 // currently not possible. |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2824 std::string value_as_string (const std::string& prop) |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2825 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2826 return m_rep->value_as_string (prop); |
18118
ca84d3c9dc24
set: allow retrieving allowed values for individual properties
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
17822
diff
changeset
|
2827 } |
ca84d3c9dc24
set: allow retrieving allowed values for individual properties
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
17822
diff
changeset
|
2828 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2829 // FIXME: It seems like this function should be const, but that is |
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2830 // currently not possible. |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2831 octave_map values_as_struct (void) { return m_rep->values_as_struct (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2832 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2833 graphics_handle get_parent (void) const { return m_rep->get_parent (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2834 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2835 graphics_handle get_handle (void) const { return m_rep->get_handle (); } |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2836 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2837 OCTINTERP_API graphics_object get_ancestor (const std::string& type) const; |
11250
830b940e7ff4
Turn xget_ancestor into regular API
Michael Goffioul <michael.goffioul@gmail.com>
parents:
11247
diff
changeset
|
2838 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2839 void remove_child (const graphics_handle& h) { m_rep->remove_child (h); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2840 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2841 void adopt (const graphics_handle& h) { m_rep->adopt (h); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2842 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2843 void reparent (const graphics_handle& h) { m_rep->reparent (h); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2844 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2845 void defaults (void) const { m_rep->defaults (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2846 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2847 bool isa (const std::string& go_name) const { return m_rep->isa (go_name); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2848 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2849 base_properties& get_properties (void) { return m_rep->get_properties (); } |
6874 | 2850 |
7222 | 2851 const base_properties& get_properties (void) const |
2852 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2853 return m_rep->get_properties (); |
7222 | 2854 } |
2855 | |
7214 | 2856 void update_axis_limits (const std::string& axis_type) |
2857 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2858 m_rep->update_axis_limits (axis_type); |
7214 | 2859 } |
2860 | |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2861 void update_axis_limits (const std::string& axis_type, |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2862 const graphics_handle& h) |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2863 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2864 m_rep->update_axis_limits (axis_type, h); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2865 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2866 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2867 bool valid_object (void) const { return m_rep->valid_object (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2868 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2869 std::string type (void) const { return m_rep->type (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2870 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2871 operator bool (void) const { return m_rep->valid_object (); } |
6874 | 2872 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
2873 // FIXME: These functions should be generated automatically by the |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2874 // genprops.awk script. |
7222 | 2875 // |
2876 // EMIT_GRAPHICS_OBJECT_GET_FUNCTIONS | |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2877 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2878 octave_value get_alim (void) const |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2879 { return get_properties ().get_alim (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2880 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2881 octave_value get_clim (void) const |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2882 { return get_properties ().get_clim (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2883 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2884 octave_value get_xlim (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2885 { return get_properties ().get_xlim (); } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2886 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2887 octave_value get_ylim (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2888 { return get_properties ().get_ylim (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2889 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2890 octave_value get_zlim (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2891 { return get_properties ().get_zlim (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2892 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2893 bool is_aliminclude (void) const |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2894 { return get_properties ().is_aliminclude (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2895 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2896 bool is_climinclude (void) const |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2897 { return get_properties ().is_climinclude (); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2898 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2899 bool is_xliminclude (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2900 { return get_properties ().is_xliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2901 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2902 bool is_yliminclude (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2903 { return get_properties ().is_yliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2904 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2905 bool is_zliminclude (void) const |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2906 { return get_properties ().is_zliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2907 |
8249 | 2908 bool is_handle_visible (void) const |
2909 { return get_properties ().is_handle_visible (); } | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2910 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2911 octave::graphics_toolkit get_toolkit (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2912 { return m_rep->get_toolkit (); } |
7408 | 2913 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2914 void add_property_listener (const std::string& nm, const octave_value& v, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2915 listener_mode mode = GCB_POSTSET) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2916 { m_rep->add_property_listener (nm, v, mode); } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2917 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2918 void delete_property_listener (const std::string& nm, const octave_value& v, |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2919 listener_mode mode = GCB_POSTSET) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2920 { m_rep->delete_property_listener (nm, v, mode); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2921 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2922 void remove_all_listeners (void) { m_rep->remove_all_listeners (); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2923 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2924 void initialize (void) { m_rep->initialize (*this); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2925 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2926 void finalize (void) { m_rep->finalize (*this); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2927 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2928 void update (int id) { m_rep->update (*this, id); } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2929 |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
2930 void reset_default_properties (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2931 { m_rep->reset_default_properties (); } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
2932 |
7408 | 2933 private: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2934 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2935 std::shared_ptr<base_graphics_object> m_rep; |
7408 | 2936 }; |
2937 | |
2938 // --------------------------------------------------------------------- | |
2939 | |
7365 | 2940 class OCTINTERP_API root_figure : public base_graphics_object |
6874 | 2941 { |
2942 public: | |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2943 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2944 // The gh_manager constructor creates the single instance of |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2945 // the root_figure object. |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2946 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2947 friend class gh_manager; |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2948 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
2949 class OCTINTERP_API properties : public base_properties |
6874 | 2950 { |
2951 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2952 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2953 remove_child (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2954 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2955 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2956 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2957 const Matrix& parent_pix_size = Matrix ()) const; |
14357
e7c74f56cd03
fltk toolkit requires figure units to be "pixels". Bug # 35430.
Ben Abbott <bpabbott@mac.com>
parents:
14324
diff
changeset
|
2958 |
6874 | 2959 // See the genprops.awk script for an explanation of the |
2960 // properties declarations. | |
2961 | |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
2962 // FIXME: Properties that still don't have callbacks are: |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
2963 // monitorpositions, pointerlocation, pointerwindow. |
18764
89448a7523b2
Add some more callbacks for root properties (bug #42347).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18737
diff
changeset
|
2964 // Note that these properties are not yet used by Octave, so setting |
89448a7523b2
Add some more callbacks for root properties (bug #42347).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18737
diff
changeset
|
2965 // them will have no effect. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2966 |
20459
564e59f75ef8
Remove obsolete properties from root figure object.
Rik <rik@octave.org>
parents:
20428
diff
changeset
|
2967 // FIXME: The commandwindowsize property has been deprecated in Matlab |
564e59f75ef8
Remove obsolete properties from root figure object.
Rik <rik@octave.org>
parents:
20428
diff
changeset
|
2968 // and is now available through matlab.desktop.comandwindow.size. |
564e59f75ef8
Remove obsolete properties from root figure object.
Rik <rik@octave.org>
parents:
20428
diff
changeset
|
2969 // Until Octave has something similar, keep this property in root. |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
2970 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2971 // Programming note: Keep property list sorted if new ones are added. |
9778 | 2972 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
2973 BEGIN_PROPERTIES (root_figure, root) |
9778 | 2974 handle_property callbackobject Sr , graphics_handle () |
2975 array_property commandwindowsize r , Matrix (1, 2, 0) | |
7363 | 2976 handle_property currentfigure S , graphics_handle () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2977 string_property fixedwidthfontname , "Courier" |
21952
a5924b0cbf42
Return "Screensize" for root graphics property "MonitorPositions" (partial fix bug #48239).
Rik <rik@octave.org>
parents:
21948
diff
changeset
|
2978 array_property monitorpositions r , default_screensize () |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
2979 array_property pointerlocation , Matrix (1, 2, 0) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2980 double_property pointerwindow r , 0.0 |
8560
5cc594679cdc
get display characteristics from system
John W. Eaton <jwe@octave.org>
parents:
8465
diff
changeset
|
2981 double_property screendepth r , default_screendepth () |
9778 | 2982 double_property screenpixelsperinch r , default_screenpixelsperinch () |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
2983 array_property screensize r , default_screensize () |
9778 | 2984 bool_property showhiddenhandles , "off" |
25903
06c41d1ae5b1
Allow 'characters' as a value for the Units property of root object (bug #54742).
Rik <rik@octave.org>
parents:
25891
diff
changeset
|
2985 radio_property units U , "{pixels}|inches|centimeters|points|normalized|characters" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2986 // Hide base properties which don't make sense for root object |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2987 //radio_property beingdeleted h , "{off}|on" |
6874 | 2988 END_PROPERTIES |
2989 }; | |
2990 | |
2991 private: | |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2992 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2993 properties m_properties; |
6874 | 2994 |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2995 protected: |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2996 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2997 root_figure (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2998 : m_properties (0, graphics_handle ()), m_default_properties (), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2999 m_factory_properties (init_factory_properties ()) |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3000 { } |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3001 |
6874 | 3002 public: |
3003 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
3004 ~root_figure (void) = default; |
6874 | 3005 |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3006 root_figure (const root_figure&) = delete; |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3007 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3008 root_figure& operator = (const root_figure&) = delete; |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3009 |
6874 | 3010 void mark_modified (void) { } |
3011 | |
3012 void override_defaults (base_graphics_object& obj) | |
3013 { | |
3014 // Now override with our defaults. If the default_properties | |
3015 // list includes the properties for all defaults (line, | |
3016 // surface, etc.) then we don't have to know the type of OBJ | |
3017 // here, we just call its set function and let it decide which | |
3018 // properties from the list to use. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3019 obj.set_from_list (m_default_properties); |
6874 | 3020 } |
3021 | |
7189 | 3022 void set (const caseless_str& name, const octave_value& value) |
6874 | 3023 { |
3024 if (name.compare ("default", 7)) | |
3025 // strip "default", pass rest to function that will | |
3026 // parse the remainder and add the element to the | |
3027 // default_properties map. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3028 m_default_properties.set (name.substr (7), value); |
6874 | 3029 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3030 m_properties.set (name, value); |
6874 | 3031 } |
3032 | |
7189 | 3033 octave_value get (const caseless_str& name) const |
6874 | 3034 { |
3035 octave_value retval; | |
3036 | |
3037 if (name.compare ("default", 7)) | |
3038 return get_default (name.substr (7)); | |
3039 else if (name.compare ("factory", 7)) | |
3040 return get_factory_default (name.substr (7)); | |
3041 else | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3042 retval = m_properties.get (name); |
6874 | 3043 |
3044 return retval; | |
3045 } | |
3046 | |
7189 | 3047 octave_value get_default (const caseless_str& name) const |
6874 | 3048 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3049 octave_value retval = m_default_properties.lookup (name); |
6874 | 3050 |
3051 if (retval.is_undefined ()) | |
7847
40b16e04172a
Make backend switching work.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7846
diff
changeset
|
3052 { |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3053 // no default property found, use factory default |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3054 retval = m_factory_properties.lookup (name); |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3055 |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3056 if (retval.is_undefined ()) |
15468
6437fa7263dd
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
15195
diff
changeset
|
3057 error ("get: invalid default property '%s'", name.c_str ()); |
7847
40b16e04172a
Make backend switching work.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7846
diff
changeset
|
3058 } |
6874 | 3059 |
3060 return retval; | |
3061 } | |
3062 | |
7189 | 3063 octave_value get_factory_default (const caseless_str& name) const |
6874 | 3064 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3065 octave_value retval = m_factory_properties.lookup (name); |
6874 | 3066 |
3067 if (retval.is_undefined ()) | |
15468
6437fa7263dd
use ' instead of ` in error messages, warnings and most comments
John W. Eaton <jwe@octave.org>
parents:
15195
diff
changeset
|
3068 error ("get: invalid factory default property '%s'", name.c_str ()); |
6874 | 3069 |
3070 return retval; | |
3071 } | |
3072 | |
3073 octave_value get_defaults (void) const | |
3074 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3075 return m_default_properties.as_struct ("default"); |
6874 | 3076 } |
3077 | |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3078 property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3079 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3080 return m_default_properties; |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3081 } |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3082 |
6874 | 3083 octave_value get_factory_defaults (void) const |
3084 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3085 return m_factory_properties.as_struct ("factory"); |
6874 | 3086 } |
3087 | |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
3088 property_list get_factory_defaults_list (void) const |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
3089 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3090 return m_factory_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3091 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3092 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3093 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3094 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3095 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 3096 |
6874 | 3097 bool valid_object (void) const { return true; } |
3098 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3099 OCTINTERP_API void reset_default_properties (void); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3100 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3101 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3102 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3103 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3104 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3105 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3106 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3107 } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
3108 |
6874 | 3109 private: |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3110 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3111 property_list m_default_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3112 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3113 property_list m_factory_properties; |
6874 | 3114 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3115 static OCTINTERP_API property_list::plist_map_type |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3116 init_factory_properties (void); |
6874 | 3117 }; |
3118 | |
3119 // --------------------------------------------------------------------- | |
3120 | |
7365 | 3121 class OCTINTERP_API figure : public base_graphics_object |
6874 | 3122 { |
3123 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3124 |
7445 | 3125 class OCTINTERP_API properties : public base_properties |
6874 | 3126 { |
3127 public: | |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3128 void init_integerhandle (const octave_value& val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3129 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3130 m_integerhandle = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3131 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3132 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3133 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3134 remove_child (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3135 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3136 OCTINTERP_API void set_visible (const octave_value& val); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3137 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3138 OCTINTERP_API octave::graphics_toolkit get_toolkit (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3139 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3140 OCTINTERP_API void set_toolkit (const octave::graphics_toolkit& b); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3141 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3142 OCTINTERP_API void set___graphics_toolkit__ (const octave_value& val); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3143 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3144 OCTINTERP_API void adopt (const graphics_handle& h); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3145 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3146 OCTINTERP_API void set_position (const octave_value& val, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3147 bool do_notify_toolkit = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3148 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3149 OCTINTERP_API void set_outerposition (const octave_value& val, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3150 bool do_notify_toolkit = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3151 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3152 OCTINTERP_API Matrix bbox2position (const Matrix& bbox) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3153 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3154 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3155 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3156 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3157 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3158 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3159 set_boundingbox (const Matrix& bb, bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3160 bool do_notify_toolkit = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3161 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3162 OCTINTERP_API Matrix map_from_boundingbox (double x, double y) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3163 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3164 OCTINTERP_API Matrix map_to_boundingbox (double x, double y) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3165 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3166 OCTINTERP_API void update_units (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3167 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3168 OCTINTERP_API void update_paperunits (const caseless_str& old_paperunits); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3169 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3170 OCTINTERP_API std::string get_title (void) const; |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
3171 |
6874 | 3172 // See the genprops.awk script for an explanation of the |
3173 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3174 // Programming note: Keep property list sorted if new ones are added. |
6874 | 3175 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
3176 BEGIN_PROPERTIES (figure) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3177 array_property alphamap , Matrix (64, 1, 1) |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3178 callback_property buttondownfcn , Matrix () |
7363 | 3179 callback_property closerequestfcn , "closereq" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3180 color_property color , color_property (color_values (1, 1, 1), radio_values ("none")) |
20761
47cec845dd5a
Set default colormap to viridis
Carlo de Falco <carlo.defalco@polimi.it>
parents:
20756
diff
changeset
|
3181 array_property colormap , viridis_colormap () |
7363 | 3182 handle_property currentaxes S , graphics_handle () |
7405 | 3183 string_property currentcharacter r , "" |
3184 handle_property currentobject r , graphics_handle () | |
10517 | 3185 array_property currentpoint r , Matrix (2, 1, 0) |
7405 | 3186 bool_property dockcontrols , "off" |
11247
29b1f7d68665
make filename property of figure objects writable
John W. Eaton <jwe@octave.org>
parents:
11175
diff
changeset
|
3187 string_property filename , "" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3188 bool_property graphicssmoothing , "on" |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3189 bool_property integerhandle S , "on" |
21323
030d4d6c2b58
Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents:
21289
diff
changeset
|
3190 bool_property inverthardcopy , "on" |
7405 | 3191 callback_property keypressfcn , Matrix () |
3192 callback_property keyreleasefcn , Matrix () | |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3193 radio_property menubar , "{figure}|none" |
7405 | 3194 string_property name , "" |
25273
ac6ba9f2fa41
Add new Figure graphic property "Number" (bug #53343).
Rik <rik@octave.org>
parents:
25173
diff
changeset
|
3195 array_property number rG , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3196 radio_property nextplot , "{add}|new|replace|replacechildren" |
7405 | 3197 bool_property numbertitle , "on" |
13713
d99aa455296e
Add outerposition property to figure objects.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13703
diff
changeset
|
3198 array_property outerposition s , Matrix (1, 4, -1.0) |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3199 radio_property paperorientation U , "{portrait}|landscape" |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3200 array_property paperposition m , default_figure_paperposition () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3201 // FIXME: Matlab default is "auto", but this messes up hgsave BIST test. |
27432
1e79d913baaa
Change default figure property "paperpositionmode" to "auto" (bug #56916).
Rik <rik@octave.org>
parents:
27335
diff
changeset
|
3202 radio_property paperpositionmode au , "{auto}|manual" |
10991
9d3a7ad94ee6
Respect the units and paperunits figure properties and the units and fontunits axes properties
David Bateman <dbateman@free.fr>
parents:
10990
diff
changeset
|
3203 array_property papersize U , default_figure_papersize () |
9d3a7ad94ee6
Respect the units and paperunits figure properties and the units and fontunits axes properties
David Bateman <dbateman@free.fr>
parents:
10990
diff
changeset
|
3204 radio_property papertype SU , "{usletter}|uslegal|a0|a1|a2|a3|a4|a5|b0|b1|b2|b3|b4|b5|arch-a|arch-b|arch-c|arch-d|arch-e|a|b|c|d|e|tabloid|<custom>" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3205 radio_property paperunits Su , "{inches}|centimeters|normalized|points" |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26985
diff
changeset
|
3206 radio_property pointer , "crosshair|{arrow}|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand" |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26985
diff
changeset
|
3207 array_property pointershapecdata , Matrix (16, 16, 1) |
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26985
diff
changeset
|
3208 array_property pointershapehotspot , Matrix (1, 2, 1) |
13713
d99aa455296e
Add outerposition property to figure objects.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13703
diff
changeset
|
3209 array_property position s , default_figure_position () |
21367
0035733e4b3a
graphics.in.h: Make sure XXXmode properties switch to "manual" if XXX is set.
Rik <rik@octave.org>
parents:
21323
diff
changeset
|
3210 radio_property renderer m , "{opengl}|painters" |
7405 | 3211 radio_property renderermode , "{auto}|manual" |
3212 bool_property resize , "on" | |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
3213 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
3214 // and has been replaced with "sizechangedfcn" |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3215 // Eventually this will need to be hidden, and then removed. |
7405 | 3216 callback_property resizefcn , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3217 radio_property selectiontype , "{normal}|extend|alt|open" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3218 callback_property sizechangedfcn , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3219 radio_property toolbar , "{auto}|figure|none" |
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3220 radio_property units Su , "{pixels}|normalized|inches|centimeters|points|characters" |
7405 | 3221 callback_property windowbuttondownfcn , Matrix () |
3222 callback_property windowbuttonmotionfcn , Matrix () | |
3223 callback_property windowbuttonupfcn , Matrix () | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3224 callback_property windowkeypressfcn , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3225 callback_property windowkeyreleasefcn , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3226 callback_property windowscrollwheelfcn , Matrix () |
7405 | 3227 radio_property windowstyle , "{normal}|modal|docked" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3228 |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24637
diff
changeset
|
3229 // Overridden base property |
24637
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3230 // Property is not implemented for figures. |
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3231 // Hide it and set it to a default value that works. |
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3232 radio_property pickableparts h , "{visible}" |
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3233 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3234 // Octave-specific properties |
21684
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3235 mutable string_property __gl_extensions__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3236 mutable string_property __gl_renderer__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3237 mutable string_property __gl_vendor__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3238 mutable string_property __gl_version__ hr , "" |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24637
diff
changeset
|
3239 bool_property __gl_window__ h , "off" |
23774
41795b504a8b
don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents:
23763
diff
changeset
|
3240 string_property __graphics_toolkit__ hs , default_graphics_toolkit () |
13699
dd9b32af0a01
Implement guidata/guihandles.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13324
diff
changeset
|
3241 any_property __guidata__ h , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3242 radio_property __mouse_mode__ hS , "{none}|pan|rotate|select|text|zoom" |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24637
diff
changeset
|
3243 bool_property __printing__ h , "off" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3244 any_property __pan_mode__ h , Matrix () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3245 any_property __plot_stream__ h , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3246 any_property __rotate_mode__ h , Matrix () |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3247 any_property __zoom_mode__ h , Matrix () |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25867
diff
changeset
|
3248 double_property __device_pixel_ratio__ hU , 1.0 |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3249 |
6874 | 3250 END_PROPERTIES |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
3251 |
7363 | 3252 protected: |
3253 void init (void) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3254 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3255 m_alphamap.add_constraint (dim_vector (-1, 1)); |
30053
0b67964031be
allow figure alphamap property to be a column vector (bug #61085)
John W. Eaton <jwe@octave.org>
parents:
30040
diff
changeset
|
3256 m_alphamap.add_constraint (dim_vector (1, -1)); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3257 m_colormap.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3258 m_colormap.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3259 m_outerposition.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3260 m_outerposition.add_constraint (FINITE); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3261 m_paperposition.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3262 m_paperposition.add_constraint (FINITE); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3263 m_papersize.add_constraint (dim_vector (1, 2)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3264 m_papersize.add_constraint (FINITE); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3265 m_pointershapecdata.add_constraint (dim_vector (16, 16)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3266 m_pointershapecdata.add_constraint (dim_vector (32, 32)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3267 m_pointershapehotspot.add_constraint (dim_vector (1, 2)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3268 m_position.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3269 m_position.add_constraint (FINITE); |
27709
0a84a7d0998d
don't declare figure::properties::toolkit as mutable
John W. Eaton <jwe@octave.org>
parents:
27698
diff
changeset
|
3270 |
0a84a7d0998d
don't declare figure::properties::toolkit as mutable
John W. Eaton <jwe@octave.org>
parents:
27698
diff
changeset
|
3271 init_toolkit (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3272 } |
7408 | 3273 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3274 private: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3275 OCTINTERP_API Matrix get_auto_paperposition (void); |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3276 |
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3277 void update_paperpositionmode (void) |
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3278 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3279 if (m_paperpositionmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3280 m_paperposition.set (get_auto_paperposition ()); |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3281 } |
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3282 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3283 OCTINTERP_API void update_handlevisibility (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3284 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3285 OCTINTERP_API void init_toolkit (void); |
27709
0a84a7d0998d
don't declare figure::properties::toolkit as mutable
John W. Eaton <jwe@octave.org>
parents:
27698
diff
changeset
|
3286 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3287 octave::graphics_toolkit m_toolkit; |
6874 | 3288 }; |
3289 | |
3290 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3291 properties m_properties; |
6874 | 3292 |
3293 public: | |
3294 figure (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3295 : base_graphics_object (), m_properties (mh, p), m_default_properties () |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
3296 { } |
6874 | 3297 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
3298 ~figure (void) = default; |
6874 | 3299 |
3300 void override_defaults (base_graphics_object& obj) | |
3301 { | |
26878
3c7c5b7c3044
doc: Refer to "root object" rather than "root figure object".
Rik <rik@octave.org>
parents:
26520
diff
changeset
|
3302 // Allow parent (root object) to override first (properties knows how |
6874 | 3303 // to find the parent object). |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3304 m_properties.override_defaults (obj); |
6874 | 3305 |
3306 // Now override with our defaults. If the default_properties | |
3307 // list includes the properties for all defaults (line, | |
3308 // surface, etc.) then we don't have to know the type of OBJ | |
3309 // here, we just call its set function and let it decide which | |
3310 // properties from the list to use. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3311 obj.set_from_list (m_default_properties); |
6874 | 3312 } |
3313 | |
7189 | 3314 void set (const caseless_str& name, const octave_value& value) |
6874 | 3315 { |
3316 if (name.compare ("default", 7)) | |
3317 // strip "default", pass rest to function that will | |
3318 // parse the remainder and add the element to the | |
3319 // default_properties map. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3320 m_default_properties.set (name.substr (7), value); |
6874 | 3321 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3322 m_properties.set (name, value); |
6874 | 3323 } |
3324 | |
7189 | 3325 octave_value get (const caseless_str& name) const |
6874 | 3326 { |
3327 octave_value retval; | |
3328 | |
3329 if (name.compare ("default", 7)) | |
3330 retval = get_default (name.substr (7)); | |
3331 else | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3332 retval = m_properties.get (name); |
6874 | 3333 |
3334 return retval; | |
3335 } | |
3336 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3337 OCTINTERP_API octave_value get_default (const caseless_str& name) const; |
6874 | 3338 |
3339 octave_value get_defaults (void) const | |
3340 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3341 return m_default_properties.as_struct ("default"); |
6874 | 3342 } |
3343 | |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3344 property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3345 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3346 return m_default_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3347 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3348 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3349 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3350 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3351 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 3352 |
6874 | 3353 bool valid_object (void) const { return true; } |
3354 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3355 OCTINTERP_API void reset_default_properties (void); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3356 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3357 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3358 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3359 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3360 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3361 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3362 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
3363 } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
3364 |
6874 | 3365 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3366 property_list m_default_properties; |
6874 | 3367 }; |
3368 | |
3369 // --------------------------------------------------------------------- | |
3370 | |
7435 | 3371 class OCTINTERP_API graphics_xform |
3372 { | |
3373 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3374 |
7435 | 3375 graphics_xform (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3376 : m_xform (xform_eye ()), m_xform_inv (xform_eye ()), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3377 m_sx ("linear"), m_sy ("linear"), m_sz ("linear"), m_zlim (1, 2, 0.0) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3378 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3379 m_zlim(1) = 1.0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3380 } |
7435 | 3381 |
3382 graphics_xform (const Matrix& xm, const Matrix& xim, | |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
3383 const scaler& x, const scaler& y, const scaler& z, |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
3384 const Matrix& zl) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3385 : m_xform (xm), m_xform_inv (xim), m_sx (x), m_sy (y), m_sz (z), m_zlim (zl) { } |
7435 | 3386 |
3387 graphics_xform (const graphics_xform& g) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3388 : m_xform (g.m_xform), m_xform_inv (g.m_xform_inv), m_sx (g.m_sx), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3389 m_sy (g.m_sy), m_sz (g.m_sz), m_zlim (g.m_zlim) { } |
7435 | 3390 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
3391 ~graphics_xform (void) = default; |
7435 | 3392 |
3393 graphics_xform& operator = (const graphics_xform& g) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3394 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3395 m_xform = g.m_xform; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3396 m_xform_inv = g.m_xform_inv; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3397 m_sx = g.m_sx; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3398 m_sy = g.m_sy; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3399 m_sz = g.m_sz; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3400 m_zlim = g.m_zlim; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3401 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3402 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3403 } |
7435 | 3404 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3405 static OCTINTERP_API ColumnVector xform_vector (double x, double y, double z); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3406 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3407 static OCTINTERP_API Matrix xform_eye (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3408 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3409 OCTINTERP_API ColumnVector |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3410 transform (double x, double y, double z, bool use_scale = true) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3411 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3412 OCTINTERP_API ColumnVector |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3413 untransform (double x, double y, double z, bool use_scale = true) const; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
3414 |
10553 | 3415 ColumnVector untransform (double x, double y, bool use_scale = true) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3416 { return untransform (x, y, (m_zlim(0)+m_zlim(1))/2, use_scale); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3417 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3418 Matrix xscale (const Matrix& m) const { return m_sx.scale (m); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3419 Matrix yscale (const Matrix& m) const { return m_sy.scale (m); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3420 Matrix zscale (const Matrix& m) const { return m_sz.scale (m); } |
7435 | 3421 |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
3422 Matrix scale (const Matrix& m) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3423 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3424 bool has_z = (m.columns () > 2); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3425 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3426 if (m_sx.is_linear () && m_sy.is_linear () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3427 && (! has_z || m_sz.is_linear ())) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3428 return m; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3429 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3430 Matrix retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3431 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3432 int r = m.rows (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3433 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3434 for (int i = 0; i < r; i++) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3435 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3436 retval(i,0) = m_sx.scale (m(i,0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3437 retval(i,1) = m_sy.scale (m(i,1)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3438 if (has_z) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3439 retval(i,2) = m_sz.scale (m(i,2)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3440 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3441 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3442 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3443 } |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
3444 |
7435 | 3445 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3446 Matrix m_xform; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3447 Matrix m_xform_inv; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3448 scaler m_sx, m_sy, m_sz; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3449 Matrix m_zlim; |
7435 | 3450 }; |
3451 | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3452 enum |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3453 { |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3454 AXE_ANY_DIR = 0, |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3455 AXE_DEPTH_DIR = 1, |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3456 AXE_HORZ_DIR = 2, |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3457 AXE_VERT_DIR = 3 |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3458 }; |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3459 |
7365 | 3460 class OCTINTERP_API axes : public base_graphics_object |
6874 | 3461 { |
3462 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3463 |
7445 | 3464 class OCTINTERP_API properties : public base_properties |
6874 | 3465 { |
3466 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3467 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3468 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3469 set_defaults (base_graphics_object& obj, const std::string& mode); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3470 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3471 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3472 remove_child (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3473 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3474 OCTINTERP_API void adopt (const graphics_handle& h); |
25423
13b1b9a0d9c5
Move management of lights in axes from GL to graphics backend.
Markus Mützel <markus.muetzel@gmx.de>
parents:
25418
diff
changeset
|
3475 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3476 const scaler& get_x_scaler (void) const { return m_sx; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3477 const scaler& get_y_scaler (void) const { return m_sy; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3478 const scaler& get_z_scaler (void) const { return m_sz; } |
7427 | 3479 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3480 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3481 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3482 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3483 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3484 get_extent (bool with_text = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3485 bool only_text_height=false) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3486 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3487 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3488 get___fontsize_points__ (double box_pix_height = 0) const; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
3489 |
7828
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
3490 void update_boundingbox (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3491 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3492 if (units_is ("normalized")) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3493 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3494 sync_positions (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3495 base_properties::update_boundingbox (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3496 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3497 } |
7828
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
3498 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3499 OCTINTERP_API void update_camera (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3500 OCTINTERP_API void update_axes_layout (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3501 OCTINTERP_API void update_aspectratios (void); |
7427 | 3502 void update_transform (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3503 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3504 update_aspectratios (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3505 update_camera (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3506 update_axes_layout (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3507 } |
7427 | 3508 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3509 OCTINTERP_API void sync_positions (void); |
17098
786bcce466e9
Initialize the tightinset during initialization of axes.
Ben Abbott <bpabbott@mac.com>
parents:
17011
diff
changeset
|
3510 |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3511 // Redirect calls to "activepositionproperty" to "positionconstraint". |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3512 |
28693
2bb050267d74
maint: Remove trailing spaces from code base.
Rik <rik@octave.org>
parents:
28414
diff
changeset
|
3513 std::string get_activepositionproperty (void) const |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3514 { |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3515 std::string cur_val; |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3516 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3517 if (m_positionconstraint.is ("innerposition")) |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3518 cur_val = "position"; |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3519 else |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3520 cur_val = "outerposition"; |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3521 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3522 return cur_val; |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3523 } |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3524 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3525 void set_activepositionproperty (const octave_value& val) |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3526 { |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3527 // call set method to validate the input |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3528 m_activepositionproperty.set (val); |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3529 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3530 if (val.char_matrix_value ().row_as_string (0) == "position") |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3531 set_positionconstraint ("innerposition"); |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3532 else |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3533 set_positionconstraint (val); |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3534 } |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3535 |
28302
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3536 // Redirect calls to "innerposition" to "position". |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3537 |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3538 octave_value get_innerposition (void) const |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3539 { |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3540 return get_position (); |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3541 } |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3542 |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3543 void set_innerposition (const octave_value& val) |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3544 { |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3545 set_position (val); |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3546 } |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3547 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3548 OCTINTERP_API void update_autopos (const std::string& elem_type); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3549 OCTINTERP_API void update_xlabel_position (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3550 OCTINTERP_API void update_ylabel_position (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3551 OCTINTERP_API void update_zlabel_position (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3552 OCTINTERP_API void update_title_position (void); |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
3553 |
7435 | 3554 graphics_xform get_transform (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3555 { return graphics_xform (m_x_render, m_x_render_inv, m_sx, m_sy, m_sz, m_x_zlim); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3556 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3557 Matrix get_transform_matrix (void) const { return m_x_render; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3558 Matrix get_inverse_transform_matrix (void) const { return m_x_render_inv; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3559 Matrix get_opengl_matrix_1 (void) const { return m_x_gl_mat1; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3560 Matrix get_opengl_matrix_2 (void) const { return m_x_gl_mat2; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3561 Matrix get_transform_zlim (void) const { return m_x_zlim; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3562 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3563 int get_xstate (void) const { return m_xstate; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3564 int get_ystate (void) const { return m_ystate; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3565 int get_zstate (void) const { return m_zstate; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3566 double get_xPlane (void) const { return m_xPlane; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3567 double get_xPlaneN (void) const { return m_xPlaneN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3568 double get_yPlane (void) const { return m_yPlane; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3569 double get_yPlaneN (void) const { return m_yPlaneN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3570 double get_zPlane (void) const { return m_zPlane; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3571 double get_zPlaneN (void) const { return m_zPlaneN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3572 double get_xpTick (void) const { return m_xpTick; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3573 double get_xpTickN (void) const { return m_xpTickN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3574 double get_ypTick (void) const { return m_ypTick; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3575 double get_ypTickN (void) const { return m_ypTickN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3576 double get_zpTick (void) const { return m_zpTick; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3577 double get_zpTickN (void) const { return m_zpTickN; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3578 double get_x_min (void) const { return std::min (m_xPlane, m_xPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3579 double get_x_max (void) const { return std::max (m_xPlane, m_xPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3580 double get_y_min (void) const { return std::min (m_yPlane, m_yPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3581 double get_y_max (void) const { return std::max (m_yPlane, m_yPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3582 double get_z_min (void) const { return std::min (m_zPlane, m_zPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3583 double get_z_max (void) const { return std::max (m_zPlane, m_zPlaneN); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3584 double get_fx (void) const { return m_fx; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3585 double get_fy (void) const { return m_fy; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3586 double get_fz (void) const { return m_fz; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3587 double get_xticklen (void) const { return m_xticklen; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3588 double get_yticklen (void) const { return m_yticklen; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3589 double get_zticklen (void) const { return m_zticklen; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3590 double get_xtickoffset (void) const { return m_xtickoffset; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3591 double get_ytickoffset (void) const { return m_ytickoffset; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3592 double get_ztickoffset (void) const { return m_ztickoffset; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3593 bool get_x2Dtop (void) const { return m_x2Dtop; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3594 bool get_y2Dright (void) const { return m_y2Dright; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3595 bool get_layer2Dtop (void) const { return m_layer2Dtop; } |
23859
7148b237f94f
Fix regression introduced by cset 06805aabbdd1 (bug #50750).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23803
diff
changeset
|
3596 bool get_is2D (bool include_kids = false) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3597 { return (include_kids ? (m_is2D && ! m_has3Dkids) : m_is2D); } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3598 void set_has3Dkids (bool val) { m_has3Dkids = val; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3599 bool get_xySym (void) const { return m_xySym; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3600 bool get_xyzSym (void) const { return m_xyzSym; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3601 bool get_zSign (void) const { return m_zSign; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3602 bool get_nearhoriz (void) const { return m_nearhoriz; } |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3603 |
7842
1357bcae6e29
added pixel<->coord transform in axes and use it for display of cursor
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7836
diff
changeset
|
3604 ColumnVector pixel2coord (double px, double py) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3605 { return get_transform ().untransform (px, py, (m_x_zlim(0)+m_x_zlim(1))/2); } |
7842
1357bcae6e29
added pixel<->coord transform in axes and use it for display of cursor
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7836
diff
changeset
|
3606 |
1357bcae6e29
added pixel<->coord transform in axes and use it for display of cursor
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7836
diff
changeset
|
3607 ColumnVector coord2pixel (double x, double y, double z) const |
1357bcae6e29
added pixel<->coord transform in axes and use it for display of cursor
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7836
diff
changeset
|
3608 { return get_transform ().transform (x, y, z); } |
1357bcae6e29
added pixel<->coord transform in axes and use it for display of cursor
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7836
diff
changeset
|
3609 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3610 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3611 zoom_about_point (const std::string& mode, double x, double y, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3612 double factor, bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3613 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3614 zoom (const std::string& mode, double factor, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3615 bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3616 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3617 zoom (const std::string& mode, const Matrix& xl, const Matrix& yl, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3618 bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3619 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3620 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3621 translate_view (const std::string& mode, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3622 double x0, double x1, double y0, double y1, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3623 bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3624 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3625 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3626 pan (const std::string& mode, double factor, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3627 bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3628 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3629 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3630 rotate3d (double x0, double x1, double y0, double y1, |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19659
diff
changeset
|
3631 bool push_to_zoom_stack = true); |
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19659
diff
changeset
|
3632 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3633 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3634 rotate_view (double delta_az, double delta_el, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3635 bool push_to_zoom_stack = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3636 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3637 OCTINTERP_API void unzoom (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3638 OCTINTERP_API void update_handlevisibility (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3639 OCTINTERP_API void push_zoom_stack (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3640 OCTINTERP_API void clear_zoom_stack (bool do_unzoom = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3641 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3642 OCTINTERP_API void update_units (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3643 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3644 OCTINTERP_API void update_font (std::string prop = ""); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3645 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3646 OCTINTERP_API void update_fontunits (const caseless_str& old_fontunits); |
10991
9d3a7ad94ee6
Respect the units and paperunits figure properties and the units and fontunits axes properties
David Bateman <dbateman@free.fr>
parents:
10990
diff
changeset
|
3647 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3648 void increase_num_lights (void) { m_num_lights++; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3649 void decrease_num_lights (void) { m_num_lights--; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3650 unsigned int get_num_lights (void) const { return m_num_lights; } |
25423
13b1b9a0d9c5
Move management of lights in axes from GL to graphics backend.
Markus Mützel <markus.muetzel@gmx.de>
parents:
25418
diff
changeset
|
3651 |
7427 | 3652 private: |
23401
e0c20a22da7e
eliminate some errors exposed by -fsanitize=undefined
John W. Eaton <jwe@octave.org>
parents:
23396
diff
changeset
|
3653 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3654 scaler m_sx = scaler (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3655 scaler m_sy = scaler (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3656 scaler m_sz = scaler (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3657 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3658 Matrix m_x_render = Matrix (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3659 Matrix m_x_render_inv = Matrix (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3660 Matrix m_x_gl_mat1 = Matrix (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3661 Matrix m_x_gl_mat2 = Matrix (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3662 Matrix m_x_zlim = Matrix (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3663 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3664 std::list<octave_value> m_zoom_stack = std::list<octave_value> (); |
7427 | 3665 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3666 // Axes layout data |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3667 int m_xstate = 0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3668 int m_ystate = 0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3669 int m_zstate = 0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3670 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3671 double m_xPlane = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3672 double m_yPlane = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3673 double m_zPlane = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3674 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3675 double m_xPlaneN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3676 double m_yPlaneN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3677 double m_zPlaneN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3678 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3679 double m_xpTick = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3680 double m_ypTick = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3681 double m_zpTick = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3682 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3683 double m_xpTickN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3684 double m_ypTickN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3685 double m_zpTickN = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3686 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3687 double m_fx = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3688 double m_fy = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3689 double m_fz = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3690 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3691 double m_xticklen = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3692 double m_yticklen = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3693 double m_zticklen = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3694 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3695 double m_xtickoffset = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3696 double m_ytickoffset = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3697 double m_ztickoffset = 0.0; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3698 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3699 bool m_x2Dtop = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3700 bool m_y2Dright = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3701 bool m_layer2Dtop = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3702 bool m_is2D = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3703 bool m_has3Dkids = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3704 bool m_xySym = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3705 bool m_xyzSym = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3706 bool m_zSign = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3707 bool m_nearhoriz = false; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3708 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3709 unsigned int m_num_lights = 0; |
25423
13b1b9a0d9c5
Move management of lights in axes from GL to graphics backend.
Markus Mützel <markus.muetzel@gmx.de>
parents:
25418
diff
changeset
|
3710 |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
3711 // Text renderer, used for calculation of text (tick labels) size |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3712 octave::text_renderer m_txt_renderer; |
12777
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
3713 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3714 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3715 set_text_child (handle_property& h, const std::string& who, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3716 const octave_value& v); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3717 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3718 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3719 delete_text_child (handle_property& h, bool from_root = false); |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
3720 |
6874 | 3721 // See the genprops.awk script for an explanation of the |
3722 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3723 // Programming note: Keep property list sorted if new ones are added. |
8222
11badf6c9e9f
__go_draw_axes__.m: Support axes interpreter poperty for tick labels.
Ben Abbott <bpabbott@mac.com>
parents:
8210
diff
changeset
|
3724 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
3725 BEGIN_PROPERTIES (axes) |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3726 radio_property activepositionproperty gsh , "{outerposition}|position" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3727 row_vector_property alim m , default_lim () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3728 radio_property alimmode , "{auto}|manual" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3729 // FIXME: not yet implemented |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3730 array_property alphamap , Matrix () |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3731 radio_property alphascale , "{linear}|log" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3732 color_property ambientlightcolor , color_values (1, 1, 1) |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3733 bool_property box u , "off" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3734 radio_property boxstyle , "{back}|full" |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3735 row_vector_property cameraposition mu , Matrix (1, 3, 0.0) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3736 radio_property camerapositionmode u , "{auto}|manual" |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3737 row_vector_property cameratarget mu , Matrix (1, 3, 0.0) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3738 radio_property cameratargetmode u , "{auto}|manual" |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3739 row_vector_property cameraupvector mu , Matrix (1, 3, 0.0) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3740 radio_property cameraupvectormode u , "{auto}|manual" |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3741 double_property cameraviewangle mu , 6.6086 |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3742 radio_property cameraviewanglemode u , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3743 row_vector_property clim m , default_lim () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3744 radio_property climmode al , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3745 radio_property clippingstyle , "{3dbox}|rectangle" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3746 color_property color , color_property (color_values (1, 1, 1), radio_values ("none")) |
23524
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
3747 array_property colormap sg , Matrix () |
7363 | 3748 array_property colororder , default_colororder () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3749 double_property colororderindex , 1.0 |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3750 radio_property colorscale , "{linear}|log" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3751 array_property currentpoint , Matrix (2, 3, 0.0) |
23067
6825dd6bbe39
Change some axes properties to row_vector_property (bug #50048).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23057
diff
changeset
|
3752 row_vector_property dataaspectratio mu , Matrix (1, 3, 1.0) |
11167
51ac3a08e53c
Fix {d,pb}aspectratios for OpenGL backends.
Konstantinos Poulios <logari81@googlemail.com>
parents:
11163
diff
changeset
|
3753 radio_property dataaspectratiomode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3754 radio_property fontangle u , "{normal}|italic" |
12777
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
3755 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3756 double_property fontsize mu , 10 |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3757 // FIXME: not yet implemented |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3758 radio_property fontsizemode , "{auto}|manual" |
26858
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
3759 bool_property fontsmoothing u , "on" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3760 radio_property fontunits SU , "{points}|inches|centimeters|normalized|pixels" |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3761 radio_property fontweight u , "{normal}|bold" |
21367
0035733e4b3a
graphics.in.h: Make sure XXXmode properties switch to "manual" if XXX is set.
Rik <rik@octave.org>
parents:
21323
diff
changeset
|
3762 double_property gridalpha m , 0.15 |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3763 radio_property gridalphamode , "{auto}|manual" |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
3764 color_property gridcolor m , color_property (color_values (0.15, 0.15, 0.15), radio_values ("none")) |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3765 radio_property gridcolormode , "{auto}|manual" |
22056
05ad23810150
Use default gridlinestyle of '-' for Matlab compatibility.
Rik <rik@octave.org>
parents:
22022
diff
changeset
|
3766 radio_property gridlinestyle , "{-}|--|:|-.|none" |
28302
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3767 array_property innerposition sg , default_axes_position () |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3768 // FIXME: Should be an array of "interaction objects". Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3769 any_property interactions r , Matrix () |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
3770 double_property labelfontsizemultiplier u , 1.1 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3771 radio_property layer u , "{bottom}|top" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3772 // FIXME: Should be a "layoutoptions" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3773 handle_property layout r , graphics_handle () |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3774 // FIXME: Should be a "legend" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3775 handle_property legend r , graphics_handle () |
17382
50b2863d10a6
Create Matlab compatible linestyleorder char matrices (bug #34906)
Rik <rik@octave.org>
parents:
17104
diff
changeset
|
3776 // FIXME: should be kind of string array. |
50b2863d10a6
Create Matlab compatible linestyleorder char matrices (bug #34906)
Rik <rik@octave.org>
parents:
17104
diff
changeset
|
3777 any_property linestyleorder S , "-" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3778 double_property linestyleorderindex , 1.0 |
7403 | 3779 double_property linewidth , 0.5 |
21367
0035733e4b3a
graphics.in.h: Make sure XXXmode properties switch to "manual" if XXX is set.
Rik <rik@octave.org>
parents:
21323
diff
changeset
|
3780 double_property minorgridalpha m , 0.25 |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3781 radio_property minorgridalphamode , "{auto}|manual" |
21367
0035733e4b3a
graphics.in.h: Make sure XXXmode properties switch to "manual" if XXX is set.
Rik <rik@octave.org>
parents:
21323
diff
changeset
|
3782 color_property minorgridcolor m , color_property (color_values (0.1, 0.1, 0.1), radio_values ("none")) |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3783 radio_property minorgridcolormode , "{auto}|manual" |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3784 radio_property minorgridlinestyle , "{:}|-|--|-.|none" |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3785 radio_property nextplot , "{replace}|add|replacechildren" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3786 double_property nextseriesindex r , 1.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3787 array_property outerposition u , default_axes_outerposition () |
23067
6825dd6bbe39
Change some axes properties to row_vector_property (bug #50048).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23057
diff
changeset
|
3788 row_vector_property plotboxaspectratio mu , Matrix (1, 3, 1.0) |
11167
51ac3a08e53c
Fix {d,pb}aspectratios for OpenGL backends.
Konstantinos Poulios <logari81@googlemail.com>
parents:
11163
diff
changeset
|
3789 radio_property plotboxaspectratiomode u , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3790 array_property position u , default_axes_position () |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3791 radio_property positionconstraint , "{outerposition}|innerposition" |
18819
92e9d4710f78
Fix typo in graphics.in.h (bug #42535).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents:
17822
diff
changeset
|
3792 radio_property projection , "{orthographic}|perspective" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3793 radio_property sortmethod , "{depth}|childorder" |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3794 radio_property tickdir mu , "{in}|out" |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3795 radio_property tickdirmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3796 // FIXME: Added recently to Matlab, should replace interpreter property. |
26055
8b9e6a39e0a2
Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26045
diff
changeset
|
3797 radio_property ticklabelinterpreter u , "{tex}|latex|none" |
14391
c9ec21bef97a
Fix ticklength updating (bug # 35438).
Ben Abbott <bpabbott@mac.com>
parents:
14357
diff
changeset
|
3798 array_property ticklength u , default_axes_ticklength () |
7403 | 3799 array_property tightinset r , Matrix (1, 4, 0.0) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3800 handle_property title SOf , make_graphics_handle ("text", m___myhandle__, false, false, false) |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
3801 double_property titlefontsizemultiplier u , 1.1 |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
3802 radio_property titlefontweight u , "{bold}|normal" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3803 // FIXME: Should be a "axestoolbar" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3804 handle_property toolbar r , graphics_handle () |
10991
9d3a7ad94ee6
Respect the units and paperunits figure properties and the units and fontunits axes properties
David Bateman <dbateman@free.fr>
parents:
10990
diff
changeset
|
3805 radio_property units SU , "{normalized}|inches|centimeters|points|pixels|characters" |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
3806 array_property view u , default_axes_view () |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3807 // FIXME: Should be a "ruler" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3808 handle_property xaxis r , graphics_handle () |
24976
47f25e164ab1
Delete graphics properties or allowed values scheduled for deprecation in 4.6
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24795
diff
changeset
|
3809 radio_property xaxislocation u , "{bottom}|top|origin" |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
3810 color_property xcolor mu , color_property (color_values (0.15, 0.15, 0.15), radio_values ("none")) |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3811 radio_property xcolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3812 radio_property xdir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3813 bool_property xgrid , "off" |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3814 handle_property xlabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3815 row_vector_property xlim mu , default_lim () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3816 radio_property xlimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3817 bool_property xminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3818 bool_property xminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3819 radio_property xscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3820 row_vector_property xtick mu , default_axes_tick () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3821 // FIXME: should be kind of string array. |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3822 any_property xticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3823 radio_property xticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3824 double_property xticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3825 radio_property xtickmode u , "{auto}|manual" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3826 // FIXME: Should be a "ruler" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3827 handle_property yaxis r , graphics_handle () |
24976
47f25e164ab1
Delete graphics properties or allowed values scheduled for deprecation in 4.6
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24795
diff
changeset
|
3828 radio_property yaxislocation u , "{left}|right|origin" |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
3829 color_property ycolor mu , color_property (color_values (0.15, 0.15, 0.15), radio_values ("none")) |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3830 radio_property ycolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3831 radio_property ydir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3832 bool_property ygrid , "off" |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3833 handle_property ylabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3834 row_vector_property ylim mu , default_lim () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3835 radio_property ylimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3836 bool_property yminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3837 bool_property yminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3838 radio_property yscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3839 row_vector_property ytick mu , default_axes_tick () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3840 any_property yticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3841 radio_property yticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3842 double_property yticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3843 radio_property ytickmode u , "{auto}|manual" |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3844 // FIXME: Should be a "ruler" object. Make it read-only for now. |
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3845 handle_property zaxis r , graphics_handle () |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
3846 color_property zcolor mu , color_property (color_values (0.15, 0.15, 0.15), radio_values ("none")) |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3847 radio_property zcolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3848 radio_property zdir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3849 bool_property zgrid , "off" |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3850 handle_property zlabel SOf , make_graphics_handle ("text", m___myhandle__, false, false, false) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3851 row_vector_property zlim mu , default_lim () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3852 radio_property zlimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3853 bool_property zminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3854 bool_property zminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3855 radio_property zscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3856 row_vector_property ztick mu , default_axes_tick () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3857 any_property zticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3858 radio_property zticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3859 double_property zticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3860 radio_property ztickmode u , "{auto}|manual" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3861 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3862 // Octave-specific properties |
24501
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
3863 array_property __colormap__ hu , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3864 double_property mousewheelzoom , 0.5 |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3865 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3866 // hidden properties for alignment of subplots |
22622
4191f8b5070c
Add '__' to start/end of hidden Octave-only graphics properties (bug #49205).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
3867 radio_property __autopos_tag__ h , "{none}|subplot" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3868 // hidden properties for inset |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3869 array_property looseinset hu , Matrix (1, 4, 0.0) |
12126
85f9a5b211fd
restructuring draw_axes, enabling minor ticks/grid in fltk, closing bug 31800
Konstantinos Poulios <logari81@googlemail.com>
parents:
11586
diff
changeset
|
3870 // hidden properties for minor ticks |
22623
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3871 row_vector_property xminortickvalues h , Matrix () |
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3872 row_vector_property yminortickvalues h , Matrix () |
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3873 row_vector_property zminortickvalues h , Matrix () |
19047
1288a2f27769
Handle non "points" fontunits properties (bug # 40158)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19044
diff
changeset
|
3874 // hidden property for text rendering |
22622
4191f8b5070c
Add '__' to start/end of hidden Octave-only graphics properties (bug #49205).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
3875 double_property __fontsize_points__ hgr , 0 |
7189 | 3876 END_PROPERTIES |
6874 | 3877 |
7363 | 3878 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3879 OCTINTERP_API void init (void); |
7427 | 3880 |
3881 private: | |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3882 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3883 std::string |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3884 get_scale (const std::string& scale, const Matrix& lims) |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3885 { |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3886 std::string retval = scale; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3887 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3888 if (scale == "log" && lims.numel () > 1 && lims(0) < 0 && lims(1) < 0) |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3889 retval = "neglog"; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3890 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3891 return retval; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3892 } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3893 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3894 void update_xscale (void) |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3895 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3896 m_sx = get_scale (get_xscale (), m_xlim.get ().matrix_value ()); |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3897 } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3898 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3899 void update_yscale (void) |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3900 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3901 m_sy = get_scale (get_yscale (), m_ylim.get ().matrix_value ()); |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3902 } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3903 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3904 void update_zscale (void) |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3905 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3906 m_sz = get_scale (get_zscale (), m_zlim.get ().matrix_value ()); |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3907 } |
7427 | 3908 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3909 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3910 update_label_color (handle_property label, color_property col); |
23001
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3911 void update_xcolor (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3912 { update_label_color (m_xlabel, m_xcolor); } |
23001
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3913 |
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3914 void update_ycolor (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3915 { update_label_color (m_ylabel, m_ycolor); } |
23001
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3916 |
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3917 void update_zcolor (void) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3918 { update_label_color (m_zlabel, m_zcolor); } |
23001
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3919 |
12440
2ed62b9f949e
synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12433
diff
changeset
|
3920 void update_view (void) { sync_positions (); } |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3921 |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3922 void update_cameraposition (void) { update_transform (); } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3923 void update_cameratarget (void) { update_transform (); } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3924 void update_cameraupvector (void) { update_transform (); } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3925 void update_cameraviewangle (void) { update_transform (); } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3926 |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3927 void update_camerapositionmode (void) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3928 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3929 if (camerapositionmode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3930 update_cameraposition (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3931 } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3932 void update_cameratargetmode (void) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3933 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3934 if (cameratargetmode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3935 update_cameratarget (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3936 } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3937 void update_cameraupvectormode (void) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3938 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3939 if (cameraupvectormode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3940 update_cameraupvector (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3941 } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3942 void update_cameraviewanglemode (void) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3943 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3944 if (cameraviewanglemode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3945 update_cameraviewangle (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3946 } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3947 |
12441
b932ae4381da
improvements in synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12440
diff
changeset
|
3948 void update_dataaspectratio (void) { sync_positions (); } |
b932ae4381da
improvements in synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12440
diff
changeset
|
3949 void update_dataaspectratiomode (void) { sync_positions (); } |
b932ae4381da
improvements in synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12440
diff
changeset
|
3950 void update_plotboxaspectratio (void) { sync_positions (); } |
b932ae4381da
improvements in synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12440
diff
changeset
|
3951 void update_plotboxaspectratiomode (void) { sync_positions (); } |
7427 | 3952 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3953 void update_layer (void) { update_axes_layout (); } |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3954 void update_box (void) |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3955 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3956 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3957 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3958 xaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3959 m_yscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3960 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3961 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3962 m_xlim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3963 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3964 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3965 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3966 m_xscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3967 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3968 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3969 m_ylim); |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3970 } |
12503
2c66314447f1
update axis label position after axis location changes
Konstantinos Poulios <logari81@gmail.com>
parents:
12496
diff
changeset
|
3971 void update_yaxislocation (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3972 { |
19652
5b4fd7ebcfc6
Update "tightinset" when "x/yaxislocation" is changed
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19597
diff
changeset
|
3973 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3974 update_axes_layout (); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3975 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3976 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3977 xaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3978 m_yscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3979 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3980 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3981 m_xlim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3982 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3983 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3984 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3985 m_xscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3986 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3987 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3988 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3989 update_ylabel_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3990 } |
12503
2c66314447f1
update axis label position after axis location changes
Konstantinos Poulios <logari81@gmail.com>
parents:
12496
diff
changeset
|
3991 void update_xaxislocation (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3992 { |
19652
5b4fd7ebcfc6
Update "tightinset" when "x/yaxislocation" is changed
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19597
diff
changeset
|
3993 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3994 update_axes_layout (); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3995 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3996 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3997 xaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3998 m_yscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3999 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4000 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4001 m_xlim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4002 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4003 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4004 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4005 m_xscale.is ("log") ? 2 : |
24191
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4006 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4007 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4008 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4009 update_xlabel_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4010 } |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4011 |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4012 void update_xdir (void) { update_camera (); update_axes_layout (); } |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4013 void update_ydir (void) { update_camera (); update_axes_layout (); } |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4014 void update_zdir (void) { update_camera (); update_axes_layout (); } |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4015 |
14391
c9ec21bef97a
Fix ticklength updating (bug # 35438).
Ben Abbott <bpabbott@mac.com>
parents:
14357
diff
changeset
|
4016 void update_ticklength (void); |
c9ec21bef97a
Fix ticklength updating (bug # 35438).
Ben Abbott <bpabbott@mac.com>
parents:
14357
diff
changeset
|
4017 void update_tickdir (void) { update_ticklength (); } |
c9ec21bef97a
Fix ticklength updating (bug # 35438).
Ben Abbott <bpabbott@mac.com>
parents:
14357
diff
changeset
|
4018 void update_tickdirmode (void) { update_ticklength (); } |
7446 | 4019 |
26055
8b9e6a39e0a2
Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26045
diff
changeset
|
4020 void update_ticklabelinterpreter (void) |
8b9e6a39e0a2
Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26045
diff
changeset
|
4021 { |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4022 update_xtick (false); |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4023 update_ytick (false); |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4024 update_ztick (true); |
26055
8b9e6a39e0a2
Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26045
diff
changeset
|
4025 } |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26383
diff
changeset
|
4026 |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4027 void update_xtick (bool sync_pos = true) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4028 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4029 calc_ticks_and_lims (m_xlim, m_xtick, m_xminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4030 m_xlimmode.is ("auto"), m_xtickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4031 m_xscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4032 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4033 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4034 xaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4035 m_yscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4036 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4037 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4038 m_xlim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4039 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4040 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4041 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4042 } |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4043 void update_ytick (bool sync_pos = true) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4044 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4045 calc_ticks_and_lims (m_ylim, m_ytick, m_yminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4046 m_ylimmode.is ("auto"), m_ytickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4047 m_yscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4048 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4049 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4050 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4051 m_xscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4052 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4053 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4054 m_ylim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4055 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4056 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4057 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4058 } |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4059 void update_ztick (bool sync_pos = true) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4060 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4061 calc_ticks_and_lims (m_zlim, m_ztick, m_zminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4062 m_zlimmode.is ("auto"), m_ztickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4063 m_zscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4064 if (m_zticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4065 calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4066 2, m_zlim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4067 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4068 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4069 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4070 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4071 |
11394
ecd87194adb6
Update ticks after {xyz}tickmode is set to auto
Konstantinos Poulios <logari81@googlemail.com>
parents:
11385
diff
changeset
|
4072 void update_xtickmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4073 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4074 if (m_xtickmode.is ("auto")) |
22710
0cbe4714ce1b
Correct locations of minor grid lines for manual ticks (bug #45850).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22665
diff
changeset
|
4075 update_xtick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4076 } |
11394
ecd87194adb6
Update ticks after {xyz}tickmode is set to auto
Konstantinos Poulios <logari81@googlemail.com>
parents:
11385
diff
changeset
|
4077 void update_ytickmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4078 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4079 if (m_ytickmode.is ("auto")) |
22710
0cbe4714ce1b
Correct locations of minor grid lines for manual ticks (bug #45850).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22665
diff
changeset
|
4080 update_ytick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4081 } |
11394
ecd87194adb6
Update ticks after {xyz}tickmode is set to auto
Konstantinos Poulios <logari81@googlemail.com>
parents:
11385
diff
changeset
|
4082 void update_ztickmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4083 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4084 if (m_ztickmode.is ("auto")) |
22710
0cbe4714ce1b
Correct locations of minor grid lines for manual ticks (bug #45850).
Markus Mützel <markus.muetzel@gmx.de>
parents:
22665
diff
changeset
|
4085 update_ztick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4086 } |
11394
ecd87194adb6
Update ticks after {xyz}tickmode is set to auto
Konstantinos Poulios <logari81@googlemail.com>
parents:
11385
diff
changeset
|
4087 |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4088 void update_xticklabelmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4089 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4090 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4091 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4092 xaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4093 m_yscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4094 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4095 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4096 m_xlim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4097 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4098 void update_yticklabelmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4099 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4100 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4101 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4102 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4103 m_xscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4104 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4105 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4106 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4107 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4108 void update_zticklabelmode (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4109 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4110 if (m_zticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4111 calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false, 2, m_zlim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4112 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4113 |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4114 void update_fontname (void) |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4115 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4116 update_font ("fontname"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4117 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4118 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4119 void update_fontsize (void) |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4120 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4121 update_font ("fontsize"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4122 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4123 } |
26858
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4124 void update_fontsmoothing (void) |
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4125 { |
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4126 update_font ("fontsmoothing"); |
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4127 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4128 void update_fontangle (void) |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4129 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4130 update_font ("fontangle"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4131 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4132 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4133 void update_fontweight (void) |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4134 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4135 update_font ("fontweight"); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4136 sync_positions (); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4137 } |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4138 |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4139 void update_titlefontsizemultiplier (void) |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4140 { |
26371
87f11da73b19
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4141 // update_font handles title and axis labels |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4142 update_font ("fontsize"); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4143 sync_positions (); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4144 } |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4145 |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4146 void update_labelfontsizemultiplier (void) |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4147 { |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4148 update_font ("fontsize"); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4149 sync_positions (); |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4150 } |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4151 |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4152 void update_titlefontweight (void) |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4153 { |
26371
87f11da73b19
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4154 // update_font handles title and axis labels |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4155 update_font ("fontweight"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4156 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4157 } |
12777
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
4158 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4159 OCTINTERP_API void update_outerposition (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4160 OCTINTERP_API void update_position (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4161 OCTINTERP_API void update_looseinset (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4162 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4163 OCTINTERP_API double calc_tick_sep (double minval, double maxval); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4164 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4165 calc_ticks_and_lims (array_property& lims, array_property& ticks, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4166 array_property& mticks, bool limmode_is_auto, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4167 bool tickmode_is_auto, bool is_logscale); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4168 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4169 calc_ticklabels (const array_property& ticks, any_property& labels, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4170 bool is_logscale, const bool is_origin, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4171 const int other_axislocation, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4172 const array_property& axis_lims); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4173 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4174 get_ticklabel_extents (const Matrix& ticks, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4175 const string_vector& ticklabels, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4176 const Matrix& limits); |
12334
63dc132a1000
Move axes labels and title positioning to axes::properties
Konstantinos Poulios <logari81@gmail.com>
parents:
12327
diff
changeset
|
4177 |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4178 void fix_limits (array_property& lims) |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4179 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
4180 if (lims.get ().isempty ()) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4181 return; |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4182 |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4183 Matrix l = lims.get ().matrix_value (); |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4184 if (l(0) > l(1)) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4185 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4186 l(0) = 0; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4187 l(1) = 1; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4188 lims = l; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4189 } |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4190 else if (l(0) == l(1)) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4191 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4192 l(0) -= 0.5; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4193 l(1) += 0.5; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4194 lims = l; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4195 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4196 } |
7446 | 4197 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4198 OCTINTERP_API Matrix calc_tightbox (const Matrix& init_pos); |
12440
2ed62b9f949e
synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12433
diff
changeset
|
4199 |
23524
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4200 void set_colormap (const octave_value& val) |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4201 { |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4202 set___colormap__ (val); |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4203 } |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4204 |
24501
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4205 void update___colormap__ (void) |
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4206 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4207 m_colormap.run_listeners (GCB_POSTSET); |
24501
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4208 } |
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4209 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4210 OCTINTERP_API octave_value get_colormap (void) const; |
23524
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4211 |
7446 | 4212 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4213 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4214 get_axis_limits (double xmin, double xmax, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4215 double min_pos, double max_neg, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4216 const bool logscale); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4217 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4218 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4219 check_axis_limits (Matrix &limits, const Matrix kids, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4220 const bool logscale, char &update_type); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4221 |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19659
diff
changeset
|
4222 void update_xlim () |
7446 | 4223 { |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4224 update_axis_limits ("xlim"); |
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4225 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4226 calc_ticks_and_lims (m_xlim, m_xtick, m_xminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4227 m_xlimmode.is ("auto"), m_xtickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4228 m_xscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4229 if (m_xticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4230 calc_ticklabels (m_xtick, m_xticklabel, m_xscale.is ("log"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4231 m_xaxislocation.is ("origin"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4232 m_yscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4233 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4234 (yaxislocation_is ("left") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4235 m_xlim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4236 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4237 fix_limits (m_xlim); |
7855
f317f14516cb
Add zoom stack facility in axes object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7854
diff
changeset
|
4238 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4239 update_xscale (); |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4240 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4241 update_axes_layout (); |
7446 | 4242 } |
4243 | |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19659
diff
changeset
|
4244 void update_ylim (void) |
7446 | 4245 { |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4246 update_axis_limits ("ylim"); |
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4247 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4248 calc_ticks_and_lims (m_ylim, m_ytick, m_yminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4249 m_ylimmode.is ("auto"), m_ytickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4250 m_yscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4251 if (m_yticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4252 calc_ticklabels (m_ytick, m_yticklabel, m_yscale.is ("log"), |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4253 yaxislocation_is ("origin"), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4254 m_xscale.is ("log") ? 2 : |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4255 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4256 (xaxislocation_is ("bottom") ? -1 : 1)), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4257 m_ylim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4258 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4259 fix_limits (m_ylim); |
7855
f317f14516cb
Add zoom stack facility in axes object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7854
diff
changeset
|
4260 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4261 update_yscale (); |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4262 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4263 update_axes_layout (); |
7446 | 4264 } |
4265 | |
4266 void update_zlim (void) | |
4267 { | |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4268 update_axis_limits ("zlim"); |
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4269 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4270 calc_ticks_and_lims (m_zlim, m_ztick, m_zminortickvalues, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4271 m_zlimmode.is ("auto"), m_ztickmode.is ("auto"), |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4272 m_zscale.is ("log")); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4273 if (m_zticklabelmode.is ("auto")) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4274 calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), false, |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4275 2, m_zlim); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4276 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4277 fix_limits (m_zlim); |
7855
f317f14516cb
Add zoom stack facility in axes object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7854
diff
changeset
|
4278 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4279 update_zscale (); |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4280 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4281 update_axes_layout (); |
7446 | 4282 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4283 |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4284 void trigger_normals_calc (void); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4285 |
6874 | 4286 }; |
4287 | |
4288 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4289 properties m_properties; |
6874 | 4290 |
4291 public: | |
4292 axes (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4293 : base_graphics_object (), m_properties (mh, p), m_default_properties () |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4294 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4295 m_properties.update_transform (); |
6874 | 4296 } |
4297 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
4298 ~axes (void) = default; |
6874 | 4299 |
4300 void override_defaults (base_graphics_object& obj) | |
4301 { | |
4302 // Allow parent (figure) to override first (properties knows how | |
4303 // to find the parent object). | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4304 m_properties.override_defaults (obj); |
6874 | 4305 |
4306 // Now override with our defaults. If the default_properties | |
4307 // list includes the properties for all defaults (line, | |
4308 // surface, etc.) then we don't have to know the type of OBJ | |
4309 // here, we just call its set function and let it decide which | |
4310 // properties from the list to use. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4311 obj.set_from_list (m_default_properties); |
6874 | 4312 } |
4313 | |
7189 | 4314 void set (const caseless_str& name, const octave_value& value) |
6874 | 4315 { |
4316 if (name.compare ("default", 7)) | |
4317 // strip "default", pass rest to function that will | |
4318 // parse the remainder and add the element to the | |
4319 // default_properties map. | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4320 m_default_properties.set (name.substr (7), value); |
6874 | 4321 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4322 m_properties.set (name, value); |
6874 | 4323 } |
4324 | |
4325 void set_defaults (const std::string& mode) | |
4326 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4327 m_properties.set_defaults (*this, mode); |
6874 | 4328 } |
4329 | |
7189 | 4330 octave_value get (const caseless_str& name) const |
6874 | 4331 { |
4332 octave_value retval; | |
4333 | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4334 // FIXME: finish this. |
6874 | 4335 if (name.compare ("default", 7)) |
4336 retval = get_default (name.substr (7)); | |
4337 else | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4338 retval = m_properties.get (name); |
6874 | 4339 |
4340 return retval; | |
4341 } | |
4342 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4343 OCTINTERP_API octave_value get_default (const caseless_str& name) const; |
6874 | 4344 |
4345 octave_value get_defaults (void) const | |
4346 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4347 return m_default_properties.as_struct ("default"); |
6874 | 4348 } |
4349 | |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
4350 property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
4351 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4352 return m_default_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4353 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4354 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4355 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4356 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4357 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 4358 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4359 OCTINTERP_API void update_axis_limits (const std::string& axis_type); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4360 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4361 OCTINTERP_API void update_axis_limits (const std::string& axis_type, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4362 const graphics_handle& h); |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
4363 |
6874 | 4364 bool valid_object (void) const { return true; } |
4365 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4366 OCTINTERP_API void reset_default_properties (void); |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
4367 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4368 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4369 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4370 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4371 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4372 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4373 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4374 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4375 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
4376 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4377 OCTINTERP_API void initialize (const graphics_object& go); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
4378 |
6874 | 4379 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4380 property_list m_default_properties; |
6874 | 4381 }; |
4382 | |
4383 // --------------------------------------------------------------------- | |
4384 | |
7365 | 4385 class OCTINTERP_API line : public base_graphics_object |
6874 | 4386 { |
4387 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4388 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4389 class OCTINTERP_API properties : public base_properties |
6874 | 4390 { |
4391 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4392 |
6874 | 4393 // See the genprops.awk script for an explanation of the |
4394 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4395 // Programming note: Keep property list sorted if new ones are added. |
7366 | 4396 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4397 BEGIN_PROPERTIES (line) |
20738
f90295782d60
Accept color value of "none" for line objects (bug #44224).
Rik <rik@octave.org>
parents:
20730
diff
changeset
|
4398 color_property color , color_property (color_values (0, 0, 0), radio_values ("none")) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4399 string_property displayname , "" |
22759
39f39eb4e476
Implement "linejoin" property (bug #48387)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22755
diff
changeset
|
4400 radio_property linejoin , "{round}|miter|chamfer" |
7363 | 4401 radio_property linestyle , "{-}|--|:|-.|none" |
4402 double_property linewidth , 0.5 | |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
4403 radio_property marker , "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram" |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
4404 color_property markeredgecolor , color_property (radio_values ("{auto}|none"), color_values (0, 0, 0)) |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
4405 color_property markerfacecolor , color_property (radio_values ("auto|{none}"), color_values (0, 0, 0)) |
7363 | 4406 double_property markersize , 6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4407 row_vector_property xdata u , default_data () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4408 string_property xdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4409 row_vector_property ydata u , default_data () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4410 string_property ydatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4411 row_vector_property zdata u , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4412 string_property zdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4413 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4414 // hidden properties for limit computation |
26715
24e11ee4fe45
Improve calculation of zlim and aspect ratios for 2d objects (bug #55634).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26712
diff
changeset
|
4415 row_vector_property xlim hlr , default_data_lim () |
24e11ee4fe45
Improve calculation of zlim and aspect ratios for 2d objects (bug #55634).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26712
diff
changeset
|
4416 row_vector_property ylim hlr , default_data_lim () |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4417 row_vector_property zlim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4418 bool_property xliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4419 bool_property yliminclude hl , "on" |
26715
24e11ee4fe45
Improve calculation of zlim and aspect ratios for 2d objects (bug #55634).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26712
diff
changeset
|
4420 bool_property zliminclude hl , "on" |
6874 | 4421 END_PROPERTIES |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4422 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
4423 protected: |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
4424 void init (void) |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
4425 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4426 m_linewidth.add_constraint ("min", 0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4427 m_markersize.add_constraint ("min", 0, false); |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
4428 } |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
4429 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4430 private: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4431 OCTINTERP_API Matrix compute_xlim (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4432 OCTINTERP_API Matrix compute_ylim (void) const; |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4433 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4434 void update_xdata (void) { set_xlim (compute_xlim ()); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4435 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4436 void update_ydata (void) { set_ylim (compute_ylim ()); } |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4437 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4438 void update_zdata (void) { set_zlim (m_zdata.get_limits ()); } |
6874 | 4439 }; |
4440 | |
4441 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4442 properties m_properties; |
6874 | 4443 |
4444 public: | |
4445 line (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4446 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
4447 { } |
6874 | 4448 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
4449 ~line (void) = default; |
6874 | 4450 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4451 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4452 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4453 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 4454 |
6874 | 4455 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4456 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4457 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4458 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4459 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4460 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4461 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4462 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4463 } |
6874 | 4464 }; |
4465 | |
4466 // --------------------------------------------------------------------- | |
4467 | |
7365 | 4468 class OCTINTERP_API text : public base_graphics_object |
6874 | 4469 { |
4470 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4471 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4472 class OCTINTERP_API properties : public base_properties |
6874 | 4473 { |
4474 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4475 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4476 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4477 get___fontsize_points__ (double box_pix_height = 0) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4478 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4479 OCTINTERP_API void update_text_extent (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4480 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4481 OCTINTERP_API void update_font (void); |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25867
diff
changeset
|
4482 |
14448
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4483 void set_position (const octave_value& val) |
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4484 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4485 octave_value new_val (val); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4486 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4487 if (new_val.numel () == 2) |
14448
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4488 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4489 dim_vector dv (1, 3); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4490 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4491 new_val = new_val.resize (dv, true); |
14448
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4492 } |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4493 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4494 if (m_position.set (new_val, false)) |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4495 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4496 set_positionmode ("manual"); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4497 update_position (); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4498 m_position.run_listeners (GCB_POSTSET); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4499 mark_modified (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4500 } |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4501 else |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4502 set_positionmode ("manual"); |
14448
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4503 } |
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4504 |
6874 | 4505 // See the genprops.awk script for an explanation of the |
4506 // properties declarations. | |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
4507 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4508 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4509 BEGIN_PROPERTIES (text) |
17646
993ea21b7e03
graphics.in.h: Text "edgecolor" property should default to "none".
Rik <rik@octave.org>
parents:
17645
diff
changeset
|
4510 color_property backgroundcolor , color_property (radio_values ("{none}"), color_values (1, 1, 1)) |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4511 color_property color u , color_property (color_values (0, 0, 0), radio_values ("none")) |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
4512 color_property edgecolor , color_property (radio_values ("{none}"), color_values (0, 0, 0)) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4513 bool_property editing , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4514 array_property extent rG , Matrix (1, 4, 0.0) |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
4515 radio_property fontangle u , "{normal}|italic" |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4516 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4517 double_property fontsize u , 10 |
26858
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4518 bool_property fontsmoothing u , "on" |
19047
1288a2f27769
Handle non "points" fontunits properties (bug # 40158)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19044
diff
changeset
|
4519 radio_property fontunits SU , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4520 radio_property fontweight u , "{normal}|bold" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4521 radio_property horizontalalignment mu , "{left}|center|right" |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4522 radio_property interpreter u , "{tex}|none|latex" |
7377 | 4523 radio_property linestyle , "{-}|--|:|-.|none" |
4524 double_property linewidth , 0.5 | |
26185
ef0998af70f9
Change "Margin" default of text object to 3.
Rik <rik@octave.org>
parents:
26129
diff
changeset
|
4525 double_property margin , 3 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4526 array_property position smu , Matrix (1, 3, 0.0) |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4527 double_property rotation mu , 0 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4528 text_label_property string u , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4529 radio_property units u , "{data}|pixels|normalized|inches|centimeters|points" |
11455
2be9e22796d2
improvements in text-extent calculation
Konstantinos Poulios <logari81@googlemail.com>
parents:
11394
diff
changeset
|
4530 radio_property verticalalignment mu , "top|cap|{middle}|baseline|bottom" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4531 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4532 // hidden properties for limit computation |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4533 row_vector_property xlim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4534 row_vector_property ylim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4535 row_vector_property zlim hlr , Matrix () |
11281
3f952c6973f7
graphics.h.in: Change intended for 11272.
Ben Abbott <bpabbott@mac.com>
parents:
11250
diff
changeset
|
4536 bool_property xliminclude hl , "off" |
3f952c6973f7
graphics.h.in: Change intended for 11272.
Ben Abbott <bpabbott@mac.com>
parents:
11250
diff
changeset
|
4537 bool_property yliminclude hl , "off" |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4538 bool_property zliminclude hl , "off" |
11385
71e7467fbd34
Disable auto-positioning of manually positioned title and axes labels.
Konstantinos Poulios <logari81@googlemail.com>
parents:
11384
diff
changeset
|
4539 // hidden properties for auto-positioning |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4540 radio_property positionmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4541 radio_property rotationmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4542 radio_property horizontalalignmentmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4543 radio_property verticalalignmentmode hu , "{auto}|manual" |
22622
4191f8b5070c
Add '__' to start/end of hidden Octave-only graphics properties (bug #49205).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
4544 radio_property __autopos_tag__ h , "{none}|xlabel|ylabel|zlabel|title" |
19047
1288a2f27769
Handle non "points" fontunits properties (bug # 40158)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19044
diff
changeset
|
4545 // hidden property for text rendering |
22622
4191f8b5070c
Add '__' to start/end of hidden Octave-only graphics properties (bug #49205).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
4546 double_property __fontsize_points__ hgr , 0 |
6874 | 4547 END_PROPERTIES |
4548 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4549 OCTINTERP_API Matrix get_data_position (void) const; |
29433
8811d8274118
Allow arbitrary text rotation onscreen (bug #33118)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29359
diff
changeset
|
4550 OCTINTERP_API Matrix get_extent_matrix (bool rotated = false) const; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4551 const uint8NDArray& get_pixels (void) const { return m_pixels; } |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
4552 |
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
4553 // Text renderer, used for calculation of text size |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4554 octave::text_renderer m_txt_renderer; |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4555 |
7363 | 4556 protected: |
4557 void init (void) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4558 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4559 m_position.add_constraint (dim_vector (1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4560 m_fontsize.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4561 m_linewidth.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4562 m_margin.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4563 m_cached_units = get_units (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4564 update_font (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4565 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4566 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4567 private: |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4568 void update_position (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4569 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4570 Matrix pos = get_data_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4571 Matrix lim; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4572 |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4573 lim = Matrix (1, 4, pos(0)); |
23450
855122b993da
maint: Wrap tertiary operator in parentheses "(COND ? x : y)".
Rik <rik@octave.org>
parents:
23449
diff
changeset
|
4574 lim(2) = (lim(2) <= 0 ? octave::numeric_limits<double>::Inf () : lim(2)); |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4575 lim(3) = (lim(3) >= 0 ? -octave::numeric_limits<double>::Inf () : lim(3)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4576 set_xlim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4577 |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4578 lim = Matrix (1, 4, pos(1)); |
23450
855122b993da
maint: Wrap tertiary operator in parentheses "(COND ? x : y)".
Rik <rik@octave.org>
parents:
23449
diff
changeset
|
4579 lim(2) = (lim(2) <= 0 ? octave::numeric_limits<double>::Inf () : lim(2)); |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4580 lim(3) = (lim(3) >= 0 ? -octave::numeric_limits<double>::Inf () : lim(3)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4581 set_ylim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4582 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4583 if (pos.numel () == 3) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4584 { |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4585 lim = Matrix (1, 4, pos(2)); |
23450
855122b993da
maint: Wrap tertiary operator in parentheses "(COND ? x : y)".
Rik <rik@octave.org>
parents:
23449
diff
changeset
|
4586 lim(2) = (lim(2) <= 0 ? octave::numeric_limits<double>::Inf () |
855122b993da
maint: Wrap tertiary operator in parentheses "(COND ? x : y)".
Rik <rik@octave.org>
parents:
23449
diff
changeset
|
4587 : lim(2)); |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4588 lim(3) = (lim(3) >= 0 ? -octave::numeric_limits<double>::Inf () |
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4589 : lim(3)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4590 set_zliminclude ("on"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4591 set_zlim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4592 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4593 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4594 set_zliminclude ("off"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4595 } |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4596 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4597 OCTINTERP_API void request_autopos (void); |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4598 void update_positionmode (void) { request_autopos (); } |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4599 void update_rotationmode (void) { request_autopos (); } |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4600 void update_horizontalalignmentmode (void) { request_autopos (); } |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4601 void update_verticalalignmentmode (void) { request_autopos (); } |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4602 |
12440
2ed62b9f949e
synchronization of axes position and outerposition
Konstantinos Poulios <logari81@googlemail.com>
parents:
12433
diff
changeset
|
4603 void update_string (void) { request_autopos (); update_text_extent (); } |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4604 void update_rotation (void) { update_text_extent (); } |
12777
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
4605 void update_fontname (void) { update_font (); update_text_extent (); } |
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
4606 void update_fontsize (void) { update_font (); update_text_extent (); } |
26858
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4607 void update_fontsmoothing (void) { update_font (); update_text_extent (); } |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4608 |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4609 void update_color (void) |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4610 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4611 if (! m_color.is ("none")) |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4612 { |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4613 update_font (); |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4614 update_text_extent (); |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4615 } |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4616 } |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4617 |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4618 void update_fontangle (void) |
23396
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
4619 { |
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
4620 update_font (); |
23210
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
4621 update_text_extent (); |
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
4622 } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4623 void update_fontweight (void) { update_font (); update_text_extent (); } |
23210
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
4624 |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4625 void update_interpreter (void) { update_text_extent (); } |
11455
2be9e22796d2
improvements in text-extent calculation
Konstantinos Poulios <logari81@googlemail.com>
parents:
11394
diff
changeset
|
4626 void update_horizontalalignment (void) { update_text_extent (); } |
2be9e22796d2
improvements in text-extent calculation
Konstantinos Poulios <logari81@googlemail.com>
parents:
11394
diff
changeset
|
4627 void update_verticalalignment (void) { update_text_extent (); } |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4628 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4629 OCTINTERP_API void update_units (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4630 OCTINTERP_API void update_fontunits (const caseless_str& old_fontunits); |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4631 |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4632 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4633 std::string m_cached_units; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4634 uint8NDArray m_pixels; |
6874 | 4635 }; |
4636 | |
4637 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4638 properties m_properties; |
6874 | 4639 |
4640 public: | |
4641 text (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4642 : base_graphics_object (), m_properties (mh, p) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4643 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4644 m_properties.set_clipping ("off"); |
6874 | 4645 } |
4646 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
4647 ~text (void) = default; |
6874 | 4648 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4649 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4650 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4651 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 4652 |
6874 | 4653 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4654 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4655 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4656 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4657 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4658 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4659 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4660 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4661 } |
6874 | 4662 }; |
4663 | |
4664 // --------------------------------------------------------------------- | |
4665 | |
7365 | 4666 class OCTINTERP_API image : public base_graphics_object |
6874 | 4667 { |
4668 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4669 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4670 class OCTINTERP_API properties : public base_properties |
6874 | 4671 { |
4672 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4673 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4674 bool is_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4675 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4676 std::string get_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4677 { return m_aliminclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4678 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4679 bool is_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4680 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4681 std::string get_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4682 { return m_climinclude.current_value (); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4683 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4684 OCTINTERP_API octave_value get_color_data (void) const; |
9680
73153525df9a
initial implementation of OpenGL image rendering
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9620
diff
changeset
|
4685 |
19324
68db8396c378
Make "image ()" use the default image cdata
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19087
diff
changeset
|
4686 void initialize_data (void) { update_cdata (); } |
68db8396c378
Make "image ()" use the default image cdata
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19087
diff
changeset
|
4687 |
6874 | 4688 // See the genprops.awk script for an explanation of the |
4689 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4690 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4691 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4692 BEGIN_PROPERTIES (image) |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
4693 array_property alphadata u , Matrix (1, 1, 1.0) |
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
4694 radio_property alphadatamapping al , "{none}|direct|scaled" |
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
4695 array_property cdata u , default_image_cdata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4696 radio_property cdatamapping al , "scaled|{direct}" |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4697 row_vector_property xdata mu , Matrix () |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4698 row_vector_property ydata mu , Matrix () |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4699 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4700 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4701 row_vector_property clim hlr , Matrix () |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
4702 row_vector_property xlim hlr , Matrix () |
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
4703 row_vector_property ylim hlr , Matrix () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4704 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4705 bool_property climinclude hlg , "on" |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4706 bool_property xliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4707 bool_property yliminclude hl , "on" |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4708 radio_property xdatamode ha , "{auto}|manual" |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4709 radio_property ydatamode ha , "{auto}|manual" |
6874 | 4710 END_PROPERTIES |
4711 | |
7363 | 4712 protected: |
4713 void init (void) | |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4714 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4715 m_xdata.add_constraint (2); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4716 m_xdata.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4717 m_ydata.add_constraint (2); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4718 m_ydata.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4719 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4720 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4721 m_cdata.add_constraint ("logical"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4722 m_cdata.add_constraint ("int8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4723 m_cdata.add_constraint ("int16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4724 m_cdata.add_constraint ("int32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4725 m_cdata.add_constraint ("int64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4726 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4727 m_cdata.add_constraint ("uint16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4728 m_cdata.add_constraint ("uint32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4729 m_cdata.add_constraint ("uint64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4730 m_cdata.add_constraint ("real"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4731 m_cdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4732 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4733 m_alphadata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4734 m_alphadata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4735 m_alphadata.add_constraint (dim_vector (-1, -1)); |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4736 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4737 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4738 private: |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4739 void update_alphadata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4740 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4741 if (alphadatamapping_is ("scaled")) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4742 set_alim (m_alphadata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4743 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4744 m_alim = m_alphadata.get_limits (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4745 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4746 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4747 void update_cdata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4748 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4749 if (cdatamapping_is ("scaled")) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4750 set_clim (m_cdata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4751 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4752 m_clim = m_cdata.get_limits (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4753 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4754 if (m_xdatamode.is ("auto")) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4755 update_xdata (); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4756 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4757 if (m_ydatamode.is ("auto")) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4758 update_ydata (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4759 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4760 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4761 void update_xdata (void) |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4762 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4763 if (m_xdata.get ().isempty ()) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4764 set_xdatamode ("auto"); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4765 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4766 if (m_xdatamode.is ("auto")) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4767 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4768 set_xdata (get_auto_xdata ()); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4769 set_xdatamode ("auto"); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4770 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4771 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4772 Matrix limits = m_xdata.get_limits (); |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4773 float dp = pixel_xsize (); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4774 |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4775 limits(0) = limits(0) - dp; |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4776 limits(1) = limits(1) + dp; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4777 set_xlim (limits); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4778 } |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4779 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4780 void update_ydata (void) |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4781 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4782 if (m_ydata.get ().isempty ()) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4783 set_ydatamode ("auto"); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4784 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4785 if (m_ydatamode.is ("auto")) |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4786 { |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4787 set_ydata (get_auto_ydata ()); |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4788 set_ydatamode ("auto"); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4789 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4790 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4791 Matrix limits = m_ydata.get_limits (); |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4792 float dp = pixel_ysize (); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4793 |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4794 limits(0) = limits(0) - dp; |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4795 limits(1) = limits(1) + dp; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4796 set_ylim (limits); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4797 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4798 |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4799 Matrix get_auto_xdata (void) |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4800 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4801 dim_vector dv = get_cdata ().dims (); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4802 Matrix data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4803 if (dv(1) > 0.) |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4804 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4805 data = Matrix (1, 2, 1); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4806 data(1) = dv(1); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4807 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4808 return data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4809 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4810 |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4811 Matrix get_auto_ydata (void) |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4812 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4813 dim_vector dv = get_cdata ().dims (); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4814 Matrix data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4815 if (dv(0) > 0.) |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4816 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4817 data = Matrix (1, 2, 1); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4818 data(1) = dv(0); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4819 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4820 return data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4821 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4822 |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4823 float pixel_size (octave_idx_type dim, const Matrix limits) |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4824 { |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4825 octave_idx_type l = dim - 1; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4826 float dp; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4827 |
11089
d761f0dc997e
graphics.h.in: Properly set image pixel size when unique(x/ydata) is scalar.
Ben Abbott <bpabbott@mac.com>
parents:
11076
diff
changeset
|
4828 if (l > 0 && limits(0) != limits(1)) |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4829 dp = (limits(1) - limits(0))/(2*l); |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4830 else |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4831 { |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4832 if (limits(1) == limits(2)) |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4833 dp = 0.5; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4834 else |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4835 dp = (limits(1) - limits(0))/2; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4836 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4837 return dp; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4838 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4839 |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4840 public: |
21562
6c2fd62db1f7
maint: Eliminate accidental double spaces in code.
Rik <rik@octave.org>
parents:
21367
diff
changeset
|
4841 float pixel_xsize (void) |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4842 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4843 return pixel_size ((get_cdata ().dims ())(1), m_xdata.get_limits ()); |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4844 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4845 |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4846 float pixel_ysize (void) |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4847 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4848 return pixel_size ((get_cdata ().dims ())(0), m_ydata.get_limits ()); |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4849 } |
6874 | 4850 }; |
4851 | |
4852 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4853 properties m_properties; |
6874 | 4854 |
4855 public: | |
4856 image (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4857 : base_graphics_object (), m_properties (mh, p) |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4858 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4859 m_properties.initialize_data (); |
6874 | 4860 } |
4861 | |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
4862 ~image (void) = default; |
6874 | 4863 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4864 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4865 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4866 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 4867 |
6874 | 4868 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4869 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4870 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4871 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4872 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4873 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4874 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4875 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4876 } |
6874 | 4877 }; |
4878 | |
4879 // --------------------------------------------------------------------- | |
4880 | |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4881 class OCTINTERP_API light : public base_graphics_object |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4882 { |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4883 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4884 |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4885 class OCTINTERP_API properties : public base_properties |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4886 { |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4887 // See the genprops.awk script for an explanation of the |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4888 // properties declarations. |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4889 // Programming note: Keep property list sorted if new ones are added. |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4890 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4891 BEGIN_PROPERTIES (light) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4892 color_property color , color_values (1, 1, 1) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4893 array_property position , default_light_position () |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4894 radio_property style , "{infinite}|local" |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4895 END_PROPERTIES |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4896 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4897 protected: |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4898 void init (void) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4899 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4900 m_position.add_constraint (dim_vector (1, 3)); |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4901 } |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
4902 |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
4903 private: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4904 OCTINTERP_API void update_visible (void); |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4905 }; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4906 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4907 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4908 properties m_properties; |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4909 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4910 public: |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4911 light (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4912 : base_graphics_object (), m_properties (mh, p) |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4913 { } |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4914 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
4915 ~light (void) = default; |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4916 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4917 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4918 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4919 const base_properties& get_properties (void) const { return m_properties; } |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4920 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4921 bool valid_object (void) const { return true; } |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4922 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4923 bool has_readonly_property (const caseless_str& pname) const |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4924 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4925 bool retval = m_properties.has_readonly_property (pname); |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4926 if (! retval) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4927 retval = base_properties::has_readonly_property (pname); |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4928 return retval; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4929 } |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4930 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4931 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4932 OCTINTERP_API void initialize (const graphics_object& go); |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4933 }; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4934 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4935 // --------------------------------------------------------------------- |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4936 |
7365 | 4937 class OCTINTERP_API patch : public base_graphics_object |
6874 | 4938 { |
4939 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4940 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4941 class OCTINTERP_API properties : public base_properties |
6874 | 4942 { |
4943 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4944 |
7833
8ff92634982d
Add initial support for patch rendering through GLU tessellation (no transparency, no border, no markers yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7832
diff
changeset
|
4945 octave_value get_color_data (void) const; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4946 |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4947 // Matlab allows incoherent data to be stored into patch properties. |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4948 // The patch should then be ignored by the renderer. |
23433
c9fab0bc983e
maint: Use convention 'int& x' for naming references.
Rik <rik@octave.org>
parents:
23401
diff
changeset
|
4949 bool has_bad_data (std::string& msg) const |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4950 { |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
4951 msg = m_bad_data_msg; |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4952 return ! msg.empty (); |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4953 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4954 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4955 bool is_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4956 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4957 std::string get_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4958 { return m_aliminclude.current_value (); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4959 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4960 bool is_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4961 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4962 std::string get_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4963 { return m_climinclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4964 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4965 OCTINTERP_API bool get_do_lighting (void) const; |
25423
13b1b9a0d9c5
Move management of lights in axes from GL to graphics backend.
Markus Mützel <markus.muetzel@gmx.de>
parents:
25418
diff
changeset
|
4966 |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
4967 std::vector<std::vector<octave_idx_type>> m_coplanar_last_idx; |
25418
762eb2e33a7f
Enable support of non-coplanar faces in patches for OpenGL (bug #47677).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
25273
diff
changeset
|
4968 |
6874 | 4969 // See the genprops.awk script for an explanation of the |
4970 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4971 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4972 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4973 BEGIN_PROPERTIES (patch) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4974 radio_property alphadatamapping l , "none|{scaled}|direct" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4975 double_property ambientstrength , 0.3 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4976 radio_property backfacelighting , "unlit|lit|{reverselit}" |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4977 array_property cdata u , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4978 radio_property cdatamapping l , "{scaled}|direct" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4979 double_property diffusestrength , 0.6 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4980 string_property displayname , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4981 double_radio_property edgealpha , double_radio_property (1.0, radio_values ("flat|interp")) |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4982 color_property edgecolor , color_property (color_values (0, 0, 0), radio_values ("none|flat|interp")) |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4983 radio_property edgelighting u , "{none}|flat|gouraud|phong" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4984 double_radio_property facealpha , double_radio_property (1.0, radio_values ("flat|interp")) |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4985 color_property facecolor , color_property (color_values (0, 0, 0), radio_values ("none|flat|interp")) |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4986 radio_property facelighting u , "none|{flat}|gouraud|phong" |
21654
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
4987 array_property facenormals m , Matrix () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4988 radio_property facenormalsmode u , "{auto}|manual" |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4989 array_property faces u , default_patch_faces () |
7848
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
4990 array_property facevertexalphadata , Matrix () |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4991 array_property facevertexcdata u , Matrix () |
7363 | 4992 radio_property linestyle , "{-}|--|:|-.|none" |
4993 double_property linewidth , 0.5 | |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
4994 radio_property marker , "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram" |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
4995 color_property markeredgecolor , color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0)) |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
4996 color_property markerfacecolor , color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0)) |
7363 | 4997 double_property markersize , 6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4998 double_property specularcolorreflectance , 1.0 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4999 double_property specularexponent , 10.0 |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5000 double_property specularstrength , 0.9 |
21654
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5001 array_property vertexnormals m , Matrix () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5002 radio_property vertexnormalsmode u , "{auto}|manual" |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5003 array_property vertices u , default_patch_vertices () |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5004 array_property xdata u , default_patch_xdata () |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5005 array_property ydata u , default_patch_ydata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5006 array_property zdata u , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5007 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5008 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5009 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5010 row_vector_property clim hlr , Matrix () |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5011 row_vector_property xlim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5012 row_vector_property ylim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5013 row_vector_property zlim hlr , Matrix () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5014 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5015 bool_property climinclude hlg , "on" |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5016 bool_property xliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5017 bool_property yliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5018 bool_property zliminclude hl , "on" |
6874 | 5019 END_PROPERTIES |
5020 | |
7363 | 5021 protected: |
5022 void init (void) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5023 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5024 m_xdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5025 m_ydata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5026 m_zdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5027 m_faces.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5028 m_vertices.add_constraint (dim_vector (-1, 2)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5029 m_vertices.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5030 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5031 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5032 m_cdata.add_constraint ("logical"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5033 m_cdata.add_constraint ("int8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5034 m_cdata.add_constraint ("int16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5035 m_cdata.add_constraint ("int32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5036 m_cdata.add_constraint ("int64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5037 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5038 m_cdata.add_constraint ("uint16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5039 m_cdata.add_constraint ("uint32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5040 m_cdata.add_constraint ("uint64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5041 m_cdata.add_constraint ("real"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5042 m_cdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5043 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5044 m_facevertexcdata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5045 m_facevertexcdata.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5046 m_facevertexcdata.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5047 m_facevertexalphadata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5048 m_facevertexalphadata.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5049 m_facenormals.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5050 m_facenormals.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5051 m_vertexnormals.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5052 m_vertexnormals.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5053 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5054 m_ambientstrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5055 m_ambientstrength.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5056 m_diffusestrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5057 m_diffusestrength.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5058 m_linewidth.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5059 m_markersize.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5060 m_specularcolorreflectance.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5061 m_specularcolorreflectance.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5062 m_specularexponent.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5063 m_specularstrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5064 m_specularstrength.add_constraint ("max", 1.0, true); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5065 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5066 |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5067 public: |
26018
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5068 void update_normals (bool reset, bool force = false) |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5069 { |
26018
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5070 update_face_normals (reset, force); |
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5071 update_vertex_normals (reset, force); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5072 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5073 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5074 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5075 private: |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5076 std::string m_bad_data_msg; |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5077 |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5078 void update_faces (void) { update_data ();} |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5079 |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5080 void update_vertices (void) { update_data ();} |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5081 |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5082 void update_facevertexcdata (void) { update_data ();} |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5083 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5084 OCTINTERP_API void update_fvc (void); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5085 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5086 void update_xdata (void) |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5087 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
5088 if (get_xdata ().isempty ()) |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5089 { |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5090 // For compatibility with matlab behavior, |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5091 // if x/ydata are set empty, silently empty other *data and |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5092 // faces properties while vertices remain unchanged. |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5093 set_ydata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5094 set_zdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5095 set_cdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5096 set_faces (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5097 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5098 else |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5099 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5100 update_fvc (); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5101 update_normals (true); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5102 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5103 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5104 set_xlim (m_xdata.get_limits ()); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5105 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5106 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5107 void update_ydata (void) |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5108 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
5109 if (get_ydata ().isempty ()) |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5110 { |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5111 set_xdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5112 set_zdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5113 set_cdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5114 set_faces (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5115 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5116 else |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5117 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5118 update_fvc (); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5119 update_normals (true); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5120 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5121 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5122 set_ylim (m_ydata.get_limits ()); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5123 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5124 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5125 void update_zdata (void) |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5126 { |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5127 update_fvc (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5128 update_normals (true); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5129 set_zlim (m_zdata.get_limits ()); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5130 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5131 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5132 void update_cdata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5133 { |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5134 update_fvc (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5135 update_normals (false); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5136 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5137 if (cdatamapping_is ("scaled")) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5138 set_clim (m_cdata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5139 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5140 m_clim = m_cdata.get_limits (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5141 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5142 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5143 OCTINTERP_API void update_data (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5144 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5145 OCTINTERP_API void calc_face_normals (Matrix& normals); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5146 OCTINTERP_API void update_face_normals (bool reset, bool force = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5147 OCTINTERP_API void update_vertex_normals (bool reset, bool force = false); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5148 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5149 void update_edgelighting (void) |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5150 { |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5151 update_normals (false); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5152 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5153 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5154 void update_facelighting (void) |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5155 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5156 update_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5157 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5158 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5159 void update_facenormalsmode (void) |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5160 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5161 update_face_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5162 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5163 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5164 void update_vertexnormalsmode (void) |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5165 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5166 update_vertex_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5167 } |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5168 |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5169 void update_visible (void) |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5170 { |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5171 if (is_visible ()) |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5172 update_normals (false); |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5173 } |
6874 | 5174 }; |
5175 | |
5176 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5177 properties m_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5178 property_list m_default_properties; |
6874 | 5179 |
5180 public: | |
5181 patch (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5182 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5183 { } |
6874 | 5184 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
5185 ~patch (void) = default; |
6874 | 5186 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5187 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5188 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5189 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 5190 |
6874 | 5191 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5192 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5193 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5194 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5195 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5196 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5197 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5198 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5199 } |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5200 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5201 OCTINTERP_API void reset_default_properties (void); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5202 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5203 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5204 OCTINTERP_API void initialize (const graphics_object& go); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5205 |
6874 | 5206 }; |
5207 | |
5208 // --------------------------------------------------------------------- | |
5209 | |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5210 class OCTINTERP_API scatter : public base_graphics_object |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5211 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5212 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5213 |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5214 class OCTINTERP_API properties : public base_properties |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5215 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5216 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5217 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5218 OCTINTERP_API octave_value get_color_data (void) const; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5219 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5220 // Matlab allows incoherent data to be stored in scatter properties. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5221 // The scatter object should then be ignored by the renderer. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5222 bool has_bad_data (std::string& msg) const |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5223 { |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5224 msg = m_bad_data_msg; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5225 return ! msg.empty (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5226 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5227 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5228 bool is_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5229 { return m_aliminclude.is_on (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5230 std::string get_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5231 { return m_aliminclude.current_value (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5232 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5233 bool is_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5234 { return m_climinclude.is_on (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5235 std::string get_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5236 { return m_climinclude.current_value (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5237 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5238 // See the genprops.awk script for an explanation of the |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5239 // properties declarations. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5240 // Programming note: Keep property list sorted if new ones are added. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5241 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5242 BEGIN_PROPERTIES (scatter) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5243 array_property annotation , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5244 array_property cdata mu , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5245 radio_property cdatamode u , "{auto}|manual" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5246 string_property cdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5247 array_property datatiptemplate , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5248 string_property displayname , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5249 array_property latitudedata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5250 string_property latitudedatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5251 double_property linewidth , 0.5 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5252 array_property longitudedata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5253 string_property longitudedatasource , "" |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
5254 radio_property marker , "{o}|+|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram|none" |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5255 double_property markeredgealpha , 1.0 |
28414
04349a21c750
Implement "none" for scatter "markeredgecolor" property (bug #58508)
Rik <rik@octave.org>
parents:
28348
diff
changeset
|
5256 color_property markeredgecolor , color_property (radio_values ("{flat}|none"), color_values (0, 0, 0)) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5257 double_property markerfacealpha , 1.0 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5258 color_property markerfacecolor , color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0)) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5259 array_property rdata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5260 string_property rdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5261 array_property seriesindex u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5262 array_property sizedata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5263 string_property sizedatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5264 array_property thetadata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5265 string_property thetadatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5266 array_property xdata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5267 string_property xdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5268 array_property ydata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5269 string_property ydatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5270 array_property zdata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5271 string_property zdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5272 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5273 // hidden properties for limit computation |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5274 row_vector_property alim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5275 row_vector_property clim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5276 row_vector_property xlim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5277 row_vector_property ylim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5278 row_vector_property zlim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5279 bool_property aliminclude hlg , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5280 bool_property climinclude hlg , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5281 bool_property xliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5282 bool_property yliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5283 bool_property zliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5284 END_PROPERTIES |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5285 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5286 protected: |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5287 void init (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5288 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5289 m_xdata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5290 m_xdata.add_constraint (dim_vector (1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5291 m_xdata.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5292 m_xdata.add_constraint (dim_vector (0, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5293 m_ydata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5294 m_ydata.add_constraint (dim_vector (1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5295 m_ydata.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5296 m_ydata.add_constraint (dim_vector (0, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5297 m_zdata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5298 m_zdata.add_constraint (dim_vector (1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5299 m_zdata.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5300 m_zdata.add_constraint (dim_vector (0, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5301 m_sizedata.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5302 m_sizedata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5303 m_sizedata.add_constraint (dim_vector (1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5304 m_sizedata.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5305 m_sizedata.add_constraint (dim_vector (0, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5306 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5307 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5308 m_cdata.add_constraint ("logical"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5309 m_cdata.add_constraint ("int8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5310 m_cdata.add_constraint ("int16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5311 m_cdata.add_constraint ("int32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5312 m_cdata.add_constraint ("int64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5313 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5314 m_cdata.add_constraint ("uint16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5315 m_cdata.add_constraint ("uint32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5316 m_cdata.add_constraint ("uint64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5317 m_cdata.add_constraint ("real"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5318 m_cdata.add_constraint (dim_vector (-1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5319 m_cdata.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5320 m_cdata.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5321 m_cdata.add_constraint (dim_vector (0, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5322 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5323 m_linewidth.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5324 m_seriesindex.add_constraint (dim_vector (1, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5325 m_seriesindex.add_constraint (dim_vector (-1, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5326 m_seriesindex.add_constraint (dim_vector (0, -1)); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5327 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5328 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5329 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5330 OCTINTERP_API void update_color (void); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5331 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5332 private: |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5333 std::string m_bad_data_msg; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5334 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5335 void update_xdata (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5336 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5337 if (get_xdata ().isempty ()) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5338 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5339 // For compatibility with Matlab behavior, |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5340 // if x/ydata are set empty, silently empty other *data properties. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5341 set_ydata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5342 set_zdata (Matrix ()); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5343 bool cdatamode_auto = m_cdatamode.is ("auto"); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5344 set_cdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5345 if (cdatamode_auto) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5346 set_cdatamode ("auto"); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5347 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5348 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5349 set_xlim (m_xdata.get_limits ()); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5350 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5351 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5352 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5353 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5354 void update_ydata (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5355 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5356 if (get_ydata ().isempty ()) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5357 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5358 set_xdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5359 set_zdata (Matrix ()); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5360 bool cdatamode_auto = m_cdatamode.is ("auto"); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5361 set_cdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5362 if (cdatamode_auto) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5363 set_cdatamode ("auto"); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5364 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5365 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5366 set_ylim (m_ydata.get_limits ()); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5367 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5368 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5369 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5370 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5371 void update_zdata (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5372 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5373 set_zlim (m_zdata.get_limits ()); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5374 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5375 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5376 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5377 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5378 void update_sizedata (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5379 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5380 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5381 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5382 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5383 void update_cdata (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5384 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5385 if (get_cdata ().matrix_value ().rows () == 1) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5386 set_clim (m_cdata.get_limits ()); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5387 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5388 m_clim = m_cdata.get_limits (); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5389 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5390 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5391 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5392 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5393 void update_cdatamode (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5394 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5395 if (m_cdatamode.is ("auto")) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5396 update_color (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5397 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5398 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5399 void update_seriesindex (void) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5400 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5401 if (m_cdatamode.is ("auto")) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5402 update_color (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5403 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5404 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5405 void update_data (void); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5406 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5407 }; |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5408 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5409 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5410 properties m_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5411 property_list m_default_properties; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5412 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5413 public: |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5414 scatter (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5415 : base_graphics_object (), m_properties (mh, p) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5416 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5417 // FIXME: seriesindex should increment by one each time a new scatter |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5418 // object is added to the axes. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5419 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5420 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5421 ~scatter (void) = default; |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5422 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5423 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5424 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5425 const base_properties& get_properties (void) const { return m_properties; } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5426 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5427 bool valid_object (void) const { return true; } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5428 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5429 bool has_readonly_property (const caseless_str& pname) const |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5430 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5431 bool retval = m_properties.has_readonly_property (pname); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5432 if (! retval) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5433 retval = base_properties::has_readonly_property (pname); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5434 return retval; |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5435 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5436 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5437 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5438 OCTINTERP_API void initialize (const graphics_object& go); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5439 |
6874 | 5440 }; |
5441 | |
5442 // --------------------------------------------------------------------- | |
5443 | |
7365 | 5444 class OCTINTERP_API surface : public base_graphics_object |
6874 | 5445 { |
5446 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5447 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
5448 class OCTINTERP_API properties : public base_properties |
6874 | 5449 { |
5450 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5451 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5452 octave_value get_color_data (void) const; |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5453 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5454 bool is_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5455 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5456 std::string get_aliminclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5457 { return m_aliminclude.current_value (); } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5458 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5459 bool is_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5460 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5461 std::string get_climinclude (void) const |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5462 { return m_climinclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5463 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5464 OCTINTERP_API bool get_do_lighting (void) const; |
25423
13b1b9a0d9c5
Move management of lights in axes from GL to graphics backend.
Markus Mützel <markus.muetzel@gmx.de>
parents:
25418
diff
changeset
|
5465 |
6874 | 5466 // See the genprops.awk script for an explanation of the |
5467 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5468 // Programming note: Keep property list sorted if new ones are added. |
6874 | 5469 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
5470 BEGIN_PROPERTIES (surface) |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5471 array_property alphadata u , Matrix (1, 1, 1.0) |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5472 radio_property alphadatamapping l , "none|direct|{scaled}" |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5473 double_property ambientstrength , 0.3 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5474 radio_property backfacelighting , "unlit|lit|{reverselit}" |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5475 array_property cdata u , default_surface_cdata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5476 radio_property cdatamapping al , "{scaled}|direct" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5477 string_property cdatasource , "" |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5478 double_property diffusestrength , 0.6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5479 string_property displayname , "" |
7846
d7737a4268b7
Fix typos in property names (edgealpha/facealpha).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7844
diff
changeset
|
5480 double_radio_property edgealpha , double_radio_property (1.0, radio_values ("flat|interp")) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5481 color_property edgecolor , color_property (color_values (0, 0, 0), radio_values ("none|flat|interp")) |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5482 radio_property edgelighting u , "{none}|flat|gouraud|phong" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5483 double_radio_property facealpha , double_radio_property (1.0, radio_values ("flat|interp|texturemap")) |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
5484 color_property facecolor , color_property (radio_values ("none|{flat}|interp|texturemap"), color_values (0, 0, 0)) |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5485 radio_property facelighting u , "none|{flat}|gouraud|phong" |
21654
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5486 array_property facenormals m , Matrix () |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5487 radio_property facenormalsmode u , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5488 radio_property linestyle , "{-}|--|:|-.|none" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5489 double_property linewidth , 0.5 |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
5490 radio_property marker , "{none}|+|o|*|.|x|||_|s|square|d|diamond|^|v|>|<|p|pentagram|h|hexagram" |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
5491 color_property markeredgecolor , color_property (radio_values ("none|{auto}|flat"), color_values (0, 0, 0)) |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
5492 color_property markerfacecolor , color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0)) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5493 double_property markersize , 6 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5494 radio_property meshstyle , "{both}|row|column" |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5495 double_property specularcolorreflectance , 1 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5496 double_property specularexponent , 10 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5497 double_property specularstrength , 0.9 |
21654
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5498 array_property vertexnormals m , Matrix () |
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5499 radio_property vertexnormalsmode u , "{auto}|manual" |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5500 array_property xdata u , default_surface_xdata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5501 string_property xdatasource , "" |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5502 array_property ydata u , default_surface_ydata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5503 string_property ydatasource , "" |
18646
2deed6538c72
Make some graphics factory defaults conform to Matlab values (bug #41770).
pantxo <pantxo.diribarne@gmail.com>
parents:
18645
diff
changeset
|
5504 array_property zdata u , default_surface_zdata () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5505 string_property zdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5506 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5507 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5508 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5509 row_vector_property clim hlr , Matrix () |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5510 row_vector_property xlim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5511 row_vector_property ylim hlr , Matrix () |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5512 row_vector_property zlim hlr , Matrix () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5513 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5514 bool_property climinclude hlg , "on" |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5515 bool_property xliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5516 bool_property yliminclude hl , "on" |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5517 bool_property zliminclude hl , "on" |
6874 | 5518 END_PROPERTIES |
5519 | |
7363 | 5520 protected: |
5521 void init (void) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5522 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5523 m_xdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5524 m_ydata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5525 m_zdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5526 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5527 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5528 m_cdata.add_constraint ("logical"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5529 m_cdata.add_constraint ("int8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5530 m_cdata.add_constraint ("int16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5531 m_cdata.add_constraint ("int32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5532 m_cdata.add_constraint ("int64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5533 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5534 m_cdata.add_constraint ("uint16"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5535 m_cdata.add_constraint ("uint32"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5536 m_cdata.add_constraint ("uint64"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5537 m_cdata.add_constraint ("real"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5538 m_cdata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5539 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5540 m_alphadata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5541 m_alphadata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5542 m_alphadata.add_constraint (dim_vector (-1, -1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5543 m_facenormals.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5544 m_facenormals.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5545 m_vertexnormals.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5546 m_vertexnormals.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5547 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5548 m_ambientstrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5549 m_ambientstrength.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5550 m_diffusestrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5551 m_diffusestrength.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5552 m_linewidth.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5553 m_markersize.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5554 m_specularcolorreflectance.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5555 m_specularcolorreflectance.add_constraint ("max", 1.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5556 m_specularexponent.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5557 m_specularstrength.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5558 m_specularstrength.add_constraint ("max", 1.0, true); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5559 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5560 |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5561 public: |
26018
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5562 void update_normals (bool reset, bool force = false) |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5563 { |
26018
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5564 update_face_normals (reset, force); |
50583f514ae4
Add function to manually trigger calculation of [Vertex|Face]Normals (bug #54922).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25991
diff
changeset
|
5565 update_vertex_normals (reset, force); |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5566 } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5567 |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5568 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5569 private: |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5570 void update_alphadata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5571 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5572 if (alphadatamapping_is ("scaled")) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5573 set_alim (m_alphadata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5574 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5575 m_alim = m_alphadata.get_limits (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5576 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5577 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5578 void update_cdata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5579 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5580 if (cdatamapping_is ("scaled")) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5581 set_clim (m_cdata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5582 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5583 m_clim = m_cdata.get_limits (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5584 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5585 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5586 void update_xdata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5587 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5588 update_normals (true); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5589 set_xlim (m_xdata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5590 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5591 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5592 void update_ydata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5593 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5594 update_normals (true); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5595 set_ylim (m_ydata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5596 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5597 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5598 void update_zdata (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5599 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5600 update_normals (true); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5601 set_zlim (m_zdata.get_limits ()); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5602 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5603 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5604 OCTINTERP_API void update_face_normals (bool reset, bool force = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5605 OCTINTERP_API void update_vertex_normals (bool reset, bool force = false); |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5606 |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5607 void update_facenormalsmode (void) |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5608 { update_face_normals (false); } |
21654
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5609 |
a0ebc922fd52
Add "facenormals" and "*normalsmode" to "surface" and "patch" (bug #47791)
mmuetzel <markus.muetzel@gmx.de>
parents:
21568
diff
changeset
|
5610 void update_vertexnormalsmode (void) |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5611 { update_vertex_normals (false); } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5612 |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5613 void update_edgelighting (void) |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5614 { update_normals (false); } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5615 |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5616 void update_facelighting (void) |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5617 { update_normals (false); } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5618 |
26045
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5619 void update_visible (void) |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5620 { |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5621 if (is_visible ()) |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5622 update_normals (false); |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5623 } |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5624 |
6874 | 5625 }; |
5626 | |
5627 private: | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5628 properties m_properties; |
6874 | 5629 |
5630 public: | |
5631 surface (const graphics_handle& mh, const graphics_handle& p) | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5632 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5633 { } |
6874 | 5634 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
5635 ~surface (void) = default; |
6874 | 5636 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5637 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5638 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5639 const base_properties& get_properties (void) const { return m_properties; } |
7222 | 5640 |
6874 | 5641 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5642 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5643 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5644 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5645 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5646 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5647 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5648 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5649 } |
6874 | 5650 }; |
5651 | |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5652 // --------------------------------------------------------------------- |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5653 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5654 class OCTINTERP_API hggroup : public base_graphics_object |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5655 { |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5656 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5657 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5658 class OCTINTERP_API properties : public base_properties |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5659 { |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5660 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5661 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5662 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5663 remove_child (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5664 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5665 OCTINTERP_API void adopt (const graphics_handle& h); |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5666 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5667 // See the genprops.awk script for an explanation of the |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5668 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5669 // Programming note: Keep property list sorted if new ones are added. |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5670 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
5671 BEGIN_PROPERTIES (hggroup) |
15519
f915996325b7
Add missing DisplayName and EraseMode properties to hggroups (bug #37442)
Ben Abbott <bpabbott@mac.com>
parents:
15468
diff
changeset
|
5672 string_property displayname , "" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5673 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5674 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5675 row_vector_property alim hr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5676 row_vector_property clim hr , Matrix () |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
5677 row_vector_property xlim hr , Matrix () |
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
5678 row_vector_property ylim hr , Matrix () |
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
5679 row_vector_property zlim hr , Matrix () |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5680 bool_property aliminclude h , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5681 bool_property climinclude h , "on" |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5682 bool_property xliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5683 bool_property yliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5684 bool_property zliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5685 END_PROPERTIES |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5686 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5687 private: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5688 OCTINTERP_API void update_limits (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5689 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5690 OCTINTERP_API void update_limits (const graphics_handle& h) const; |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5691 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5692 protected: |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5693 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5694 { } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
5695 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5696 }; |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5697 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5698 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5699 properties m_properties; |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5700 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5701 public: |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5702 hggroup (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5703 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5704 { } |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5705 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
5706 ~hggroup (void) = default; |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5707 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5708 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5709 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5710 const base_properties& get_properties (void) const { return m_properties; } |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5711 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5712 bool valid_object (void) const { return true; } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
5713 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5714 OCTINTERP_API void update_axis_limits (const std::string& axis_type); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5715 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5716 OCTINTERP_API void update_axis_limits (const std::string& axis_type, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5717 const graphics_handle& h); |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
5718 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5719 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5720 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5721 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5722 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5723 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5724 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5725 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5726 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5727 }; |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5728 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5729 // --------------------------------------------------------------------- |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5730 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5731 class OCTINTERP_API uimenu : public base_graphics_object |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5732 { |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5733 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5734 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5735 class OCTINTERP_API properties : public base_properties |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5736 { |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5737 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5738 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
5739 void remove_child (const graphics_handle& h, bool from_root = false) |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5740 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5741 base_properties::remove_child (h, from_root); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5742 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5743 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5744 void adopt (const graphics_handle& h) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5745 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5746 base_properties::adopt (h); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5747 } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5748 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5749 // See the genprops.awk script for an explanation of the |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5750 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5751 // Programming note: Keep property list sorted if new ones are added. |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5752 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5753 BEGIN_PROPERTIES (uimenu) |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5754 string_property accelerator , "" |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
5755 callback_property callback , Matrix () |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5756 bool_property checked , "off" |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5757 bool_property enable , "on" |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5758 color_property foregroundcolor , color_values (0, 0, 0) |
29913
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5759 string_property label gs , "" |
20045
ae12edf69bce
Set default uimenu position property to 0 (Bug #44770)
John Donoghue
parents:
19987
diff
changeset
|
5760 double_property position , 0 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5761 bool_property separator , "off" |
29913
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5762 string_property text , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5763 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5764 // Octave-specific properties |
22622
4191f8b5070c
Add '__' to start/end of hidden Octave-only graphics properties (bug #49205).
Rik <rik@octave.org>
parents:
22407
diff
changeset
|
5765 string_property __fltk_label__ h , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5766 any_property __object__ h , Matrix () |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5767 END_PROPERTIES |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5768 |
29913
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5769 // Redirect calls from "Label" to "Text". |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5770 std::string get_label (void) const |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5771 { |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5772 return get_text (); |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5773 } |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5774 |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5775 void set_label (const octave_value& val) |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5776 { |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5777 set_text (val); |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5778 } |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5779 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5780 protected: |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5781 void init (void) |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
5782 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5783 m_position.add_constraint ("min", 0, false); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
5784 } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5785 }; |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5786 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5787 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5788 properties m_properties; |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5789 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5790 public: |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5791 uimenu (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5792 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5793 { } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5794 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
5795 ~uimenu (void) = default; |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5796 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5797 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5798 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5799 const base_properties& get_properties (void) const { return m_properties; } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5800 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5801 bool valid_object (void) const { return true; } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5802 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5803 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5804 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5805 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5806 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5807 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5808 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5809 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5810 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5811 }; |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5812 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5813 // --------------------------------------------------------------------- |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5814 |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
5815 // FIXME: This class has been renamed to "contextmenu" in Matlab R2020a. |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5816 class OCTINTERP_API uicontextmenu : public base_graphics_object |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5817 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5818 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5819 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5820 class OCTINTERP_API properties : public base_properties |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5821 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5822 public: |
20181
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5823 |
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5824 void add_dependent_obj (graphics_handle gh) |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5825 { m_dependent_obj_list.push_back (gh); } |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5826 |
20181
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5827 // FIXME: the list may contain duplicates. |
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5828 // Should we return only unique elements? |
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5829 const std::list<graphics_handle> get_dependent_obj_list (void) |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5830 { return m_dependent_obj_list; } |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5831 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5832 // See the genprops.awk script for an explanation of the |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5833 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5834 // Programming note: Keep property list sorted if new ones are added. |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5835 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5836 BEGIN_PROPERTIES (uicontextmenu) |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
5837 callback_property callback , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5838 array_property position , Matrix (1, 2, 0.0) |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5839 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5840 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5841 any_property __object__ h , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5842 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5843 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5844 protected: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5845 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5846 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5847 m_position.add_constraint (dim_vector (1, 2)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5848 m_position.add_constraint (dim_vector (2, 1)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5849 m_visible.set (octave_value (false)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5850 } |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5851 |
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5852 private: |
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5853 // List of objects that might depend on this uicontextmenu object |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5854 std::list<graphics_handle> m_dependent_obj_list; |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
5855 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5856 OCTINTERP_API void update_beingdeleted (void); |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
5857 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5858 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5859 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5860 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5861 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5862 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5863 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5864 uicontextmenu (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5865 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5866 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5867 |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
5868 ~uicontextmenu (void) = default; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5869 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5870 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5871 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5872 const base_properties& get_properties (void) const { return m_properties; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5873 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5874 bool valid_object (void) const { return true; } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5875 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5876 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5877 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5878 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5879 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5880 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5881 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5882 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5883 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5884 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5885 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5886 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5887 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5888 class OCTINTERP_API uicontrol : public base_graphics_object |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5889 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5890 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5891 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5892 class OCTINTERP_API properties : public base_properties |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5893 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5894 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5895 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5896 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5897 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5898 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5899 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5900 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5901 get___fontsize_points__ (double box_pix_height = 0) const; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5902 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5903 // See the genprops.awk script for an explanation of the |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5904 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5905 // Programming note: Keep property list sorted if new ones are added. |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5906 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5907 BEGIN_PROPERTIES (uicontrol) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
5908 color_property backgroundcolor , color_values (0.94, 0.94, 0.94) |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5909 callback_property callback , Matrix () |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5910 array_property cdata , Matrix () |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5911 bool_property clipping , "on" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5912 radio_property enable , "{on}|inactive|off" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5913 array_property extent rG , Matrix (1, 4, 0.0) |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
5914 radio_property fontangle u , "{normal}|italic" |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5915 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5916 double_property fontsize u , 10 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5917 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
5918 radio_property fontweight u , "{normal}|bold" |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5919 color_property foregroundcolor , color_values (0, 0, 0) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5920 radio_property horizontalalignment , "left|{center}|right" |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5921 callback_property keypressfcn , Matrix () |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5922 double_property listboxtop , 1 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5923 double_property max , 1 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5924 double_property min , 0 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5925 array_property position , default_control_position () |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5926 array_property sliderstep , default_control_sliderstep () |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5927 string_array_property string u , "" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5928 radio_property style S , "{pushbutton}|togglebutton|radiobutton|checkbox|edit|text|slider|frame|listbox|popupmenu" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5929 string_property tooltipstring , "" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5930 radio_property units u , "normalized|inches|centimeters|points|{pixels}|characters" |
22619
7adc5bbd840a
graphics: set uicontrol value default to 0 and handle special cases (Bug #48255)
John D
parents:
22407
diff
changeset
|
5931 row_vector_property value , Matrix (1, 1, 0.0) |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5932 radio_property verticalalignment , "top|{middle}|bottom" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5933 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5934 // Octave-specific properties |
26037
864448a7f347
Don't set keyboard focus on newly created uicontrol objects (bug #54942)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26024
diff
changeset
|
5935 bool_property __focus__ h , "off" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5936 any_property __object__ h , Matrix () |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5937 END_PROPERTIES |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5938 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5939 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5940 std::string m_cached_units; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5941 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5942 protected: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5943 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5944 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5945 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5946 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5947 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5948 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5949 m_cdata.add_constraint (dim_vector (0, 0)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5950 m_position.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5951 m_sliderstep.add_constraint (dim_vector (1, 2)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5952 m_fontsize.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5953 m_cached_units = get_units (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5954 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5955 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5956 OCTINTERP_API void update_text_extent (void); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5957 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5958 void update_string (void) { update_text_extent (); } |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5959 void update_fontname (void) { update_text_extent (); } |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5960 void update_fontsize (void) { update_text_extent (); } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
5961 void update_fontangle (void) |
23396
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
5962 { |
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
5963 update_text_extent (); |
23210
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
5964 } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
5965 void update_fontweight (void) { update_text_extent (); } |
23210
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
5966 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5967 OCTINTERP_API void update_fontunits (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5968 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5969 OCTINTERP_API void update_units (void); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5970 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5971 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5972 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5973 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5974 properties m_properties; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5975 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5976 public: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5977 uicontrol (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5978 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
5979 { } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5980 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
5981 ~uicontrol (void) = default; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5982 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5983 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5984 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5985 const base_properties& get_properties (void) const { return m_properties; } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5986 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5987 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5988 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5989 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5990 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5991 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5992 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5993 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5994 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5995 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5996 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5997 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5998 // --------------------------------------------------------------------- |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5999 |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6000 class OCTINTERP_API uibuttongroup : public base_graphics_object |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6001 { |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6002 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6003 |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6004 class OCTINTERP_API properties : public base_properties |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6005 { |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6006 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6007 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6008 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6009 remove_child (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6010 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6011 OCTINTERP_API void adopt (const graphics_handle& h); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6012 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6013 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6014 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6015 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6016 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6017 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6018 get___fontsize_points__ (double box_pix_height = 0) const; |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6019 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6020 // See the genprops.awk script for an explanation of the |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6021 // properties declarations. |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6022 // Programming note: Keep property list sorted if new ones are added. |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6023 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6024 BEGIN_PROPERTIES (uibuttongroup) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
6025 color_property backgroundcolor , color_values (0.94, 0.94, 0.94) |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6026 radio_property bordertype , "none|{etchedin}|etchedout|beveledin|beveledout|line" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6027 double_property borderwidth , 1 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6028 bool_property clipping , "on" |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
6029 radio_property fontangle , "{normal}|italic" |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6030 string_property fontname , OCTAVE_DEFAULT_FONTNAME |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6031 double_property fontsize , 10 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6032 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6033 radio_property fontweight , "{normal}|bold" |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6034 color_property foregroundcolor , color_values (0, 0, 0) |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6035 color_property highlightcolor , color_values (1, 1, 1) |
26194
4f1b3651fa5f
Implement "SizeChangedFcn" for uipanel and uibuttongroup (bug #55085).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26185
diff
changeset
|
6036 array_property position S , default_panel_position () |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6037 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6038 // and has been replaced with "sizechangedfcn" |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6039 // Eventually this will need to be hidden, and then removed. |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6040 callback_property resizefcn , Matrix () |
24120
0d446e938f1f
maint: clean up code formatting in generated graphics.h
Mike Miller <mtmiller@octave.org>
parents:
24071
diff
changeset
|
6041 handle_property selectedobject S , graphics_handle () |
0d446e938f1f
maint: clean up code formatting in generated graphics.h
Mike Miller <mtmiller@octave.org>
parents:
24071
diff
changeset
|
6042 callback_property selectionchangedfcn , Matrix () |
25449
d2d9701d2dcb
Change default ShadowColor property to match Matlab (bug #53805).
Rik <rik@octave.org>
parents:
25436
diff
changeset
|
6043 color_property shadowcolor , color_values (0.7, 0.7, 0.7) |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6044 callback_property sizechangedfcn , Matrix () |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6045 radio_property units S , "{normalized}|inches|centimeters|points|pixels|characters" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6046 string_property title , "" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6047 radio_property titleposition , "{lefttop}|centertop|righttop|leftbottom|centerbottom|rightbottom" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6048 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6049 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6050 any_property __object__ h , Matrix () |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6051 END_PROPERTIES |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6052 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6053 protected: |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6054 void init (void) |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6055 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6056 m_position.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6057 m_borderwidth.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6058 m_fontsize.add_constraint ("min", 0.0, false); |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6059 } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6060 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6061 // void update_text_extent (void); |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6062 // void update_string (void) { update_text_extent (); } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6063 // void update_fontname (void) { update_text_extent (); } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6064 // void update_fontsize (void) { update_text_extent (); } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6065 // void update_fontangle (void) { update_text_extent (); } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6066 // void update_fontweight (void) { update_fontweight (); } |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6067 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6068 OCTINTERP_API void update_units (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6069 OCTINTERP_API void update_fontunits (const caseless_str& old_units); |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6070 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6071 }; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6072 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6073 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6074 properties m_properties; |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6075 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6076 public: |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6077 uibuttongroup (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6078 : base_graphics_object (), m_properties (mh, p) |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6079 { } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6080 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6081 ~uibuttongroup (void) = default; |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6082 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6083 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6084 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6085 const base_properties& get_properties (void) const { return m_properties; } |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6086 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6087 bool valid_object (void) const { return true; } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6088 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6089 bool has_readonly_property (const caseless_str& pname) const |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6090 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6091 bool retval = m_properties.has_readonly_property (pname); |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6092 if (! retval) |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6093 retval = base_properties::has_readonly_property (pname); |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6094 return retval; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6095 } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6096 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6097 }; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6098 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6099 // --------------------------------------------------------------------- |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6100 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6101 class OCTINTERP_API uipanel : public base_graphics_object |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6102 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6103 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6104 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6105 class OCTINTERP_API properties : public base_properties |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6106 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6107 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6108 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6109 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6110 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6111 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6112 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6113 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6114 get___fontsize_points__ (double box_pix_height = 0) const; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6115 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6116 // See the genprops.awk script for an explanation of the |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6117 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6118 // Programming note: Keep property list sorted if new ones are added. |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6119 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6120 BEGIN_PROPERTIES (uipanel) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
6121 color_property backgroundcolor , color_values (0.94, 0.94, 0.94) |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6122 radio_property bordertype , "none|{etchedin}|etchedout|beveledin|beveledout|line" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6123 double_property borderwidth , 1 |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
6124 radio_property fontangle , "{normal}|italic" |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6125 string_property fontname , OCTAVE_DEFAULT_FONTNAME |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6126 double_property fontsize , 10 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6127 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6128 radio_property fontweight , "{normal}|bold" |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6129 color_property foregroundcolor , color_values (0, 0, 0) |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6130 color_property highlightcolor , color_values (1, 1, 1) |
26194
4f1b3651fa5f
Implement "SizeChangedFcn" for uipanel and uibuttongroup (bug #55085).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26185
diff
changeset
|
6131 array_property position S , default_panel_position () |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6132 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6133 // and has been replaced with "sizechangedfcn" |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6134 // Eventually this will need to be hidden, and then removed. |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6135 callback_property resizefcn , Matrix () |
25449
d2d9701d2dcb
Change default ShadowColor property to match Matlab (bug #53805).
Rik <rik@octave.org>
parents:
25436
diff
changeset
|
6136 color_property shadowcolor , color_values (0.7, 0.7, 0.7) |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6137 callback_property sizechangedfcn , Matrix () |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6138 string_property title , "" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6139 radio_property titleposition , "{lefttop}|centertop|righttop|leftbottom|centerbottom|rightbottom" |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6140 radio_property units S , "{normalized}|inches|centimeters|points|pixels|characters" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6141 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6142 any_property __object__ h , Matrix () |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6143 END_PROPERTIES |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6144 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6145 protected: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6146 void init (void) |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
6147 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6148 m_borderwidth.add_constraint ("min", 0.0, true); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6149 m_fontsize.add_constraint ("min", 0.0, false); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6150 m_position.add_constraint (dim_vector (1, 4)); |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
6151 } |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
18819
diff
changeset
|
6152 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6153 OCTINTERP_API void update_units (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6154 OCTINTERP_API void update_fontunits (const caseless_str& old_units); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6155 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6156 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6157 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6158 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6159 properties m_properties; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6160 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6161 public: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6162 uipanel (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6163 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
6164 { } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6165 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6166 ~uipanel (void) = default; |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6167 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6168 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6169 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6170 const base_properties& get_properties (void) const { return m_properties; } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6171 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6172 bool valid_object (void) const { return true; } |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6173 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6174 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6175 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6176 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6177 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6178 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6179 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6180 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6181 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6182 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6183 // --------------------------------------------------------------------- |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6184 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6185 class OCTINTERP_API uitable : public base_graphics_object |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6186 { |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6187 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6188 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6189 class OCTINTERP_API properties : public base_properties |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6190 { |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6191 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6192 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6193 OCTINTERP_API Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6194 get_boundingbox (bool internal = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6195 const Matrix& parent_pix_size = Matrix ()) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6196 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6197 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6198 get___fontsize_points__ (double box_pix_height = 0) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6199 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6200 OCTINTERP_API double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6201 get_fontsize_pixels (double box_pix_height = 0) const; |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6202 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6203 // See the genprops.awk script for an explanation of the |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6204 // properties declarations. |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6205 // Programming note: Keep property list sorted if new ones are added. |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6206 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6207 // FIXME: keypressfcn, keyreleasefcn, rearrangeablecolumns properties |
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6208 // seem to have been removed from Matlab. |
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6209 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6210 BEGIN_PROPERTIES (uitable) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6211 any_property __object__ h , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6212 array_property backgroundcolor , default_table_backgroundcolor () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6213 callback_property celleditcallback , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6214 callback_property cellselectioncallback , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6215 row_vector_property columneditable , Matrix () |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6216 any_property columnformat S , Cell () |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6217 any_property columnname , "numbered" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6218 any_property columnwidth S , "auto" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6219 any_property data u , Matrix () |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6220 bool_property enable , "on" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6221 array_property extent rG , Matrix (1, 4, 0.0) |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
6222 radio_property fontangle u , "{normal}|italic" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6223 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6224 double_property fontsize u , 10 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6225 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6226 radio_property fontweight u , "{normal}|bold" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6227 color_property foregroundcolor , color_values (0, 0, 0) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6228 callback_property keypressfcn , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6229 callback_property keyreleasefcn , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6230 array_property position , default_table_position () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6231 bool_property rearrangeablecolumns , "off" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6232 any_property rowname , "numbered" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6233 bool_property rowstriping , "on" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6234 string_property tooltipstring , "" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6235 radio_property units S , "normalized|inches|centimeters|points|{pixels}|characters" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6236 END_PROPERTIES |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6237 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6238 OCTINTERP_API Matrix get_extent_matrix (void) const; |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6239 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6240 OCTINTERP_API Matrix get_backgroundcolor_rgb (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6241 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6242 OCTINTERP_API Matrix get_alternatebackgroundcolor_rgb (void); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6243 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6244 protected: |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6245 void init (void) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6246 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6247 m_position.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6248 m_extent.add_constraint (dim_vector (1, 4)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6249 m_backgroundcolor.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6250 m_backgroundcolor.add_constraint (dim_vector (-1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6251 m_columneditable.add_constraint ("logical"); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6252 } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6253 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6254 OCTINTERP_API void update_units (const caseless_str& old_units); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6255 OCTINTERP_API void update_fontunits (const caseless_str& old_units); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6256 void update_table_extent (void) { }; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6257 void update_data (void) { update_table_extent (); } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6258 void update_fontname (void) { update_table_extent (); } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6259 void update_fontsize (void) { update_table_extent (); } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6260 void update_fontangle (void) |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6261 { |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6262 update_table_extent (); |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6263 } |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6264 void update_fontweight (void) { update_table_extent (); } |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6265 }; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6266 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6267 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6268 properties m_properties; |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6269 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6270 public: |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6271 uitable (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6272 : base_graphics_object (), m_properties (mh, p) |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6273 { } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6274 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6275 ~uitable (void) { } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6276 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6277 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6278 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6279 const base_properties& get_properties (void) const { return m_properties; } |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6280 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6281 bool valid_object (void) const { return true; } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6282 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6283 bool has_readonly_property (const caseless_str& pname) const |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6284 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6285 bool retval = m_properties.has_readonly_property (pname); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6286 if (! retval) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6287 retval = base_properties::has_readonly_property (pname); |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6288 return retval; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6289 } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6290 }; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6291 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6292 // --------------------------------------------------------------------- |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6293 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6294 class OCTINTERP_API uitoolbar : public base_graphics_object |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6295 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6296 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6297 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6298 class OCTINTERP_API properties : public base_properties |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6299 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6300 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6301 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6302 // See the genprops.awk script for an explanation of the |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6303 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6304 // Programming note: Keep property list sorted if new ones are added. |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6305 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6306 BEGIN_PROPERTIES (uitoolbar) |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6307 // Octave-specific properties |
20593
3af34e1ef330
Preliminary inclusion of uixx objects properties in the manual (bug #46076)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20545
diff
changeset
|
6308 any_property __object__ h , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6309 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6310 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6311 protected: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6312 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6313 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6314 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6315 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6316 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6317 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6318 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6319 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6320 uitoolbar (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6321 : base_graphics_object (), m_properties (mh, p), m_default_properties () |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
6322 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6323 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6324 ~uitoolbar (void) = default; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6325 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6326 void override_defaults (base_graphics_object& obj) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6327 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6328 // Allow parent (figure) to override first (properties knows how |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6329 // to find the parent object). |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6330 m_properties.override_defaults (obj); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6331 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6332 // Now override with our defaults. If the default_properties |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6333 // list includes the properties for all defaults (line, |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6334 // surface, etc.) then we don't have to know the type of OBJ |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6335 // here, we just call its set function and let it decide which |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6336 // properties from the list to use. |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6337 obj.set_from_list (m_default_properties); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6338 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6339 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6340 void set (const caseless_str& name, const octave_value& value) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6341 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6342 if (name.compare ("default", 7)) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6343 // strip "default", pass rest to function that will |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6344 // parse the remainder and add the element to the |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6345 // default_properties map. |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6346 m_default_properties.set (name.substr (7), value); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6347 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6348 m_properties.set (name, value); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6349 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6350 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6351 octave_value get (const caseless_str& name) const |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6352 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6353 octave_value retval; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6354 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6355 if (name.compare ("default", 7)) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6356 retval = get_default (name.substr (7)); |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6357 else |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6358 retval = m_properties.get (name); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6359 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6360 return retval; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6361 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6362 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6363 OCTINTERP_API octave_value get_default (const caseless_str& name) const; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6364 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6365 octave_value get_defaults (void) const |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6366 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6367 return m_default_properties.as_struct ("default"); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6368 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6369 |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
6370 property_list get_defaults_list (void) const |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
6371 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6372 return m_default_properties; |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6373 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6374 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6375 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6376 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6377 const base_properties& get_properties (void) const { return m_properties; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6378 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6379 bool valid_object (void) const { return true; } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6380 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6381 OCTINTERP_API void reset_default_properties (void); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6382 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6383 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6384 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6385 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6386 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6387 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6388 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6389 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6390 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6391 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6392 property_list m_default_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6393 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6394 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6395 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6396 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6397 class OCTINTERP_API uipushtool : public base_graphics_object |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6398 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6399 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6400 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6401 class OCTINTERP_API properties : public base_properties |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6402 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6403 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6404 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6405 // See the genprops.awk script for an explanation of the |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6406 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6407 // Programming note: Keep property list sorted if new ones are added. |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6408 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6409 BEGIN_PROPERTIES (uipushtool) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6410 array_property cdata , Matrix () |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
6411 callback_property clickedcallback , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6412 bool_property enable , "on" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6413 bool_property separator , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6414 string_property tooltipstring , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6415 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6416 // Octave-specific properties |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26858
diff
changeset
|
6417 string_property __named_icon__ , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6418 any_property __object__ h , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6419 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6420 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6421 protected: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6422 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6423 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6424 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6425 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6426 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6427 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6428 m_cdata.add_constraint (dim_vector (0, 0)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6429 } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6430 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6431 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6432 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6433 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6434 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6435 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6436 uipushtool (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6437 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
6438 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6439 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6440 ~uipushtool (void) = default; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6441 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6442 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6443 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6444 const base_properties& get_properties (void) const { return m_properties; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6445 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6446 bool valid_object (void) const { return true; } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6447 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6448 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6449 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6450 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6451 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6452 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6453 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6454 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6455 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6456 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6457 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6458 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6459 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6460 class OCTINTERP_API uitoggletool : public base_graphics_object |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6461 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6462 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6463 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6464 class OCTINTERP_API properties : public base_properties |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6465 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6466 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6467 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6468 // See the genprops.awk script for an explanation of the |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6469 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6470 // Programming note: Keep property list sorted if new ones are added. |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6471 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6472 BEGIN_PROPERTIES (uitoggletool) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6473 array_property cdata , Matrix () |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
6474 callback_property clickedcallback , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6475 bool_property enable , "on" |
14846
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
6476 callback_property offcallback , Matrix () |
460a3c6d8bf1
maint: Use Octave coding convention for cuddled parenthis in function calls with empty argument lists.
Rik <octave@nomad.inbox5.com>
parents:
14563
diff
changeset
|
6477 callback_property oncallback , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6478 bool_property separator , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6479 bool_property state , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6480 string_property tooltipstring , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6481 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6482 // Octave-specific properties |
26869
992f55ef87f5
Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26858
diff
changeset
|
6483 string_property __named_icon__ , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6484 any_property __object__ h , Matrix () |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6485 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6486 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6487 protected: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6488 void init (void) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6489 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6490 m_cdata.add_constraint ("double"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6491 m_cdata.add_constraint ("single"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6492 m_cdata.add_constraint ("uint8"); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6493 m_cdata.add_constraint (dim_vector (-1, -1, 3)); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6494 m_cdata.add_constraint (dim_vector (0, 0)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6495 } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6496 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6497 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6498 private: |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6499 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6500 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6501 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6502 uitoggletool (const graphics_handle& mh, const graphics_handle& p) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6503 : base_graphics_object (), m_properties (mh, p) |
20051
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
6504 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6505 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6506 ~uitoggletool (void) = default; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6507 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6508 base_properties& get_properties (void) { return m_properties; } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6509 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6510 const base_properties& get_properties (void) const { return m_properties; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6511 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6512 bool valid_object (void) const { return true; } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6513 |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6514 bool has_readonly_property (const caseless_str& pname) const |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6515 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6516 bool retval = m_properties.has_readonly_property (pname); |
18567
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6517 if (! retval) |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6518 retval = base_properties::has_readonly_property (pname); |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6519 return retval; |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6520 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6521 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6522 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6523 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6524 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6525 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6526 OCTINTERP_API octave_value |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
6527 get_property_from_handle (double handle, const std::string& property, |
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
6528 const std::string& func); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6529 OCTINTERP_API bool |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
6530 set_property_in_handle (double handle, const std::string& property, |
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
6531 const octave_value& arg, const std::string& func); |
6874 | 6532 |
6533 // --------------------------------------------------------------------- | |
6534 | |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6535 class graphics_event; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6536 |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6537 class |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6538 OCTINTERP_API |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6539 base_graphics_event |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6540 { |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6541 public: |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6542 enum priority { INTERRUPT, QUEUE, CANCEL }; |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6543 |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6544 friend class graphics_event; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6545 |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6546 base_graphics_event (void) |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6547 : m_busyaction (QUEUE) |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6548 { }; |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6549 |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6550 base_graphics_event (int busyaction) |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6551 : m_busyaction (busyaction) |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6552 { }; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6553 |
22868
87e3163f6c87
use c++11 "= default" syntax for declaration of trivial destructors
John W. Eaton <jwe@octave.org>
parents:
22865
diff
changeset
|
6554 virtual ~base_graphics_event (void) = default; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6555 |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6556 int get_busyaction (void) { return m_busyaction; }; |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6557 |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6558 virtual void execute (void) = 0; |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6559 |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6560 private: |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6561 int m_busyaction; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6562 }; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6563 |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6564 class |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6565 OCTINTERP_API |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6566 graphics_event |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6567 { |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6568 public: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6569 |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6570 typedef void (*event_fcn) (void*); |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6571 |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6572 graphics_event (void) = default; |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6573 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6574 graphics_event (base_graphics_event *new_rep) : m_rep (new_rep) { } |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6575 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
6576 graphics_event (const graphics_event&) = default; |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6577 |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6578 ~graphics_event (void) = default; |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6579 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
6580 graphics_event& operator = (const graphics_event&) = default; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6581 |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6582 int get_busyaction (void) |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6583 { |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6584 if (ok ()) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6585 return m_rep->get_busyaction (); |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6586 else |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6587 error ("graphics_event::busyaction: invalid graphics_event"); |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6588 } |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6589 |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6590 void execute (void) |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6591 { |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6592 if (ok ()) |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6593 m_rep->execute (); |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6594 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6595 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6596 bool ok (void) const { return (m_rep != nullptr); } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6597 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6598 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6599 create_callback_event (const graphics_handle& h, |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6600 const std::string& name, |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6601 const octave_value& data = Matrix (), |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6602 int busyaction = base_graphics_event::QUEUE); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6603 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6604 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6605 create_callback_event (const graphics_handle& h, |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6606 const octave_value& cb, |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6607 const octave_value& data = Matrix (), |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6608 int busyaction = base_graphics_event::QUEUE); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6609 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6610 static OCTINTERP_API graphics_event |
26520
278ae90567a7
Don't use C++ callback to notify close request from Qt Figures (bug #54187)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26469
diff
changeset
|
6611 create_mcode_event (const graphics_handle& h, const std::string& cmd, |
278ae90567a7
Don't use C++ callback to notify close request from Qt Figures (bug #54187)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26469
diff
changeset
|
6612 int busyaction); |
278ae90567a7
Don't use C++ callback to notify close request from Qt Figures (bug #54187)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26469
diff
changeset
|
6613 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6614 static OCTINTERP_API graphics_event |
23457
21baad6b35c4
maint: Use C++11 nullptr rather than 0 or NULL when possible.
Rik <rik@octave.org>
parents:
23450
diff
changeset
|
6615 create_function_event (event_fcn fcn, void *data = nullptr); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6616 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6617 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6618 create_set_event (const graphics_handle& h, const std::string& name, |
26469
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26383
diff
changeset
|
6619 const octave_value& value, bool notify_toolkit = true, |
bf835b1d04b1
Don't use C++ callbacks to notify position changes from Qt figures (bug #48519)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26383
diff
changeset
|
6620 bool redraw_figure = false); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6621 private: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6622 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6623 std::shared_ptr <base_graphics_event> m_rep; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6624 }; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6625 |
7365 | 6626 class OCTINTERP_API gh_manager |
6874 | 6627 { |
6628 public: | |
6629 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6630 OCTINTERP_API gh_manager (octave::interpreter& interp); |
27321
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6631 |
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6632 // FIXME: eventually eliminate these static functions and access |
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6633 // gh_manager object through the interpreter. |
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6634 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6635 OCTINTERP_API graphics_handle get_handle (bool integer_figure_handle); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6636 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6637 OCTINTERP_API void free (const graphics_handle& h, bool from_root = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6638 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6639 OCTINTERP_API void renumber_figure (const graphics_handle& old_gh, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6640 const graphics_handle& new_gh); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6641 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6642 graphics_handle lookup (double val) const |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6643 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6644 const_iterator p = (octave::math::isnan (val) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6645 ? m_handle_map.end () : m_handle_map.find (val)); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6646 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6647 return (p != m_handle_map.end ()) ? p->first : graphics_handle (); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6648 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6649 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6650 graphics_handle lookup (const octave_value& val) const |
10265
8c583af2cf64
validate text object children of axes objects
John W. Eaton <jwe@octave.org>
parents:
10161
diff
changeset
|
6651 { |
27321
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6652 return (val.is_real_scalar () |
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6653 ? lookup (val.double_value ()) : graphics_handle ()); |
10265
8c583af2cf64
validate text object children of axes objects
John W. Eaton <jwe@octave.org>
parents:
10161
diff
changeset
|
6654 } |
8c583af2cf64
validate text object children of axes objects
John W. Eaton <jwe@octave.org>
parents:
10161
diff
changeset
|
6655 |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6656 graphics_object get_object (double val) const |
12324
85934e0fcce9
gl-renderer.cc and gl2ps-renderer.cc: access objects directly from gh_manager instead of working with handles
John W. Eaton <jwe@octave.org>
parents:
12174
diff
changeset
|
6657 { |
85934e0fcce9
gl-renderer.cc and gl2ps-renderer.cc: access objects directly from gh_manager instead of working with handles
John W. Eaton <jwe@octave.org>
parents:
12174
diff
changeset
|
6658 return get_object (lookup (val)); |
85934e0fcce9
gl-renderer.cc and gl2ps-renderer.cc: access objects directly from gh_manager instead of working with handles
John W. Eaton <jwe@octave.org>
parents:
12174
diff
changeset
|
6659 } |
85934e0fcce9
gl-renderer.cc and gl2ps-renderer.cc: access objects directly from gh_manager instead of working with handles
John W. Eaton <jwe@octave.org>
parents:
12174
diff
changeset
|
6660 |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6661 graphics_object get_object (const graphics_handle& h) const |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6662 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6663 const_iterator p = (h.ok () ? m_handle_map.find (h) : m_handle_map.end ()); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6664 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6665 return (p != m_handle_map.end ()) ? p->second : graphics_object (); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6666 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6667 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6668 OCTINTERP_API graphics_handle |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6669 make_graphics_handle (const std::string& go_name, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6670 const graphics_handle& p, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6671 bool integer_figure_handle = false, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6672 bool call_createfcn = true, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6673 bool notify_toolkit = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6674 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6675 OCTINTERP_API graphics_handle |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6676 make_figure_handle (double val, bool notify_toolkit = true); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6677 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6678 OCTINTERP_API void push_figure (const graphics_handle& h); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6679 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6680 OCTINTERP_API void pop_figure (const graphics_handle& h); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6681 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6682 graphics_handle current_figure (void) const |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6683 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6684 graphics_handle retval; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6685 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6686 for (const auto& hfig : m_figure_list) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6687 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6688 if (is_handle_visible (hfig)) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6689 retval = hfig; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6690 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6691 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6692 return retval; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6693 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6694 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6695 Matrix handle_list (bool show_hidden = false) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6696 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6697 Matrix retval (1, m_handle_map.size ()); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6698 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6699 octave_idx_type i = 0; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6700 for (const auto& h_iter : m_handle_map) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6701 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6702 graphics_handle h = h_iter.first; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6703 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6704 if (show_hidden || is_handle_visible (h)) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6705 retval(i++) = h.value (); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6706 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6707 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6708 retval.resize (1, i); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6709 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6710 return retval; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6711 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6712 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6713 void lock (void) { m_graphics_lock.lock (); } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6714 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6715 bool try_lock (void) { return m_graphics_lock.try_lock (); } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6716 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6717 void unlock (void) { m_graphics_lock.unlock (); } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6718 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6719 Matrix figure_handle_list (bool show_hidden = false) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6720 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6721 Matrix retval (1, m_figure_list.size ()); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6722 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6723 octave_idx_type i = 0; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6724 for (const auto& hfig : m_figure_list) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6725 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6726 if (show_hidden || is_handle_visible (hfig)) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6727 retval(i++) = hfig.value (); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6728 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6729 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6730 retval.resize (1, i); |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6731 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6732 return retval; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6733 } |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6734 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6735 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6736 execute_listener (const graphics_handle& h, const octave_value& l); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6737 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6738 void execute_callback (const graphics_handle& h, |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6739 const std::string& name, |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6740 const octave_value& data = Matrix ()) |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6741 { |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6742 octave_value cb; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6743 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6744 if (true) |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6745 { |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6746 octave::autolock guard (graphics_lock ()); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6747 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6748 graphics_object go = get_object (h); |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6749 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6750 if (go.valid_object ()) |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6751 cb = go.get (name); |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6752 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6753 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
6754 execute_callback (h, cb, data); |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6755 } |
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6756 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6757 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6758 execute_callback (const graphics_handle& h, const octave_value& cb, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6759 const octave_value& data = Matrix ()); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6760 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6761 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6762 post_callback (const graphics_handle& h, const std::string& name, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6763 const octave_value& data = Matrix ()); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6764 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6765 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6766 post_function (graphics_event::event_fcn fcn, void *fcn_data = nullptr); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6767 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6768 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6769 post_set (const graphics_handle& h, const std::string& name, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6770 const octave_value& value, bool notify_toolkit = true, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6771 bool redraw_figure = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6772 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6773 OCTINTERP_API int process_events (bool force = false); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6774 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6775 OCTINTERP_API void enable_event_processing (bool enable = true); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6776 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6777 bool is_handle_visible (const graphics_handle& h) const |
8249 | 6778 { |
6779 bool retval = false; | |
6780 | |
6781 graphics_object go = get_object (h); | |
6782 | |
6783 if (go.valid_object ()) | |
6784 retval = go.is_handle_visible (); | |
6785 | |
6786 return retval; | |
6787 } | |
6788 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6789 OCTINTERP_API void close_all_figures (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6790 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6791 OCTINTERP_API void restore_gcbo (void); |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6792 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6793 OCTINTERP_API void post_event (const graphics_event& e); |
27335
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6794 |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6795 octave::mutex graphics_lock (void) |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6796 { |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6797 return m_graphics_lock; |
50216d7a2f6b
eliminate static wrapper functions in gh_manager class
John W. Eaton <jwe@octave.org>
parents:
27327
diff
changeset
|
6798 } |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6799 |
6874 | 6800 private: |
6801 | |
6802 typedef std::map<graphics_handle, graphics_object>::iterator iterator; | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6803 typedef std::map<graphics_handle, graphics_object>::const_iterator |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6804 const_iterator; |
6874 | 6805 |
6806 typedef std::set<graphics_handle>::iterator free_list_iterator; | |
6807 typedef std::set<graphics_handle>::const_iterator const_free_list_iterator; | |
6808 | |
6809 typedef std::list<graphics_handle>::iterator figure_list_iterator; | |
6810 typedef std::list<graphics_handle>::const_iterator const_figure_list_iterator; | |
6811 | |
27321
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6812 octave::interpreter& m_interpreter; |
eddce82a57cc
don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents:
27320
diff
changeset
|
6813 |
6874 | 6814 // A map of handles to graphics objects. |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6815 std::map<graphics_handle, graphics_object> m_handle_map; |
6874 | 6816 |
6817 // The available graphics handles. | |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6818 std::set<graphics_handle> m_handle_free_list; |
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6819 |
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6820 // The next handle available if m_handle_free_list is empty. |
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6821 double m_next_handle; |
6874 | 6822 |
6823 // The allocated figure handles. Top of the stack is most recently | |
6824 // created. | |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6825 std::list<graphics_handle> m_figure_list; |
6874 | 6826 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
6827 // The lock for accessing the graphics sytsem. |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6828 octave::mutex m_graphics_lock; |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6829 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
6830 // The list of events queued by graphics toolkits. |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6831 std::list<graphics_event> m_event_queue; |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6832 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
6833 // The stack of callback objects. |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6834 std::list<graphics_object> m_callback_objects; |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
6835 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6836 // A flag telling whether event processing must be constantly on. |
27327
728e4d99febb
use m_ prefix for gh_manager data members
John W. Eaton <jwe@octave.org>
parents:
27321
diff
changeset
|
6837 int m_event_processing; |
6874 | 6838 }; |
6839 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6840 OCTINTERP_API void |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6841 get_children_limits (double& min_val, double& max_val, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6842 double& min_pos, double& max_neg, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6843 const Matrix& kids, char limit_type); |
6874 | 6844 |
10917
888c75785221
Improvements to FLTK backend rotation
Jordi Guti?rrez Hermoso <jordigh@gmail.com>
parents:
10792
diff
changeset
|
6845 OCTINTERP_API int calc_dimensions (const graphics_object& gh); |
888c75785221
Improvements to FLTK backend rotation
Jordi Guti?rrez Hermoso <jordigh@gmail.com>
parents:
10792
diff
changeset
|
6846 |
6874 | 6847 // This function is NOT equivalent to the scripting language function gcf. |
7365 | 6848 OCTINTERP_API graphics_handle gcf (void); |
6874 | 6849 |
6850 // This function is NOT equivalent to the scripting language function gca. | |
7365 | 6851 OCTINTERP_API graphics_handle gca (void); |
6874 | 6852 |
14014
907d03def9d5
explicitly close figures in clean_up_and_exit instead of using an atexit function
John W. Eaton <jwe@octave.org>
parents:
13992
diff
changeset
|
6853 OCTINTERP_API void close_all_figures (void); |
907d03def9d5
explicitly close figures in clean_up_and_exit instead of using an atexit function
John W. Eaton <jwe@octave.org>
parents:
13992
diff
changeset
|
6854 |
29993
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6855 OCTAVE_NAMESPACE_END |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6856 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6857 #if defined (OCTAVE_PROVIDE_DEPRECATED_SYMBOLS) |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6858 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6859 OCTAVE_DEPRECATED (7, "use 'octave::base_scaler' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6860 typedef octave::base_scaler base_scaler; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6861 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6862 OCTAVE_DEPRECATED (7, "use 'octave::lin_scaler' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6863 typedef octave::lin_scaler lin_scaler; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6864 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6865 OCTAVE_DEPRECATED (7, "use 'octave::log_scaler' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6866 typedef octave::log_scaler log_scaler; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6867 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6868 OCTAVE_DEPRECATED (7, "use 'octave::neg_log_scaler' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6869 typedef octave::neg_log_scaler neg_log_scaler; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6870 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6871 OCTAVE_DEPRECATED (7, "use 'octave::scaler' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6872 typedef octave::scaler scaler; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6873 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6874 OCTAVE_DEPRECATED (7, "use 'octave::base_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6875 typedef octave::base_property base_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6876 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6877 OCTAVE_DEPRECATED (7, "use 'octave::string_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6878 typedef octave::string_property string_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6879 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6880 OCTAVE_DEPRECATED (7, "use 'octave::string_array_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6881 typedef octave::string_array_property string_array_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6882 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6883 OCTAVE_DEPRECATED (7, "use 'octave::text_label_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6884 typedef octave::text_label_property text_label_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6885 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6886 OCTAVE_DEPRECATED (7, "use 'octave::radio_values' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6887 typedef octave::radio_values radio_values; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6888 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6889 OCTAVE_DEPRECATED (7, "use 'octave::radio_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6890 typedef octave::radio_property radio_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6891 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6892 OCTAVE_DEPRECATED (7, "use 'octave::color_values' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6893 typedef octave::color_values color_values; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6894 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6895 OCTAVE_DEPRECATED (7, "use 'octave::color_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6896 typedef octave::color_property color_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6897 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6898 OCTAVE_DEPRECATED (7, "use 'octave::double_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6899 typedef octave::double_property double_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6900 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6901 OCTAVE_DEPRECATED (7, "use 'octave::double_radio_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6902 typedef octave::double_radio_property double_radio_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6903 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6904 OCTAVE_DEPRECATED (7, "use 'octave::array_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6905 typedef octave::array_property array_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6906 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6907 OCTAVE_DEPRECATED (7, "use 'octave::row_vector_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6908 typedef octave::row_vector_property row_vector_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6909 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6910 OCTAVE_DEPRECATED (7, "use 'octave::bool_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6911 typedef octave::bool_property bool_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6912 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6913 OCTAVE_DEPRECATED (7, "use 'octave::handle_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6914 typedef octave::handle_property handle_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6915 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6916 OCTAVE_DEPRECATED (7, "use 'octave::any_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6917 typedef octave::any_property any_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6918 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6919 OCTAVE_DEPRECATED (7, "use 'octave::children_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6920 typedef octave::children_property children_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6921 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6922 OCTAVE_DEPRECATED (7, "use 'octave::callback_property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6923 typedef octave::callback_property callback_property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6924 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6925 OCTAVE_DEPRECATED (7, "use 'octave::property' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6926 typedef octave::property property; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6927 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6928 OCTAVE_DEPRECATED (7, "use 'octave::pval_vector' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6929 typedef octave::pval_vector pval_vector; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6930 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6931 OCTAVE_DEPRECATED (7, "use 'octave::property_list' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6932 typedef octave::property_list property_list; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6933 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6934 OCTAVE_DEPRECATED (7, "use 'octave::base_properties' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6935 typedef octave::base_properties base_properties; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6936 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6937 OCTAVE_DEPRECATED (7, "use 'octave::base_graphics_object' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6938 typedef octave::base_graphics_object base_graphics_object; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6939 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6940 OCTAVE_DEPRECATED (7, "use 'octave::graphics_object' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6941 typedef octave::graphics_object graphics_object; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6942 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6943 OCTAVE_DEPRECATED (7, "use 'octave::root_figure' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6944 typedef octave::root_figure root_figure; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6945 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6946 OCTAVE_DEPRECATED (7, "use 'octave::figure' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6947 typedef octave::figure figure; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6948 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6949 OCTAVE_DEPRECATED (7, "use 'octave::graphics_xform' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6950 typedef octave::graphics_xform graphics_xform; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6951 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6952 OCTAVE_DEPRECATED (7, "use 'octave::axes' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6953 typedef octave::axes axes; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6954 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6955 OCTAVE_DEPRECATED (7, "use 'octave::line' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6956 typedef octave::line line; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6957 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6958 OCTAVE_DEPRECATED (7, "use 'octave::text' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6959 typedef octave::text text; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6960 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6961 OCTAVE_DEPRECATED (7, "use 'octave::image' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6962 typedef octave::image image; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6963 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6964 OCTAVE_DEPRECATED (7, "use 'octave::light' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6965 typedef octave::light light; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6966 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6967 OCTAVE_DEPRECATED (7, "use 'octave::patch' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6968 typedef octave::patch patch; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6969 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6970 OCTAVE_DEPRECATED (7, "use 'octave::scatter' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6971 typedef octave::scatter scatter; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6972 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6973 OCTAVE_DEPRECATED (7, "use 'octave::surface' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6974 typedef octave::surface surface; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6975 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6976 OCTAVE_DEPRECATED (7, "use 'octave::hggroup' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6977 typedef octave::hggroup hggroup; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6978 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6979 OCTAVE_DEPRECATED (7, "use 'octave::uimenu' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6980 typedef octave::uimenu uimenu; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6981 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6982 OCTAVE_DEPRECATED (7, "use 'octave::uicontextmenu' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6983 typedef octave::uicontextmenu uicontextmenu; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6984 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6985 OCTAVE_DEPRECATED (7, "use 'octave::uicontrol' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6986 typedef octave::uicontrol uicontrol; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6987 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6988 OCTAVE_DEPRECATED (7, "use 'octave::uibuttongroup' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6989 typedef octave::uibuttongroup uibuttongroup; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6990 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6991 OCTAVE_DEPRECATED (7, "use 'octave::uipanel' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6992 typedef octave::uipanel uipanel; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6993 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6994 OCTAVE_DEPRECATED (7, "use 'octave::uitable' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6995 typedef octave::uitable uitable; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6996 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6997 OCTAVE_DEPRECATED (7, "use 'octave::uitoolbar' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6998 typedef octave::uitoolbar uitoolbar; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6999 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7000 OCTAVE_DEPRECATED (7, "use 'octave::uipushtool' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7001 typedef octave::uipushtool uipushtool; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7002 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7003 OCTAVE_DEPRECATED (7, "use 'octave::uitoggletool' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7004 typedef octave::uitoggletool uitoggletool; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7005 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7006 OCTAVE_DEPRECATED (7, "use 'octave::base_graphics_event' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7007 typedef octave::base_graphics_event base_graphics_event; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7008 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7009 OCTAVE_DEPRECATED (7, "use 'octave::graphics_event' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7010 typedef octave::graphics_event graphics_event; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7011 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7012 OCTAVE_DEPRECATED (7, "use 'octave::gh_manager' instead") |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7013 typedef octave::gh_manager gh_manager; |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7014 |
6874 | 7015 #endif |
29993
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7016 |
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
7017 #endif |