Mercurial > octave
annotate libinterp/corefcn/graphics.in.h @ 31837:febd82d1a8de
use new macros to consistently delete copy and move member functions
Use new OCTAVE_DISABLE_COPY_MOVE macro to consistently disable copy
and move constructors and assignment operators. Consistently declare
deleted functions in public class sections.
Affected files: dw-main-window.h, gui-preferences.h, gui-settings.h,
qt-application.h, qt-interpreter-events.h, variable-editor-model.cc,
variable-editor-model.h, variable-editor.h, base-text-renderer.h,
c-file-ptr-stream.h, dynamic-ld.h, error.h, event-manager.h,
event-queue.h, fcn-info.h, ft-text-renderer.cc, gl-render.cc,
gl-render.h, graphics.cc, graphics.in.h, gzfstream.h, interpreter.cc,
interpreter.h, load-path.h, load-save.h, mex.cc, mxarray.h,
oct-fstrm.h, oct-hist.h, oct-iostrm.h, oct-prcstrm.h, oct-procbuf.h,
oct-stdstrm.h, oct-stream.cc, oct-stream.h, oct-strstrm.h, pager.h,
settings.h, stack-frame.cc, symscope.h, symtab.h, text-renderer.h,
url-handle-manager.h, __init_fltk__.cc, gzip.cc, cdef-class.cc,
cdef-manager.h, ov-builtin.h, ov-class.cc, ov-classdef.h,
ov-dld-fcn.h, ov-fcn.h, ov-mex-fcn.h, ov-typeinfo.h, ov-usr-fcn.h,
octave.h, anon-fcn-validator.h, lex.h, oct-parse.yy, parse.h,
profiler.h, pt-anon-scopes.h, pt-arg-list.h, pt-args-block.h,
pt-array-list.h, pt-assign.h, pt-binop.h, pt-bp.h, pt-cbinop.h,
pt-cell.h, pt-check.h, pt-classdef.h, pt-cmd.h, pt-colon.h,
pt-const.h, pt-decl.h, pt-eval.h, pt-except.h, pt-exp.h,
pt-fcn-handle.h, pt-id.h, pt-idx.h, pt-jump.h, pt-loop.h, pt-mat.h,
pt-misc.h, pt-pr-code.h, pt-select.h, pt-spmd.h, pt-stmt.h,
pt-tm-const.h, pt-unop.h, pt-walk.h, pt.h, token.h, Array-base.cc,
idx-vector.h, oct-fftw.h, sparse-chol.cc, sparse-qr.cc, oct-env.h,
action-container.h, cmd-edit.cc, cmd-edit.h, cmd-hist.h, oct-mutex.h,
oct-refcount.h, oct-shlib.cc, oct-sort.h, oct-string.h,
singleton-cleanup.h, unwind-prot.h, url-transfer.cc, and
url-transfer.h.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 16 Feb 2023 14:43:18 -0500 |
parents | c8dd3da44e83 |
children | 1daf8bfceac3 |
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 // |
31706
597f3ee61a48
update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents:
31605
diff
changeset
|
3 // Copyright (C) 2007-2023 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> |
30299
f306fe9bfa0d
Limit the size of the cache of latex parsed strings (bug #59546).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30253
diff
changeset
|
41 #include <unordered_map> |
27798
8c1cb06468db
Change class of coplanar_last_idx for patch objects (bug #55895).
Markus Mützel <markus.muetzel@gmx.de>
parents:
27734
diff
changeset
|
42 #include <vector> |
6874 | 43 |
11075
4e31d44a9763
extract caseless_str class to separate header file
John W. Eaton <jwe@octave.org>
parents:
11074
diff
changeset
|
44 #include "caseless-str.h" |
9004
17ba311ef110
add one more missing include
Jaroslav Hajek <highegg@gmail.com>
parents:
8944
diff
changeset
|
45 |
21100
e39e05d90788
Switch gripe_XXX to either err_XXX or warn_XXX naming scheme.
Rik <rik@octave.org>
parents:
21055
diff
changeset
|
46 #include "errwarn.h" |
23774
41795b504a8b
don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents:
23763
diff
changeset
|
47 #include "graphics-handle.h" |
41795b504a8b
don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents:
23763
diff
changeset
|
48 #include "graphics-toolkit.h" |
6874 | 49 #include "oct-map.h" |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
50 #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
|
51 #include "oct-refcount.h" |
6874 | 52 #include "ov.h" |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
53 #include "text-renderer.h" |
6874 | 54 |
31605
e88a07dec498
maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents:
31241
diff
changeset
|
55 OCTAVE_BEGIN_NAMESPACE(octave) |
29993
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
56 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
57 // 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
|
58 // 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
|
59 // gnuplot users. |
20791
f7084eae3318
maint: Use Octave coding conventions for #if statements.
Rik <rik@octave.org>
parents:
20785
diff
changeset
|
60 #if ! defined (OCTAVE_DEFAULT_FONTNAME) |
8944
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
61 #define OCTAVE_DEFAULT_FONTNAME "*" |
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
62 #endif |
cb0e9facc342
make default fontname * instead of Helvetica
John W. Eaton <jwe@octave.org>
parents:
8920
diff
changeset
|
63 |
6874 | 64 // --------------------------------------------------------------------- |
65 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
66 class OCTINTERP_API base_scaler |
7427 | 67 { |
68 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
69 base_scaler () { } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
70 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
71 virtual ~base_scaler () = default; |
7440 | 72 |
20893
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
73 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
|
74 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
75 error ("invalid axis scale"); |
20893
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 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
78 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
|
79 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
80 error ("invalid axis scale"); |
20893
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 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
83 virtual double scale (double) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
84 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
85 error ("invalid axis scale"); |
20893
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 |
384ff5aa9437
2015 Code Sprint: Eliminate useless return statements after error ().
Rik <rik@octave.org>
parents:
20791
diff
changeset
|
88 virtual double unscale (double) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
89 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
90 error ("invalid axis scale"); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
91 } |
7427 | 92 |
23449
c763214a8260
maint: Use convention 'int *x' for naming pointers.
Rik <rik@octave.org>
parents:
23447
diff
changeset
|
93 virtual base_scaler * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
94 { 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
|
95 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
96 virtual bool is_linear () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
97 { return false; } |
7427 | 98 }; |
99 | |
100 class lin_scaler : public base_scaler | |
101 { | |
102 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
103 lin_scaler () { } |
7427 | 104 |
105 Matrix scale (const Matrix& m) const { return m; } | |
106 | |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
107 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
|
108 |
7427 | 109 double scale (double d) const { return d; } |
110 | |
111 double unscale (double d) const { return d; } | |
112 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
113 base_scaler * clone () const { return new lin_scaler (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
114 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
115 bool is_linear () const { return true; } |
7427 | 116 }; |
117 | |
118 class log_scaler : public base_scaler | |
119 { | |
120 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
121 log_scaler () { } |
7427 | 122 |
123 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
|
124 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
125 Matrix retval (m.rows (), m.cols ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
126 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
127 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
|
128 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
129 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
130 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
131 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
132 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
|
133 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
134 NDArray retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
135 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
136 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
|
137 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
138 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
139 } |
7427 | 140 |
141 double scale (double d) const | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
142 { return log10 (d); } |
7427 | 143 |
144 double unscale (double d) const | |
23639 | 145 { return std::pow (10.0, d); } |
7427 | 146 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
147 base_scaler * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
148 { 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
|
149 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
150 private: |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
151 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
|
152 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
153 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
|
154 dest[i] = log10 (src[i]); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
155 } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
156 }; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
157 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
158 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
|
159 { |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
160 public: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
161 neg_log_scaler () { } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
162 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
163 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
|
164 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
165 Matrix retval (m.rows (), m.cols ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
166 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
167 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
|
168 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
169 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
170 } |
13756
6dfebfa334cb
allow negative data log plots with OpenGL+FLTK graphics (bug #34232)
John W. Eaton <jwe@octave.org>
parents:
13722
diff
changeset
|
171 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
172 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
|
173 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
174 NDArray retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
175 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
176 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
|
177 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
178 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
179 } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
180 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
181 double scale (double d) const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
182 { return -log10 (-d); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
183 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
184 double unscale (double d) const |
23639 | 185 { return -std::pow (10.0, -d); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
186 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
187 base_scaler * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
188 { return new neg_log_scaler (); } |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
189 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
190 private: |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
191 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
|
192 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
193 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
|
194 dest[i] = -log10 (-src[i]); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
195 } |
7427 | 196 }; |
197 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
198 class OCTINTERP_API scaler |
7427 | 199 { |
200 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
201 scaler () : m_rep (new base_scaler ()) { } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
202 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
203 scaler (const scaler& s) : m_rep (s.m_rep->clone ()) { } |
7427 | 204 |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
205 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
|
206 : 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
|
207 ? 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
|
208 : (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
|
209 ? 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
|
210 : (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
|
211 ? 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
|
212 : new base_scaler ()))) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
213 { } |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
214 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
215 ~scaler () { delete m_rep; } |
7427 | 216 |
217 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
|
218 { return m_rep->scale (m); } |
7427 | 219 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
220 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
|
221 { 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
|
222 |
7427 | 223 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
|
224 { return m_rep->scale (d); } |
7427 | 225 |
226 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
|
227 { return m_rep->unscale (d); } |
7427 | 228 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
229 bool is_linear () 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
|
230 { 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
|
231 |
7427 | 232 scaler& operator = (const scaler& s) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
233 { |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
234 if (&s != this) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
235 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
236 if (m_rep) |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
237 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
238 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
|
239 m_rep = nullptr; |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
240 } |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
241 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
242 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
|
243 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
244 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
245 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
246 } |
7427 | 247 |
248 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
|
249 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
250 if (m_rep) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
251 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
252 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
|
253 m_rep = nullptr; |
17787
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 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
256 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
|
257 m_rep = new log_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
258 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
|
259 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
|
260 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
|
261 m_rep = new lin_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
262 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
|
263 m_rep = new base_scaler (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
264 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
265 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
266 } |
7427 | 267 |
268 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
|
269 base_scaler *m_rep; |
7427 | 270 }; |
271 | |
272 // --------------------------------------------------------------------- | |
273 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
274 class OCTINTERP_API property; |
7363 | 275 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
276 // 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
|
277 // 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
|
278 // "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
|
279 // 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
|
280 |
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
281 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
|
282 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
283 class OCTINTERP_API base_property |
7363 | 284 { |
285 public: | |
286 friend class property; | |
287 | |
288 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
289 base_property () |
29889
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_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
|
291 m_listeners () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
292 { } |
7363 | 293 |
294 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
|
295 : 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
|
296 m_listeners () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
297 { } |
7363 | 298 |
299 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
|
300 : 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
|
301 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
|
302 { } |
7363 | 303 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
304 virtual ~base_property () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
305 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
306 bool ok () const { return m_parent.ok (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
307 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
308 std::string get_name () const { return m_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
|
309 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
310 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
|
311 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
312 graphics_handle get_parent () const { return m_parent; } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
313 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
314 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
|
315 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
316 bool is_hidden () const { return m_hidden; } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
317 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
318 void set_hidden (bool flag) { m_hidden = flag; } |
7363 | 319 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
320 virtual bool is_radio () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
321 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
322 int get_id () const { return m_id; } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
323 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
324 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
|
325 |
11576
8ac9687dbe9f
rename backend to graphics_toolkit
John W. Eaton <jwe@octave.org>
parents:
11523
diff
changeset
|
326 // Sets property value, notifies graphics toolkit. |
8058
ca39c21fa4b8
[mq]: generic_octave_to_backend_nofitication
John W. Eaton <jwe@octave.org>
parents:
8052
diff
changeset
|
327 // If do_run is true, runs associated listeners. |
13321
5ea207067ee5
Export base_property::set.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13307
diff
changeset
|
328 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
|
329 bool do_notify_toolkit = true); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
330 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
331 virtual octave_value get () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
332 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
333 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
|
334 } |
7363 | 335 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
336 virtual std::string values_as_string () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
337 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
338 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
|
339 } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
340 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
341 virtual Cell values_as_cell () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
342 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
343 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
|
344 } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
345 |
7363 | 346 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
|
347 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
348 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
349 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
350 } |
7363 | 351 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
352 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
|
353 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
354 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
|
355 l.resize (l.length () + 1, v); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
356 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
357 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
358 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
|
359 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
360 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
361 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
|
362 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
363 if (v.is_defined ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
364 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
365 bool found = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
366 int i; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
367 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
368 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
|
369 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
370 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
|
371 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
372 found = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
373 break; |
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
376 if (found) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
377 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
378 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
|
379 l(j) = l(j + 1); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
380 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
381 l.resize (l.length () - 1); |
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
384 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
385 { |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
386 if (mode == GCB_PERSISTENT) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
387 l.resize (0); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
388 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
389 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
390 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
|
391 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
|
392 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
|
393 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
394 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
|
395 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
396 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
|
397 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
398 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
|
399 break; |
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
403 l = lnew; |
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 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
407 } |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
408 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
409 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
|
410 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
411 virtual base_property * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
412 { return new base_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
413 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
414 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
415 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
|
416 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
417 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
|
418 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
419 |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
420 private: |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
421 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
|
422 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
|
423 listener_map_iterator; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
424 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
|
425 listener_map_const_iterator; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
426 |
7363 | 427 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
|
428 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
|
429 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
|
430 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
|
431 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
|
432 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
|
433 listener_map m_listeners; |
7363 | 434 }; |
435 | |
436 // --------------------------------------------------------------------- | |
437 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
438 class OCTINTERP_API string_property : public base_property |
7363 | 439 { |
440 public: | |
441 string_property (const std::string& s, const graphics_handle& h, | |
442 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
|
443 : base_property (s, h), m_str (val) { } |
7363 | 444 |
445 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
|
446 : base_property (p), m_str (p.m_str) { } |
7363 | 447 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
448 octave_value get () 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
|
449 { 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
|
450 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
451 std::string string_value () const { return m_str; } |
7363 | 452 |
453 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
|
454 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
455 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
456 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
457 } |
7363 | 458 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
459 base_property * clone () const { return new string_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
460 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
461 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
462 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
|
463 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
464 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
|
465 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
|
466 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
467 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
468 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
|
469 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
470 if (new_str != m_str) |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
471 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
472 m_str = new_str; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
473 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
474 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
475 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
476 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
477 |
7363 | 478 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
|
479 std::string m_str; |
7363 | 480 }; |
481 | |
482 // --------------------------------------------------------------------- | |
483 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
484 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
|
485 { |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
486 public: |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
487 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
|
488 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
489 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
|
490 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
|
491 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
|
492 : 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
|
493 { |
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
|
494 std::size_t pos = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
495 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
496 while (true) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
497 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
498 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
|
499 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
500 if (new_pos == std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
501 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
502 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
|
503 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
504 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
505 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
|
506 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
|
507 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
508 pos = new_pos + 1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
509 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
510 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
511 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
512 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
|
513 const Cell& c, const char& sep = '|', |
830f27544bb7
Accept char array inputs for linestyleorder property (bug #34906).
Rik <rik@octave.org>
parents:
16832
diff
changeset
|
514 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
|
515 : 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
|
516 { |
23575
e95738a119da
maint: Deprecate is_cellstr and replace with iscellstr.
Rik <rik@octave.org>
parents:
23564
diff
changeset
|
517 if (! c.iscellstr ()) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
518 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
|
519 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
520 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
521 string_vector strings (c.numel ()); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
522 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
523 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
|
524 strings[i] = c(i).string_value (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
525 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
526 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
527 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
528 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
529 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
|
530 : 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
|
531 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
|
532 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
533 octave_value get () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
534 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
535 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
|
536 return octave_value (string_value ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
537 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
538 return octave_value (cell_value ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
539 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
540 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
541 std::string string_value () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
542 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
543 std::string s; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
544 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
545 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
|
546 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
547 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
|
548 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
|
549 s += m_separator; |
17787
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 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
552 return s; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
553 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
554 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
555 Cell cell_value () const {return Cell (m_str);} |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
556 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
557 string_vector string_vector_value () 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
|
558 |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
559 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
|
560 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
561 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
562 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
563 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
564 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
565 base_property * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
566 { 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
|
567 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
568 protected: |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
569 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
|
570 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
571 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
|
572 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
573 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
574 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
|
575 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
|
576 std::size_t pos = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
577 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
578 // Split single string on delimiter (usually '|') |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
579 while (pos != std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
580 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
581 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
|
582 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
583 if (new_pos == std::string::npos) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
584 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
585 strings.append (new_str.substr (pos)); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
586 break; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
587 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
588 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
589 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
|
590 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
591 pos = new_pos + 1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
592 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
593 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
594 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
|
595 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
596 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
|
597 if (strings[i] != m_str[i]) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
598 { |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
599 replace = true; |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
600 break; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
601 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
602 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
603 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
604 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
605 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
606 m_desired_type = string_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
607 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
608 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
609 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
610 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
611 return true; |
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
614 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
|
615 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
616 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
617 charMatrix chm = val.char_matrix_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
618 octave_idx_type nel = chm.rows (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
619 string_vector strings (nel); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
620 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
621 if (nel != m_str.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
622 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
623 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
|
624 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
625 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
|
626 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
|
627 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
628 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
629 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
630 m_desired_type = string_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
631 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
632 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
633 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
634 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
635 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
636 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
637 } |
23575
e95738a119da
maint: Deprecate is_cellstr and replace with iscellstr.
Rik <rik@octave.org>
parents:
23564
diff
changeset
|
638 else if (val.iscellstr ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
639 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
640 bool replace = false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
641 Cell new_cell = val.cell_value (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
642 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
643 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
|
644 |
20232
a9574e3c6e9e
Deprecate Array::length() and Sparse::length() in favour of ::numel().
Carnë Draug <carandraug@octave.org>
parents:
20181
diff
changeset
|
645 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
|
646 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
647 if (nel != m_str.numel ()) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
648 replace = true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
649 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
650 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
651 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
|
652 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
653 if (strings[i] != m_str[i]) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
654 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
655 replace = true; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
656 break; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
657 } |
17787
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
660 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
661 m_desired_type = cell_t; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
662 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
663 if (replace) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
664 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
665 m_str = strings; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
666 return true; |
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 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
669 else |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
670 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
|
671 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
|
672 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
673 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
674 } |
10135
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
675 |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
676 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
|
677 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
|
678 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
|
679 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
|
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 // --------------------------------------------------------------------- |
4516a0c97ced
Handle linestyleorder. Remove @ markers. Treat edgecolor, markeredgecolor and markerfacecolor correctly in scatter.
David Bateman <dbateman@free.fr>
parents:
10121
diff
changeset
|
683 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
684 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
|
685 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
686 public: |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
687 enum type { char_t, cellstr_t }; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
688 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
689 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
|
690 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
|
691 : 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
|
692 { } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
693 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
694 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
|
695 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
|
696 : 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
|
697 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
698 octave_idx_type nel = nda.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
699 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
700 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
701 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
702 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
|
703 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
704 std::ostringstream buf; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
705 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
|
706 m_value[i] = buf.str (); |
12959
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 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
710 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
|
711 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
|
712 : 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
|
713 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
714 octave_idx_type nel = c.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
715 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
716 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
717 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
718 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
|
719 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
720 octave_value tmp = c(i); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
721 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
722 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
|
723 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
|
724 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
725 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
726 double d = c(i).double_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
727 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
728 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
729 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
|
730 m_value[i] = buf.str (); |
12959
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 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
735 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
|
736 : 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
|
737 { } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
738 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
739 bool empty () const |
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
|
740 { |
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
741 octave_value tmp = get (); |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
742 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
|
743 } |
22bc9ec80c2c
allow multi-line string property for text objects using cell arrays or char matrices
Ben Abbott <bpabbott@mac.com>
parents:
12959
diff
changeset
|
744 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
745 octave_value get () const |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
746 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
747 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
|
748 return octave_value (char_value ()); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
749 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
750 return octave_value (cell_value ()); |
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
753 std::string string_value () const |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
754 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
755 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
|
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
758 string_vector string_vector_value () const { return m_value; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
759 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
760 charMatrix char_value () const { return charMatrix (m_value, ' '); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
761 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
762 Cell cell_value () const {return Cell (m_value); } |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
763 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
764 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
|
765 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
766 set (val); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
767 return *this; |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
768 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
769 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
770 base_property * clone () 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
|
771 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
772 protected: |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
773 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
774 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
|
775 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
776 if (val.is_string ()) |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
777 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
778 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
|
779 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
780 m_stored_type = char_t; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
781 } |
23576
00e518162fda
maint: Deprecate is_cell and replace with iscell.
Rik <rik@octave.org>
parents:
23575
diff
changeset
|
782 else if (val.iscell ()) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
783 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
784 Cell c = val.cell_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
785 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
786 octave_idx_type nel = c.numel (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
787 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
788 m_value.resize (nel); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
789 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
790 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
|
791 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
792 octave_value tmp = c(i); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
793 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
794 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
|
795 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
|
796 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
797 { |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
798 double d = c(i).double_value (); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
799 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
800 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
801 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
|
802 m_value[i] = buf.str (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
803 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
804 } |
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
|
805 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
806 m_stored_type = cellstr_t; |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
807 } |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
808 else |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
809 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
810 NDArray nda; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
811 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
812 try |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
813 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
814 nda = val.array_value (); |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
815 } |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
816 catch (octave::execution_exception& ee) |
12959
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
817 { |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
818 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
|
819 get_name ().c_str ()); |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
820 } |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
821 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
822 octave_idx_type nel = nda.numel (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
823 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
824 m_value.resize (nel); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
825 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
826 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
|
827 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
828 std::ostringstream buf; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
829 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
|
830 m_value[i] = buf.str (); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
831 } |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
832 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
833 m_stored_type = char_t; |
12959
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 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
836 return true; |
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 |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
839 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
|
840 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
|
841 type m_stored_type; |
12959
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 // --------------------------------------------------------------------- |
0c86ae6f7c34
new text_label_property graphics property type
John W. Eaton <jwe@octave.org>
parents:
12777
diff
changeset
|
845 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
846 class OCTINTERP_API radio_values |
7363 | 847 { |
848 public: | |
21017
93748bcaec17
maint: Replace emtpy 'std::string ()' calls with "".
Rik <rik@octave.org>
parents:
20990
diff
changeset
|
849 OCTINTERP_API radio_values (const std::string& opt_string = ""); |
7363 | 850 |
851 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
|
852 : m_default_val (a.m_default_val), m_possible_vals (a.m_possible_vals) { } |
7363 | 853 |
854 radio_values& operator = (const radio_values& a) | |
855 { | |
856 if (&a != this) | |
857 { | |
29889
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_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
|
859 m_possible_vals = a.m_possible_vals; |
7363 | 860 } |
861 | |
862 return *this; | |
863 } | |
864 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
865 std::string default_value () const { return m_default_val; } |
7363 | 866 |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
867 bool validate (const std::string& val, std::string& match) |
7363 | 868 { |
869 bool retval = true; | |
870 | |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
871 if (! contains (val, match)) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
872 error ("invalid value = %s", val.c_str ()); |
7363 | 873 |
874 return retval; | |
875 } | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
876 |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
877 bool contains (const std::string& val, std::string& match) |
7363 | 878 { |
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
|
879 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
|
880 |
d13d090cb03a
use std::size_t and std::ptrdiff_t in C++ code (bug #60471)
John W. Eaton <jwe@octave.org>
parents:
29358
diff
changeset
|
881 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
|
882 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
883 std::string first_match; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
884 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
885 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
|
886 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
887 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
|
888 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
889 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
|
890 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
891 // 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
|
892 // 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
|
893 // 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
|
894 match = possible_val; |
13236
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
895 return true; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
896 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
897 else |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
898 { |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
899 if (k == 0) |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
900 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
|
901 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
902 k++; |
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 |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
907 if (k == 1) |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
908 { |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
909 match = first_match; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
910 return true; |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
911 } |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
912 else |
8bb526fb3349
allow radio values for graphics properaties to be abbreviated
John W. Eaton <jwe@octave.org>
parents:
13132
diff
changeset
|
913 return false; |
7363 | 914 } |
915 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
916 OCTINTERP_API std::string values_as_string () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
917 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
918 OCTINTERP_API Cell values_as_cell () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
919 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
920 octave_idx_type nelem () const { return m_possible_vals.size (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
921 |
7363 | 922 private: |
923 // 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
|
924 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
|
925 std::set<caseless_str> m_possible_vals; |
7363 | 926 }; |
927 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
928 class OCTINTERP_API radio_property : public base_property |
7363 | 929 { |
930 public: | |
7364 | 931 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 932 const radio_values& v = radio_values ()) |
7364 | 933 : 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
|
934 m_vals (v), m_current_val (v.default_value ()) { } |
7363 | 935 |
7364 | 936 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 937 const std::string& v) |
7364 | 938 : 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
|
939 m_vals (v), m_current_val (m_vals.default_value ()) { } |
7363 | 940 |
7364 | 941 radio_property (const std::string& nm, const graphics_handle& h, |
7363 | 942 const radio_values& v, const std::string& def) |
7364 | 943 : 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
|
944 m_vals (v), m_current_val (def) { } |
7363 | 945 |
946 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
|
947 : 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
|
948 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
949 octave_value get () const { return octave_value (m_current_val); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
950 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
951 const std::string& current_value () const { return m_current_val; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
952 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
953 std::string values_as_string () const |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
954 { return m_vals.values_as_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
|
955 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
956 Cell values_as_cell () 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
|
957 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
958 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
|
959 { 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
|
960 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
961 bool is_radio () const { return true; } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
962 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
963 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
|
964 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
965 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
966 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
967 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
968 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
969 base_property * clone () const { return new radio_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
970 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
971 protected: |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
972 bool do_set (const octave_value& newval) |
7363 | 973 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
974 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
|
975 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
|
976 get_name ().c_str ()); |
20962
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 s = newval.string_value (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
979 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
980 std::string match; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
981 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
982 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
|
983 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
|
984 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
|
985 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
986 if (match != m_current_val) |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
987 { |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
988 if (s.length () != match.length ()) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
989 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
|
990 "%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
|
991 "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
|
992 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
|
993 m_current_val = match; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
994 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
995 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
996 return false; |
7363 | 997 } |
998 | |
999 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
|
1000 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
|
1001 std::string m_current_val; |
7363 | 1002 }; |
1003 | |
1004 // --------------------------------------------------------------------- | |
1005 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1006 class OCTINTERP_API color_values |
7363 | 1007 { |
1008 public: | |
1009 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
|
1010 : 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
|
1011 { |
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(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
|
1013 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
|
1014 m_rgb(2) = b; |
7363 | 1015 |
1016 validate (); | |
1017 } | |
1018 | |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1019 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
|
1020 : m_rgb (1, 3) |
7363 | 1021 { |
1022 if (! str2rgb (str)) | |
1023 error ("invalid color specification: %s", str.c_str ()); | |
1024 } | |
1025 | |
1026 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
|
1027 : m_rgb (c.m_rgb) |
7363 | 1028 { } |
1029 | |
1030 color_values& operator = (const color_values& c) | |
1031 { | |
1032 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
|
1033 m_rgb = c.m_rgb; |
7363 | 1034 |
1035 return *this; | |
1036 } | |
1037 | |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1038 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
|
1039 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1040 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
|
1041 && 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
|
1042 && 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
|
1043 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1044 |
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1045 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
|
1046 { return ! (*this == c); } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1047 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1048 Matrix rgb () const { return m_rgb; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1049 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1050 operator octave_value () const { return m_rgb; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1051 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1052 void validate () const |
7363 | 1053 { |
1054 for (int i = 0; i < 3; i++) | |
1055 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1056 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
|
1057 error ("invalid RGB color specification"); |
7363 | 1058 } |
1059 } | |
1060 | |
1061 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
|
1062 Matrix m_rgb; |
7363 | 1063 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1064 OCTINTERP_API bool str2rgb (const std::string& str); |
7363 | 1065 }; |
1066 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1067 class OCTINTERP_API color_property : public base_property |
7363 | 1068 { |
1069 public: | |
1070 color_property (const color_values& c, const radio_values& v) | |
1071 : 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
|
1072 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
|
1073 m_current_val (v.default_value ()) |
7363 | 1074 { } |
1075 | |
17645
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1076 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
|
1077 : 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
|
1078 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
|
1079 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
|
1080 { } |
85a057ad1ba6
Fix graphic color properties which have a radio value as default.
Rik <rik@octave.org>
parents:
17631
diff
changeset
|
1081 |
7364 | 1082 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1083 const color_values& c = color_values (), |
1084 const radio_values& v = radio_values ()) | |
7364 | 1085 : 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
|
1086 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
|
1087 m_current_val (v.default_value ()) |
7363 | 1088 { } |
1089 | |
7364 | 1090 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1091 const radio_values& v) |
7364 | 1092 : 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
|
1093 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
|
1094 m_current_val (v.default_value ()) |
7363 | 1095 { } |
1096 | |
7364 | 1097 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1098 const std::string& v) |
7364 | 1099 : 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
|
1100 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
|
1101 m_current_val (m_radio_val.default_value ()) |
7363 | 1102 { } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1103 |
7364 | 1104 color_property (const std::string& nm, const graphics_handle& h, |
7363 | 1105 const color_property& v) |
7364 | 1106 : 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
|
1107 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
|
1108 m_radio_val (v.m_radio_val), m_current_val (v.m_current_val) |
7363 | 1109 { } |
1110 | |
1111 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
|
1112 : 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
|
1113 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
|
1114 m_current_val (p.m_current_val) { } |
7363 | 1115 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1116 octave_value get () const |
7363 | 1117 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1118 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
|
1119 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
|
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 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
|
1122 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1123 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1124 bool is_rgb () const { return (m_current_type == color_t); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1125 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1126 bool is_radio () const { return (m_current_type == radio_t); } |
7363 | 1127 |
1128 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
|
1129 { return (is_radio () && m_current_val == v); } |
7363 | 1130 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1131 Matrix rgb () const |
7363 | 1132 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1133 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
|
1134 error ("color has no RGB value"); |
7363 | 1135 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1136 return m_color_val.rgb (); |
7363 | 1137 } |
1138 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1139 const std::string& current_value () const |
7363 | 1140 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1141 if (m_current_type != radio_t) |
7363 | 1142 error ("color has no radio value"); |
1143 | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1144 return m_current_val; |
7363 | 1145 } |
1146 | |
1147 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
|
1148 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1149 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1150 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1151 } |
7363 | 1152 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1153 operator octave_value () const { return get (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1154 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1155 base_property * clone () const { return new color_property (*this); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1156 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1157 std::string values_as_string () 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
|
1158 { 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
|
1159 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1160 Cell values_as_cell () 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
|
1161 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1162 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1163 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
|
1164 |
7363 | 1165 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
|
1166 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
|
1167 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
|
1168 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
|
1169 std::string m_current_val; |
7363 | 1170 }; |
1171 | |
1172 // --------------------------------------------------------------------- | |
1173 | |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1174 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
|
1175 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1176 NO_CHECK, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1177 FINITE, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1178 NOT_NAN, |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1179 NOT_INF |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1180 }; |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1181 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1182 class OCTINTERP_API double_property : public base_property |
7363 | 1183 { |
1184 public: | |
7364 | 1185 double_property (const std::string& nm, const graphics_handle& h, |
7363 | 1186 double d = 0) |
7364 | 1187 : 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
|
1188 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
|
1189 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
|
1190 m_maxval (std::pair<double, bool> (octave_NaN, true)) { } |
7363 | 1191 |
1192 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
|
1193 : 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
|
1194 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
|
1195 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
|
1196 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
|
1197 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1198 octave_value get () const { return octave_value (m_current_val); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1199 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1200 double double_value () const { return m_current_val; } |
7363 | 1201 |
1202 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
|
1203 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1204 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1205 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1206 } |
7363 | 1207 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1208 base_property * clone () const |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1209 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1210 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
|
1211 |
29889
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_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
|
1213 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
|
1214 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
|
1215 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1216 return p; |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1217 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
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 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
|
1220 { |
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 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
|
1222 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
|
1223 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
|
1224 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
|
1225 } |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1226 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1227 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
|
1228 { m_finite_constraint = finite; } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1229 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1230 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1231 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
|
1232 { |
23582
0cc2011d800e
maint: Deprecate is_real_type and replace with isreal.
Rik <rik@octave.org>
parents:
23577
diff
changeset
|
1233 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
|
1234 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
|
1235 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
|
1236 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1237 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
|
1238 |
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 // 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
|
1240 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
|
1241 { |
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 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
|
1243 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
|
1244 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
|
1245 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
|
1246 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
|
1247 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
|
1248 } |
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 (! 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
|
1251 { |
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 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
|
1253 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
|
1254 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
|
1255 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
|
1256 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
|
1257 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
|
1258 } |
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1259 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1260 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
|
1261 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
|
1262 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1263 if (! octave::math::isfinite (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1264 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
|
1265 } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1266 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
|
1267 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1268 if (octave::math::isnan (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1269 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
|
1270 } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1271 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
|
1272 { |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1273 if (octave::math::isinf (new_val)) |
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
1274 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
|
1275 } |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
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 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
|
1278 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1279 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
|
1280 return true; |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1281 } |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
1282 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1283 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1284 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1285 |
7363 | 1286 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
|
1287 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
|
1288 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
|
1289 std::pair<double, bool> m_minval, m_maxval; |
7363 | 1290 }; |
1291 | |
1292 // --------------------------------------------------------------------- | |
1293 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1294 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
|
1295 { |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1296 public: |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1297 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
|
1298 : 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
|
1299 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
|
1300 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
|
1301 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1302 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1303 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
|
1304 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
|
1305 : 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
|
1306 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
|
1307 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
|
1308 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1309 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1310 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
|
1311 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
|
1312 : 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
|
1313 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
|
1314 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
|
1315 { } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1316 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1317 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
|
1318 : 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
|
1319 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
|
1320 m_current_val (p.m_current_val) { } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1321 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1322 octave_value get () const |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1323 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1324 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
|
1325 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
|
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 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
|
1328 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1329 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1330 bool is_double () const { return (m_current_type == double_t); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1331 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1332 bool is_radio () 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
|
1333 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1334 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
|
1335 { 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
|
1336 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1337 double double_value () const |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1338 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1339 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
|
1340 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
|
1341 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1342 return m_dval; |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1343 } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1344 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1345 const std::string& current_value () const |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1346 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1347 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
|
1348 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
|
1349 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1350 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
|
1351 } |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1352 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1353 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
|
1354 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1355 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1356 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1357 } |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1358 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1359 operator octave_value () const { return get (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1360 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1361 base_property * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1362 { return new double_radio_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1363 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1364 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1365 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
|
1366 |
7844
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1367 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
|
1368 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
|
1369 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
|
1370 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
|
1371 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
|
1372 }; |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1373 |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1374 // --------------------------------------------------------------------- |
3d60445d3638
Add new double_radio_property class for alpha values.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7842
diff
changeset
|
1375 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1376 class OCTINTERP_API array_property : public base_property |
7363 | 1377 { |
1378 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1379 array_property () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1380 : 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
|
1381 m_min_val (), m_max_val (), m_min_pos (), m_max_neg (), |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1382 m_type_constraints (), m_size_constraints (), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1383 m_finite_constraint (NO_CHECK), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1384 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
|
1385 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
|
1386 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1387 get_data_limits (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1388 } |
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
|
1389 |
7364 | 1390 array_property (const std::string& nm, const graphics_handle& h, |
7363 | 1391 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
|
1392 : 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
|
1393 m_min_val (), m_max_val (), m_min_pos (), m_max_neg (), |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1394 m_type_constraints (), m_size_constraints (), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1395 m_finite_constraint (NO_CHECK), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1396 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
|
1397 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
|
1398 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1399 get_data_limits (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1400 } |
7363 | 1401 |
7848
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1402 // 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
|
1403 // 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
|
1404 // copy constraints. |
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1405 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
|
1406 : base_property (p), m_data (p.m_data), |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1407 m_min_val (p.m_min_val), m_max_val (p.m_max_val), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1408 m_min_pos (p.m_min_pos), m_max_neg (p.m_max_neg), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1409 m_type_constraints (), m_size_constraints (), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
1410 m_finite_constraint (NO_CHECK), |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1411 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
|
1412 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
|
1413 { } |
7848
6bb2bbc2bf45
Remove data_property, replace with array_property or row_vector_property.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7847
diff
changeset
|
1414 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1415 octave_value get () const { return m_data; } |
7363 | 1416 |
1417 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
|
1418 { m_type_constraints.insert (type); } |
7363 | 1419 |
7524
a653856aa3e1
array_value::add_constraint: pass dim_vector as const reference, not value
John W. Eaton <jwe@octave.org>
parents:
7523
diff
changeset
|
1420 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
|
1421 { m_size_constraints.push_back (dims); } |
7363 | 1422 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1423 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
|
1424 { 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
|
1425 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1426 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
|
1427 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1428 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
|
1429 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
|
1430 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
|
1431 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
|
1432 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1433 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1434 double min_val () const { return m_min_val; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1435 double max_val () const { return m_max_val; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1436 double min_pos () const { return m_min_pos; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1437 double max_neg () const { return m_max_neg; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1438 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1439 Matrix get_limits () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1440 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1441 Matrix m (1, 4); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1442 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1443 m(0) = min_val (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1444 m(1) = max_val (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1445 m(2) = min_pos (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1446 m(3) = max_neg (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1447 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1448 return m; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1449 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
1450 |
7363 | 1451 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
|
1452 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1453 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1454 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1455 } |
7363 | 1456 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1457 base_property * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1458 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1459 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
|
1460 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1461 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
|
1462 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
|
1463 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
|
1464 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
|
1465 p->m_maxval = m_maxval; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1466 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1467 return p; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1468 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1469 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1470 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1471 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
|
1472 { |
23583
b7747a2c88b2
maint: Deprecate is_sparse_type and replace with issparse.
Rik <rik@octave.org>
parents:
23582
diff
changeset
|
1473 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
|
1474 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1475 if (! validate (tmp)) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1476 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
|
1477 get_name ().c_str ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1478 |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1479 // 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
|
1480 if (! is_equal (tmp)) |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1481 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1482 m_data = tmp; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1483 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1484 get_data_limits (); |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1485 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1486 return true; |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1487 } |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1488 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1489 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1490 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1491 |
7363 | 1492 private: |
1493 OCTINTERP_API bool validate (const octave_value& v); | |
1494 | |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1495 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
|
1496 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1497 OCTINTERP_API void get_data_limits (); |
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
|
1498 |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1499 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
|
1500 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
|
1501 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
|
1502 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
|
1503 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
|
1504 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
|
1505 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
|
1506 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
|
1507 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
|
1508 std::pair<double, bool> m_minval, m_maxval; |
7363 | 1509 }; |
1510 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1511 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
|
1512 { |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1513 public: |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1514 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
|
1515 const octave_value& m) |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1516 : array_property (nm, h, m) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1517 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1518 add_constraint (dim_vector (-1, 1)); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1519 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
|
1520 add_constraint (dim_vector (0, 0)); |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1521 } |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1522 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1523 row_vector_property (const row_vector_property& p) |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1524 : array_property (p) |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1525 { |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1526 add_constraint (dim_vector (-1, 1)); |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1527 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
|
1528 add_constraint (dim_vector (0, 0)); |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1529 } |
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1530 |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1531 void add_constraint (const std::string& type) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1532 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1533 array_property::add_constraint (type); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1534 } |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1535 |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1536 void add_constraint (const dim_vector& dims) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1537 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1538 array_property::add_constraint (dims); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1539 } |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1540 |
23124
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1541 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
|
1542 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1543 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
|
1544 } |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1545 |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1546 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
|
1547 { |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1548 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
|
1549 } |
9e54152e382b
Add new types of constraints for graphics properties (bug #50041).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23116
diff
changeset
|
1550 |
7527
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1551 void add_constraint (octave_idx_type len) |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1552 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1553 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
|
1554 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
|
1555 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
|
1556 |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1557 add_constraint (dim_vector (1, len)); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1558 add_constraint (dim_vector (len, 1)); |
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 |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1561 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
|
1562 { |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1563 set (val); |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1564 return *this; |
d219e712c20e
make row_vector_property work?
John W. Eaton <jwe@octave.org>
parents:
7526
diff
changeset
|
1565 } |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1566 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1567 base_property * clone () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1568 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1569 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
|
1570 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1571 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
|
1572 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
|
1573 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
|
1574 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
|
1575 p->m_maxval = m_maxval; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1576 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1577 return p; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1578 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1579 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1580 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1581 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
|
1582 { |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1583 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
|
1584 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1585 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
|
1586 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1587 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
|
1588 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1589 int tmp = dv(0); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1590 dv(0) = dv(1); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1591 dv(1) = tmp; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1592 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1593 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
|
1594 } |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1595 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1596 return retval; |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1597 } |
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1598 |
7523
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1599 private: |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1600 OCTINTERP_API bool validate (const octave_value& v); |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1601 }; |
f2000f1971ab
new row_vector_property class
John W. Eaton <jwe@octave.org>
parents:
7471
diff
changeset
|
1602 |
7363 | 1603 // --------------------------------------------------------------------- |
1604 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1605 class OCTINTERP_API bool_property : public radio_property |
7363 | 1606 { |
1607 public: | |
7364 | 1608 bool_property (const std::string& nm, const graphics_handle& h, |
7363 | 1609 bool val) |
7364 | 1610 : 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
|
1611 { } |
7363 | 1612 |
7364 | 1613 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
|
1614 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
|
1615 : 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
|
1616 "{on}|off" : "on|{off}"), val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1617 { } |
7363 | 1618 |
1619 bool_property (const bool_property& p) | |
1620 : radio_property (p) { } | |
1621 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1622 bool is_on () const { return is ("on"); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1623 |
7363 | 1624 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
|
1625 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1626 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1627 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1628 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1629 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1630 base_property * clone () const { return new bool_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1631 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1632 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1633 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
|
1634 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1635 if (val.is_bool_scalar ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1636 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
|
1637 else |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1638 return radio_property::do_set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1639 } |
7363 | 1640 }; |
1641 | |
1642 // --------------------------------------------------------------------- | |
1643 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1644 class OCTINTERP_API handle_property : public base_property |
7363 | 1645 { |
1646 public: | |
7364 | 1647 handle_property (const std::string& nm, const graphics_handle& h, |
7363 | 1648 const graphics_handle& val = graphics_handle ()) |
7364 | 1649 : 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
|
1650 m_current_val (val) { } |
7363 | 1651 |
1652 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
|
1653 : 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
|
1654 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1655 octave_value get () const { return m_current_val.as_octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1656 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1657 graphics_handle handle_value () const { return m_current_val; } |
7363 | 1658 |
1659 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
|
1660 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1661 set (val); |
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 |
1665 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
|
1666 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1667 set (octave_value (h.value ())); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1668 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1669 } |
7363 | 1670 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1671 void invalidate () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1672 { 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
|
1673 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1674 base_property * clone () const { return new handle_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1675 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
1676 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
|
1677 { 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
|
1678 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1679 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1680 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
|
1681 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
|
1682 |
7363 | 1683 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
|
1684 graphics_handle m_current_val; |
7363 | 1685 }; |
1686 | |
1687 // --------------------------------------------------------------------- | |
1688 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1689 class OCTINTERP_API any_property : public base_property |
7363 | 1690 { |
1691 public: | |
7364 | 1692 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
|
1693 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
|
1694 : base_property (nm, h), m_data (m) { } |
7363 | 1695 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1696 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
|
1697 : 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
|
1698 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1699 octave_value get () const { return m_data; } |
7363 | 1700 |
1701 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
|
1702 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1703 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1704 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1705 } |
7363 | 1706 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1707 base_property * clone () const { return new any_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1708 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1709 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1710 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
|
1711 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1712 m_data = v; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1713 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1714 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1715 |
7363 | 1716 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
|
1717 octave_value m_data; |
7363 | 1718 }; |
1719 | |
1720 // --------------------------------------------------------------------- | |
1721 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1722 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
|
1723 { |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1724 public: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1725 children_property () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1726 : 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
|
1727 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1728 do_init_children (Matrix ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1729 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
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 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
|
1732 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
|
1733 : 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
|
1734 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1735 do_init_children (val); |
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 (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
|
1739 : 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
|
1740 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1741 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
|
1742 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1743 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1744 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
|
1745 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1746 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1747 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1748 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1749 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1750 base_property * clone () 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
|
1751 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1752 bool remove_child (double val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1753 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1754 return do_remove_child (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1755 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1756 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1757 void adopt (double val) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1758 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1759 do_adopt_child (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1760 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1761 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1762 Matrix get_children () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1763 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1764 return do_get_children (false); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1765 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1766 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1767 Matrix get_hidden () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1768 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1769 return do_get_children (true); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1772 Matrix get_all () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1773 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1774 return do_get_all_children (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1775 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1776 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1777 octave_value get () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1778 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1779 return octave_value (get_children ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1780 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1781 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
1782 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
|
1783 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1784 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
|
1785 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1786 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
1787 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
|
1788 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1789 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
|
1790 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1791 if (hchild == old_gh) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1792 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1793 hchild = new_gh.value (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1794 return; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1795 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1796 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1797 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1798 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
|
1799 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
1800 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1801 private: |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1802 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
|
1803 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
|
1804 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
|
1805 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1806 protected: |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1807 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
|
1808 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1809 Matrix new_kids; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1810 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1811 try |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1812 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1813 new_kids = val.matrix_value (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1814 } |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
1815 catch (octave::execution_exception& ee) |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1816 { |
29163
8f67ad8b3103
maint: Updating naming conventions for exceptions and use const where possible.
Rik <rik@octave.org>
parents:
29015
diff
changeset
|
1817 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
|
1818 } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1819 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1820 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
|
1821 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1822 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
|
1823 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1824 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
|
1825 bool add_hidden = true; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1826 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1827 const Matrix visible_kids = do_get_children (false); |
31241
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1828 const Matrix hidden_kids = do_get_children (true); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1829 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1830 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
|
1831 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1832 Matrix t1 = visible_kids.sort (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1833 Matrix t2 = new_kids_column.sort (); |
31241
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1834 Matrix t3 = hidden_kids.sort (); |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1835 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1836 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
|
1837 is_ok = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1838 |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1839 if (t1 == t3) |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1840 add_hidden = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1841 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1842 else |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1843 is_ok = false; |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1844 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
1845 if (! is_ok) |
31241
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1846 error ("set: new children list must be a permutation of existing " |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1847 "children with visible handles"); |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1848 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1849 m_children_list.clear (); |
26383
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1850 |
5455de7c8566
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26376
diff
changeset
|
1851 // 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
|
1852 // 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
|
1853 // the child list directly. |
31241
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1854 for (octave_idx_type i = 0; i < new_kids_column.numel (); i++) |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1855 m_children_list.push_back (new_kids_column.xelem (i)); |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1856 |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1857 if (add_hidden) |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1858 for (octave_idx_type i = 0; i < hidden_kids.numel (); i++) |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1859 m_children_list.push_back (hidden_kids.xelem (i)); |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1860 |
5ea5fe592a9a
Don't delete labels when reordering of axes children (bug #63117)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
31238
diff
changeset
|
1861 return true; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1862 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1863 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1864 private: |
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 Matrix& 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 (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1868 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
|
1869 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
|
1870 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1871 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1872 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
|
1873 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1874 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
|
1875 m_children_list = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1876 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1877 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1878 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
|
1879 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1880 Matrix do_get_all_children () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1881 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1882 Matrix retval (m_children_list.size (), 1); |
21568
3d60ed163b70
maint: Eliminate bad spacing around '='.
Rik <rik@octave.org>
parents:
21562
diff
changeset
|
1883 octave_idx_type i = 0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1884 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1885 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
|
1886 retval(i++) = hchild; |
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1887 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1888 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1889 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1890 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1891 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
|
1892 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1893 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
|
1894 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
1895 if (*it == child) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1896 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1897 m_children_list.erase (it); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1898 return true; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1899 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1900 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1901 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1902 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1903 |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
1904 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
|
1905 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1906 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
|
1907 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
1908 |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
1909 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
|
1910 }; |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1911 |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1912 // --------------------------------------------------------------------- |
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
1913 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1914 class OCTINTERP_API callback_property : public base_property |
7363 | 1915 { |
1916 public: | |
7364 | 1917 callback_property (const std::string& nm, const graphics_handle& h, |
7363 | 1918 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
|
1919 : base_property (nm, h), m_callback (m) { } |
7363 | 1920 |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1921 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
|
1922 : 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
|
1923 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1924 octave_value get () const { return m_callback; } |
7363 | 1925 |
7367 | 1926 OCTINTERP_API void execute (const octave_value& data = octave_value ()) const; |
7363 | 1927 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1928 bool is_defined () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1929 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1930 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
|
1931 } |
10517 | 1932 |
7363 | 1933 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
|
1934 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1935 set (val); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1936 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1937 } |
7363 | 1938 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1939 base_property * clone () const { return new callback_property (*this); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
1940 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1941 protected: |
8063
41bc700ff642
Trigger actions/listeners only for actual property change
Michael Goffioul
parents:
8061
diff
changeset
|
1942 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
|
1943 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1944 if (! validate (v)) |
23803
90689bdbe048
Use C++11 raw string literals to avoid escaping double quotes.
Rik <rik@octave.org>
parents:
23795
diff
changeset
|
1945 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
|
1946 get_name ().c_str ()); |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1947 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1948 m_callback = v; |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
1949 return true; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1950 return false; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1951 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
1952 |
7363 | 1953 private: |
1954 OCTINTERP_API bool validate (const octave_value& v) const; | |
1955 | |
1956 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
|
1957 octave_value m_callback; |
7363 | 1958 }; |
1959 | |
1960 // --------------------------------------------------------------------- | |
1961 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
1962 class OCTINTERP_API property |
7363 | 1963 { |
1964 public: | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1965 property () : 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
|
1966 { } |
7363 | 1967 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1968 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
|
1969 { 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
|
1970 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1971 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
|
1972 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1973 m_rep->m_count++; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1974 } |
7363 | 1975 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1976 ~property () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1977 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
1978 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
|
1979 delete m_rep; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
1980 } |
7363 | 1981 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1982 bool ok () 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
|
1983 { return m_rep->ok (); } |
7363 | 1984 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1985 std::string get_name () 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
|
1986 { return m_rep->get_name (); } |
7363 | 1987 |
1988 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
|
1989 { m_rep->set_name (name); } |
7363 | 1990 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1991 graphics_handle get_parent () 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
|
1992 { return m_rep->get_parent (); } |
7363 | 1993 |
1994 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
|
1995 { m_rep->set_parent (h); } |
7363 | 1996 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
1997 bool is_hidden () 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
|
1998 { return m_rep->is_hidden (); } |
7363 | 1999 |
2000 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
|
2001 { m_rep->set_hidden (flag); } |
7363 | 2002 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2003 bool is_radio () 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
|
2004 { return m_rep->is_radio (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2005 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2006 int get_id () 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
|
2007 { return m_rep->get_id (); } |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2008 |
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2009 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
|
2010 { m_rep->set_id (d); } |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
2011 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2012 octave_value get () 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->get (); } |
7363 | 2014 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2015 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
|
2016 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
|
2017 { return m_rep->set (val, do_run, do_notify_toolkit); } |
7363 | 2018 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2019 std::string values_as_string () 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
|
2020 { return m_rep->values_as_string (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2021 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2022 Cell values_as_cell () 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
|
2023 { return m_rep->values_as_cell (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2024 |
7363 | 2025 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
|
2026 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2027 *m_rep = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2028 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2029 } |
7363 | 2030 |
2031 property& operator = (const property& p) | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2032 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2033 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
|
2034 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
|
2035 |
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 = 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
|
2037 m_rep->m_count++; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2038 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2039 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2040 } |
7363 | 2041 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2042 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
|
2043 { 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
|
2044 |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2045 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
|
2046 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
|
2047 { 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
|
2048 |
27320
1dfd6ae74fbf
use GCB_ prefix for global listener_mode enum names
John W. Eaton <jwe@octave.org>
parents:
27099
diff
changeset
|
2049 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
|
2050 { m_rep->run_listeners (mode); } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2051 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2052 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
|
2053 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
|
2054 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
|
2055 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2056 property clone () 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 property (m_rep->clone ()); } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2058 |
7363 | 2059 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
|
2060 base_property *m_rep; |
7363 | 2061 }; |
2062 | |
2063 // --------------------------------------------------------------------- | |
2064 | |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
2065 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
|
2066 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2067 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
|
2068 { |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2069 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
|
2070 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
|
2071 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2072 const_iterator it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2073 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2074 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
|
2075 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
|
2076 return it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2077 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2078 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
|
2079 } |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2080 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2081 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
|
2082 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2083 iterator it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2084 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2085 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
|
2086 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
|
2087 return it; |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2088 |
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 (*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
|
2090 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2091 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2092 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
|
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 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
|
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 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
|
2097 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2098 if (it != (*this).end ()) |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2099 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
|
2100 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2101 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
|
2102 } |
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 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
|
2105 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2106 iterator it = find (pname); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2107 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2108 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
|
2109 { |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2110 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
|
2111 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
|
2112 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2113 |
19086
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 (*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
|
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 |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2117 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
|
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); |
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2120 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
|
2121 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
|
2122 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2123 |
19086
dc88c5784f74
Respect the order in which default graphics properties are set (bug #38449)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19047
diff
changeset
|
2124 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
|
2125 { |
21880
a6952c880cec
maint: Use 'auto' in graphics.cc, graphics.in.h files.
Rik <rik@octave.org>
parents:
21824
diff
changeset
|
2126 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
|
2127 } |
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 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2131 class OCTINTERP_API property_list |
7363 | 2132 { |
2133 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
|
2134 typedef pval_vector pval_map_type; |
7363 | 2135 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
|
2136 |
7363 | 2137 typedef pval_map_type::iterator pval_map_iterator; |
2138 typedef pval_map_type::const_iterator pval_map_const_iterator; | |
2139 | |
2140 typedef plist_map_type::iterator plist_map_iterator; | |
2141 typedef plist_map_type::const_iterator plist_map_const_iterator; | |
2142 | |
2143 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
|
2144 : m_plist_map (m) { } |
7363 | 2145 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2146 ~property_list () = default; |
7363 | 2147 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2148 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
|
2149 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2150 OCTINTERP_API octave_value lookup (const caseless_str& name) const; |
7363 | 2151 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2152 plist_map_iterator begin () { return m_plist_map.begin (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2153 plist_map_const_iterator begin () const { return m_plist_map.begin (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2154 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2155 plist_map_iterator end () { return m_plist_map.end (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2156 plist_map_const_iterator end () const { return m_plist_map.end (); } |
7363 | 2157 |
2158 plist_map_iterator find (const std::string& go_name) | |
2159 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2160 return m_plist_map.find (go_name); |
7363 | 2161 } |
2162 | |
2163 plist_map_const_iterator find (const std::string& go_name) const | |
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 return m_plist_map.find (go_name); |
7363 | 2166 } |
2167 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2168 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
|
2169 as_struct (const std::string& prefix_arg) const; |
7363 | 2170 |
2171 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
|
2172 plist_map_type m_plist_map; |
7363 | 2173 }; |
2174 | |
2175 // --------------------------------------------------------------------- | |
2176 | |
6874 | 2177 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
|
2178 class graphics_object; |
6874 | 2179 |
7365 | 2180 class OCTINTERP_API base_properties |
6874 | 2181 { |
2182 public: | |
7176 | 2183 base_properties (const std::string& ty = "unknown", |
7363 | 2184 const graphics_handle& mh = graphics_handle (), |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2185 const graphics_handle& p = graphics_handle ()); |
6874 | 2186 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2187 virtual ~base_properties () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2188 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2189 virtual std::string graphics_object_name () const { return "unknown"; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2190 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2191 OCTINTERP_API void mark_modified (); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2192 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2193 OCTINTERP_API void override_defaults (base_graphics_object& obj); |
6874 | 2194 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2195 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
|
2196 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2197 panic_impossible (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2198 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2199 |
6874 | 2200 // Look through DEFAULTS for properties with given CLASS_NAME, and |
2201 // apply them to the current object with set (virtual method). | |
2202 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2203 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
|
2204 set_from_list (base_graphics_object& obj, property_list& defaults); |
6874 | 2205 |
7363 | 2206 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
|
2207 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2208 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
|
2209 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
|
2210 m_all_props[name] = p; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2211 } |
7363 | 2212 |
9972 | 2213 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
|
2214 |
1e5c11890f85
check for invalid property names when setting defaults
John W. Eaton <jwe@octave.org>
parents:
9004
diff
changeset
|
2215 virtual octave_value get (const caseless_str& pname) const; |
7363 | 2216 |
9616
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2217 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
|
2218 { |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2219 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
|
2220 } |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2221 |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2222 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
|
2223 { |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2224 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
|
2225 } |
2093499ec9f4
avoid crash if default font can't be found
John W. Eaton <jwe@octave.org>
parents:
9585
diff
changeset
|
2226 |
7379 | 2227 virtual octave_value get (bool all = false) const; |
7363 | 2228 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2229 // 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
|
2230 // 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
|
2231 // 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
|
2232 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
|
2233 |
9585
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2234 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
|
2235 { |
06b8b51dca48
also handle user-defined graphics properties in new property name validation scheme
John W. Eaton <jwe@octave.org>
parents:
9582
diff
changeset
|
2236 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
|
2237 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
|
2238 } |
7864
56f781f38f0b
Add dynamic property creation
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7862
diff
changeset
|
2239 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2240 bool is_modified () const { return is___modified__ (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2241 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2242 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
|
2243 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2244 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
|
2245 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2246 m_children.run_listeners (); |
26982
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2247 mark_modified (); |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2248 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2249 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2250 |
7386 | 2251 virtual void adopt (const graphics_handle& h) |
6874 | 2252 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2253 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
|
2254 m_children.run_listeners (); |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
2255 mark_modified (); |
6874 | 2256 } |
2257 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2258 virtual octave::graphics_toolkit get_toolkit () const; |
7419 | 2259 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2260 virtual Matrix |
20946 | 2261 get_boundingbox (bool /* finternal */ = false, |
2262 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
|
2263 { return Matrix (1, 4, 0.0); } |
7447 | 2264 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2265 virtual void update_boundingbox (); |
7828
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
2266 |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
2267 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
|
2268 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2269 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
|
2270 listener_mode = GCB_POSTSET); |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2271 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2272 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
|
2273 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
|
2274 |
27698
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2275 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
|
2276 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2277 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
|
2278 update_beingdeleted (); |
27698
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2279 } |
f65b1666e650
don't notify toolkit when setting beingdeleted property (bug #56952)
John W. Eaton <jwe@octave.org>
parents:
27682
diff
changeset
|
2280 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2281 void set_tag (const octave_value& val) { m_tag = val; } |
7176 | 2282 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2283 OCTINTERP_API void set_parent (const octave_value& val); |
6874 | 2284 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2285 Matrix get_children () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2286 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2287 return m_children.get_children (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2288 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2289 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2290 Matrix get_all_children () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2291 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2292 return m_children.get_all (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2293 } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2294 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2295 Matrix get_hidden_children () const |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2296 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2297 return m_children.get_hidden (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2298 } |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2299 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2300 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
|
2301 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
|
2302 bool traverse, |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2303 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
|
2304 |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2305 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
|
2306 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2307 void set___modified__ (const octave_value& val) { m___modified__ = val; } |
7366 | 2308 |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2309 // 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
|
2310 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2311 graphics_handle get_uicontextmenu () const |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2312 { |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2313 return get_contextmenu (); |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2314 } |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2315 |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2316 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
|
2317 { |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2318 set_contextmenu (val); |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2319 } |
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
2320 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2321 void reparent (const graphics_handle& new_parent) { m_parent = new_parent; } |
6874 | 2322 |
7214 | 2323 // Update data limits for AXIS_TYPE (xdata, ydata, etc.) in the parent |
2324 // axes object. | |
2325 | |
7386 | 2326 virtual void update_axis_limits (const std::string& axis_type) const; |
7214 | 2327 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2328 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
|
2329 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
|
2330 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2331 virtual void update_contextmenu () const; |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
2332 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2333 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
|
2334 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2335 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
|
2336 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2337 |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2338 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
|
2339 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2340 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
|
2341 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2342 |
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2343 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
|
2344 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2345 m_parent = new_gh; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2346 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
2347 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2348 static OCTINTERP_API property_list::pval_map_type factory_defaults (); |
7222 | 2349 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
2350 // 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
|
2351 // genprops.awk script. |
7222 | 2352 // |
2353 // 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
|
2354 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2355 virtual octave_value get_alim () const { return octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2356 virtual octave_value get_clim () const { return octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2357 virtual octave_value get_xlim () const { return octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2358 virtual octave_value get_ylim () const { return octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2359 virtual octave_value get_zlim () const { return octave_value (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2360 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2361 virtual bool is_aliminclude () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2362 virtual bool is_climinclude () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2363 virtual bool is_xliminclude () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2364 virtual bool is_yliminclude () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2365 virtual bool is_zliminclude () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2366 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2367 OCTINTERP_API bool is_handle_visible () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2368 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2369 OCTINTERP_API std::set<std::string> dynamic_property_names () const; |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2370 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2371 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
|
2372 |
6874 | 2373 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
|
2374 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
|
2375 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2376 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
|
2377 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
|
2378 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2379 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
|
2380 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2381 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
|
2382 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2383 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
|
2384 |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2385 BEGIN_BASE_PROPERTIES |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2386 // 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
|
2387 bool_property beingdeleted s , "off" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2388 radio_property busyaction , "{queue}|cancel" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2389 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
|
2390 children_property children gf , Matrix () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2391 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
|
2392 handle_property contextmenu u , graphics_handle () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2393 callback_property createfcn , Matrix () |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2394 callback_property deletefcn , Matrix () |
24395
41cf6ee90cb6
Better handling of "handlevisibility" property (bug #52621).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24277
diff
changeset
|
2395 radio_property handlevisibility u , "{on}|callback|off" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2396 bool_property hittest , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2397 bool_property interruptible , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2398 handle_property parent fs , p |
24523
501986e12b8b
Implement "pickableparts" property (bug #52795).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24501
diff
changeset
|
2399 radio_property pickableparts , "{visible}|all|none" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2400 bool_property selected , "off" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2401 bool_property selectionhighlight , "on" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2402 string_property tag s , "" |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2403 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
|
2404 handle_property uicontextmenu gsh , graphics_handle () |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2405 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
|
2406 bool_property visible u , "on" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2407 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
2408 // Octave-specific properties |
27682
e18237114cf8
Hide __appdata__ internal property (bug #57211).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
27446
diff
changeset
|
2409 any_property __appdata__ h , Matrix () |
22665
4ea5b0c3b10f
Make base graphics property __modified__ hidden (bug #49205).
Rik <rik@octave.org>
parents:
22631
diff
changeset
|
2410 bool_property __modified__ hs , "on" |
8061
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2411 graphics_handle __myhandle__ fhrs , mh |
f819e8992367
Auto-generate base_properties
John W. Eaton <jwe@octave.org>
parents:
8059
diff
changeset
|
2412 END_PROPERTIES |
7363 | 2413 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2414 virtual void update_beingdeleted () { }; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2415 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2416 virtual void update_handlevisibility (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2417 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2418 virtual void update_visible () { }; |
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 |
7363 | 2420 protected: |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2421 struct cmp_caseless_str |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2422 { |
30155
14b098a6ba46
maint: Use public: qualifier in structs that are really classes.
Rik <rik@octave.org>
parents:
30053
diff
changeset
|
2423 public: |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
2424 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
|
2425 { |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2426 std::string a1 = a; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2427 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
|
2428 std::string b1 = b; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2429 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
|
2430 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2431 return a1 < b1; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2432 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2433 }; |
8052
961d4c52ffae
Convert stem and stem3 to use stem series objects
David Bateman <dbateman@free.fr>
parents:
8023
diff
changeset
|
2434 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2435 std::map<caseless_str, property, cmp_caseless_str> m_all_props; |
7363 | 2436 |
2437 protected: | |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2438 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2439 virtual void init () |
22910
23847979b91e
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
22869
diff
changeset
|
2440 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2441 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
|
2442 } |
6874 | 2443 }; |
2444 | |
7365 | 2445 class OCTINTERP_API base_graphics_object |
6874 | 2446 { |
2447 public: | |
2448 friend class graphics_object; | |
2449 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2450 base_graphics_object () : m_toolkit_flag (false) { } |
6874 | 2451 |
31837
febd82d1a8de
use new macros to consistently delete copy and move member functions
John W. Eaton <jwe@octave.org>
parents:
31827
diff
changeset
|
2452 OCTAVE_DISABLE_COPY_MOVE (base_graphics_object) |
22869
f75d289645ec
make deleted functions public
John W. Eaton <jwe@octave.org>
parents:
22868
diff
changeset
|
2453 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2454 virtual ~base_graphics_object () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2455 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2456 virtual void mark_modified () |
6874 | 2457 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2458 if (! valid_object ()) |
7386 | 2459 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
|
2460 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2461 get_properties ().mark_modified (); |
6874 | 2462 } |
2463 | |
7386 | 2464 virtual void override_defaults (base_graphics_object& obj) |
6874 | 2465 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2466 if (! valid_object ()) |
7386 | 2467 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
|
2468 get_properties ().override_defaults (obj); |
6874 | 2469 } |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2470 |
23433
c9fab0bc983e
maint: Use convention 'int& x' for naming references.
Rik <rik@octave.org>
parents:
23401
diff
changeset
|
2471 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
|
2472 const std::string go_name) const; |
6874 | 2473 |
7386 | 2474 virtual void set_from_list (property_list& plist) |
6874 | 2475 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2476 if (! valid_object ()) |
7386 | 2477 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
|
2478 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2479 get_properties ().set_from_list (*this, plist); |
6874 | 2480 } |
2481 | |
7386 | 2482 virtual void set (const caseless_str& pname, const octave_value& pval) |
6874 | 2483 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2484 if (! valid_object ()) |
7386 | 2485 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
|
2486 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2487 get_properties ().set (pname, pval); |
6874 | 2488 } |
2489 | |
2490 virtual void set_defaults (const std::string&) | |
2491 { | |
2492 error ("base_graphics_object::set_defaults: invalid graphics object"); | |
2493 } | |
2494 | |
26918
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2495 // 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
|
2496 // because no derived class overrides it. |
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2497 |
0a13d8d19790
avoid some overloaded virtual warnings (bug #55741)
John W. Eaton <jwe@octave.org>
parents:
26879
diff
changeset
|
2498 octave_value get (bool all = false) const |
6874 | 2499 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2500 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2501 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
|
2502 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2503 return get_properties ().get (all); |
6874 | 2504 } |
2505 | |
7386 | 2506 virtual octave_value get (const caseless_str& pname) const |
6874 | 2507 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2508 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2509 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
|
2510 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2511 return get_properties ().get (pname); |
6874 | 2512 } |
2513 | |
7189 | 2514 virtual octave_value get_default (const caseless_str&) const; |
6874 | 2515 |
7189 | 2516 virtual octave_value get_factory_default (const caseless_str&) const; |
6874 | 2517 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2518 virtual octave_value get_defaults () const |
6874 | 2519 { |
2520 error ("base_graphics_object::get_defaults: invalid graphics object"); | |
2521 } | |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
2522 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2523 virtual property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2524 { |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2525 if (! valid_object ()) |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2526 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
|
2527 |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2528 return property_list (); |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2529 } |
6874 | 2530 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2531 virtual octave_value get_factory_defaults () const |
6874 | 2532 { |
2533 error ("base_graphics_object::get_factory_defaults: invalid graphics object"); | |
2534 } | |
2535 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2536 virtual property_list get_factory_defaults_list () const |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2537 { |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2538 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
|
2539 } |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2540 |
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
|
2541 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
|
2542 { |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2543 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
|
2544 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2545 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2546 // 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
|
2547 // currently not possible. |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2548 virtual std::string values_as_string (); |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2549 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2550 // 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
|
2551 // currently not possible. |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
2552 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
|
2553 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2554 // 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
|
2555 // currently not possible. |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2556 virtual octave_scalar_map values_as_struct (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2557 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2558 virtual graphics_handle get_parent () const |
6874 | 2559 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2560 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2561 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
|
2562 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2563 return get_properties ().get_parent (); |
6874 | 2564 } |
2565 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2566 graphics_handle get_handle () const |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2567 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2568 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2569 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
|
2570 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2571 return get_properties ().get___myhandle__ (); |
7936
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2572 } |
78400fde223e
Support for backend-to-octave event management
John W. Eaton <jwe@octave.org>
parents:
7902
diff
changeset
|
2573 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
2574 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
|
2575 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2576 if (! valid_object ()) |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2577 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
|
2578 |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2579 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
|
2580 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
2581 |
7386 | 2582 virtual void adopt (const graphics_handle& h) |
6874 | 2583 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2584 if (! valid_object ()) |
7386 | 2585 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
|
2586 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2587 get_properties ().adopt (h); |
6874 | 2588 } |
2589 | |
7386 | 2590 virtual void reparent (const graphics_handle& np) |
6874 | 2591 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2592 if (! valid_object ()) |
7386 | 2593 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
|
2594 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2595 get_properties ().reparent (np); |
6874 | 2596 } |
2597 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2598 virtual void defaults () const |
6874 | 2599 { |
20962
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
2600 if (! valid_object ()) |
7386 | 2601 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
|
2602 |
3aa293be0e8d
maint: Invert simple conditionals in if/else/error paradigm.
Rik <rik@octave.org>
parents:
20956
diff
changeset
|
2603 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
|
2604 err_not_implemented (msg.c_str ()); |
6874 | 2605 } |
2606 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2607 virtual base_properties& get_properties () |
6874 | 2608 { |
2609 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
|
2610 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
|
2611 return properties; |
6874 | 2612 } |
2613 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2614 virtual const base_properties& get_properties () const |
7222 | 2615 { |
2616 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
|
2617 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
|
2618 return properties; |
7222 | 2619 } |
2620 | |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
2621 virtual void update_axis_limits (const std::string& axis_type); |
7214 | 2622 |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2623 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
|
2624 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
|
2625 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2626 virtual bool valid_object () const { return false; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2627 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2628 bool valid_toolkit_object () const { return m_toolkit_flag; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2629 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2630 virtual std::string type () const |
7386 | 2631 { |
2632 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
|
2633 : "unknown"); |
7386 | 2634 } |
6874 | 2635 |
2636 bool isa (const std::string& go_name) const | |
2637 { | |
2638 return type () == go_name; | |
2639 } | |
2640 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2641 virtual octave::graphics_toolkit get_toolkit () const |
7419 | 2642 { |
20976
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2643 if (! valid_object ()) |
20956
850e3d2533d4
maint: Eliminate more useless statements after error().
Rik <rik@octave.org>
parents:
20955
diff
changeset
|
2644 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
|
2645 |
0fd972b06a6f
maint: graphics.in.h: invert if/else/error instances.
John W. Eaton <jwe@octave.org>
parents:
20962
diff
changeset
|
2646 return get_properties ().get_toolkit (); |
7419 | 2647 } |
2648 | |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2649 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
|
2650 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
|
2651 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2652 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2653 if (valid_object ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2654 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
|
2655 } |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2656 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2657 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
|
2658 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
|
2659 listener_mode mode = GCB_POSTSET) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2660 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2661 if (valid_object ()) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2662 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
|
2663 } |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2664 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2665 virtual void remove_all_listeners (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2666 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2667 virtual void reset_default_properties (); |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
2668 |
6874 | 2669 protected: |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2670 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
|
2671 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2672 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
|
2673 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
|
2674 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2675 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2676 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
|
2677 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2678 if (m_toolkit_flag) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2679 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2680 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
|
2681 m_toolkit_flag = false; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2682 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2683 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2684 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2685 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
|
2686 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2687 if (m_toolkit_flag) |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2688 get_toolkit ().update (go, id); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2689 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2690 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2691 protected: |
12164
18e9a8da7d18
eliminate some -Weffc++ warnings
Pascal Dupuis <Pascal.Dupuis@uclouvain.be>
parents:
12126
diff
changeset
|
2692 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
2693 // 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
|
2694 // 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
|
2695 bool m_toolkit_flag; |
6874 | 2696 }; |
2697 | |
7365 | 2698 class OCTINTERP_API graphics_object |
6874 | 2699 { |
2700 public: | |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2701 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2702 graphics_object () : m_rep (new base_graphics_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
|
2703 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2704 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
|
2705 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
2706 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
|
2707 |
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
2708 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
|
2709 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2710 ~graphics_object () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2711 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2712 void mark_modified () { m_rep->mark_modified (); } |
6874 | 2713 |
2714 void override_defaults (base_graphics_object& obj) | |
2715 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2716 m_rep->override_defaults (obj); |
6874 | 2717 } |
2718 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2719 void override_defaults () |
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
|
2720 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2721 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
|
2722 } |
10600b2dd3c1
make units other than data work for axes labels and title (bug #35857)
John W. Eaton <jwe@octave.org>
parents:
20045
diff
changeset
|
2723 |
23433
c9fab0bc983e
maint: Use convention 'int& x' for naming references.
Rik <rik@octave.org>
parents:
23401
diff
changeset
|
2724 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
|
2725 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
|
2726 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2727 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
|
2728 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2729 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2730 void set_from_list (property_list& plist) { m_rep->set_from_list (plist); } |
6874 | 2731 |
7189 | 2732 void set (const caseless_str& name, const octave_value& val) |
6874 | 2733 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2734 m_rep->set (name, val); |
6874 | 2735 } |
2736 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2737 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
|
2738 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2739 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
|
2740 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
|
2741 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2742 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
|
2743 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2744 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
|
2745 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
|
2746 |
29889
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_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
|
2748 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2749 octave_value get (bool all = false) const { return m_rep->get (all); } |
6874 | 2750 |
7189 | 2751 octave_value get (const caseless_str& name) const |
6874 | 2752 { |
2753 return name.compare ("default") | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2754 ? get_defaults () |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
2755 : (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
|
2756 ? get_factory_defaults () : m_rep->get (name)); |
6874 | 2757 } |
2758 | |
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
|
2759 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
|
2760 { |
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
|
2761 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
|
2762 } |
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
|
2763 |
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
|
2764 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
|
2765 { |
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
|
2766 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
|
2767 } |
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
|
2768 |
7189 | 2769 octave_value get_default (const caseless_str& name) const |
6874 | 2770 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2771 return m_rep->get_default (name); |
6874 | 2772 } |
2773 | |
7189 | 2774 octave_value get_factory_default (const caseless_str& name) const |
6874 | 2775 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2776 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
|
2777 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2778 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2779 octave_value get_defaults () const { return m_rep->get_defaults (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2780 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2781 property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2782 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2783 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
|
2784 } |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
2785 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2786 octave_value get_factory_defaults () 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_factory_defaults (); |
6874 | 2789 } |
2790 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2791 property_list get_factory_defaults_list () const |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
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_defaults_list (); |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2794 } |
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
2795 |
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
|
2796 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
|
2797 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2798 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
|
2799 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
2800 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2801 // 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
|
2802 // currently not possible. |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2803 std::string values_as_string () { return m_rep->values_as_string (); } |
10717
9d4a198614ab
Add functionality set(handle)
David Bateman <dbateman@free.fr>
parents:
10596
diff
changeset
|
2804 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2805 // 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
|
2806 // currently not possible. |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
2807 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
|
2808 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2809 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
|
2810 } |
ca84d3c9dc24
set: allow retrieving allowed values for individual properties
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
17822
diff
changeset
|
2811 |
28346
d0555f415774
fix constness of some graphics properties methods
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
2812 // 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
|
2813 // currently not possible. |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2814 octave_map values_as_struct () { return m_rep->values_as_struct (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2815 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2816 graphics_handle get_parent () const { return m_rep->get_parent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2817 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2818 graphics_handle get_handle () 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
|
2819 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2820 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
|
2821 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2822 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
|
2823 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2824 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
|
2825 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2826 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
|
2827 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2828 void defaults () const { m_rep->defaults (); } |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2829 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2830 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
|
2831 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2832 base_properties& get_properties () { return m_rep->get_properties (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2833 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2834 const base_properties& get_properties () const |
7222 | 2835 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2836 return m_rep->get_properties (); |
7222 | 2837 } |
2838 | |
7214 | 2839 void update_axis_limits (const std::string& axis_type) |
2840 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2841 m_rep->update_axis_limits (axis_type); |
7214 | 2842 } |
2843 | |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
2844 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
|
2845 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
|
2846 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2847 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
|
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2850 bool valid_object () const { return m_rep->valid_object (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2851 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2852 std::string type () const { return m_rep->type (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2853 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2854 operator bool () const { return m_rep->valid_object (); } |
6874 | 2855 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
2856 // 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
|
2857 // genprops.awk script. |
7222 | 2858 // |
2859 // 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
|
2860 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2861 octave_value get_alim () const |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2862 { return get_properties ().get_alim (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2863 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2864 octave_value get_clim () const |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2865 { return get_properties ().get_clim (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2866 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2867 octave_value get_xlim () 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
|
2868 { 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
|
2869 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2870 octave_value get_ylim () 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
|
2871 { return get_properties ().get_ylim (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2872 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2873 octave_value get_zlim () 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
|
2874 { return get_properties ().get_zlim (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2875 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2876 bool is_aliminclude () const |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2877 { return get_properties ().is_aliminclude (); } |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2878 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2879 bool is_climinclude () const |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2880 { 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
|
2881 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2882 bool is_xliminclude () 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
|
2883 { return get_properties ().is_xliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2884 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2885 bool is_yliminclude () 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
|
2886 { return get_properties ().is_yliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2887 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2888 bool is_zliminclude () 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
|
2889 { return get_properties ().is_zliminclude (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2890 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2891 bool is_handle_visible () const |
8249 | 2892 { return get_properties ().is_handle_visible (); } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
2893 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2894 octave::graphics_toolkit get_toolkit () 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
|
2895 { return m_rep->get_toolkit (); } |
7408 | 2896 |
7849
3249f64f69b2
Initial low-level support for property listeners.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7848
diff
changeset
|
2897 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
|
2898 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
|
2899 { 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
|
2900 |
8299
be9b14945774
Add code to remove listeners from properties and use it with newplot
David Bateman <dbateman@free.fr>
parents:
8291
diff
changeset
|
2901 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
|
2902 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
|
2903 { 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
|
2904 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2905 void remove_all_listeners () { m_rep->remove_all_listeners (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2906 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2907 void initialize () { m_rep->initialize (*this); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2908 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2909 void finalize () { m_rep->finalize (*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
|
2910 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2911 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
|
2912 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2913 void reset_default_properties () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2914 { m_rep->reset_default_properties (); } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
2915 |
7408 | 2916 private: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
2917 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2918 std::shared_ptr<base_graphics_object> m_rep; |
7408 | 2919 }; |
2920 | |
2921 // --------------------------------------------------------------------- | |
2922 | |
7365 | 2923 class OCTINTERP_API root_figure : public base_graphics_object |
6874 | 2924 { |
2925 public: | |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2926 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2927 // 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
|
2928 // the root_figure object. |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2929 |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2930 friend class gh_manager; |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2931 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
2932 class OCTINTERP_API properties : public base_properties |
6874 | 2933 { |
2934 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2935 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
|
2936 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
|
2937 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
2938 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
|
2939 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
|
2940 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
|
2941 |
6874 | 2942 // See the genprops.awk script for an explanation of the |
2943 // properties declarations. | |
2944 | |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
2945 // 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
|
2946 // monitorpositions, pointerlocation, pointerwindow. |
18764
89448a7523b2
Add some more callbacks for root properties (bug #42347).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18737
diff
changeset
|
2947 // 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
|
2948 // them will have no effect. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2949 |
20459
564e59f75ef8
Remove obsolete properties from root figure object.
Rik <rik@octave.org>
parents:
20428
diff
changeset
|
2950 // 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
|
2951 // 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
|
2952 // 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
|
2953 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
2954 // Programming note: Keep property list sorted if new ones are added. |
9778 | 2955 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
2956 BEGIN_PROPERTIES (root_figure, root) |
9778 | 2957 handle_property callbackobject Sr , graphics_handle () |
2958 array_property commandwindowsize r , Matrix (1, 2, 0) | |
7363 | 2959 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
|
2960 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
|
2961 array_property monitorpositions r , default_screensize () |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
2962 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
|
2963 double_property pointerwindow r , 0.0 |
8560
5cc594679cdc
get display characteristics from system
John W. Eaton <jwe@octave.org>
parents:
8465
diff
changeset
|
2964 double_property screendepth r , default_screendepth () |
9778 | 2965 double_property screenpixelsperinch r , default_screenpixelsperinch () |
10949
848f3a13b7cf
Backed out changeset 6b50fd2d4ca6
David Bateman <dbateman@free.fr>
parents:
10948
diff
changeset
|
2966 array_property screensize r , default_screensize () |
9778 | 2967 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
|
2968 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
|
2969 // 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
|
2970 //radio_property beingdeleted h , "{off}|on" |
6874 | 2971 END_PROPERTIES |
2972 }; | |
2973 | |
2974 private: | |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2975 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2976 properties m_properties; |
6874 | 2977 |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2978 protected: |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2979 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2980 root_figure () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
2981 : 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
|
2982 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
|
2983 { } |
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2984 |
6874 | 2985 public: |
2986 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2987 ~root_figure () = default; |
6874 | 2988 |
31837
febd82d1a8de
use new macros to consistently delete copy and move member functions
John W. Eaton <jwe@octave.org>
parents:
31827
diff
changeset
|
2989 OCTAVE_DISABLE_COPY_MOVE (root_figure) |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
2990 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
2991 void mark_modified () { } |
6874 | 2992 |
2993 void override_defaults (base_graphics_object& obj) | |
2994 { | |
2995 // Now override with our defaults. If the default_properties | |
2996 // list includes the properties for all defaults (line, | |
2997 // surface, etc.) then we don't have to know the type of OBJ | |
2998 // here, we just call its set function and let it decide which | |
2999 // 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
|
3000 obj.set_from_list (m_default_properties); |
6874 | 3001 } |
3002 | |
7189 | 3003 void set (const caseless_str& name, const octave_value& value) |
6874 | 3004 { |
3005 if (name.compare ("default", 7)) | |
3006 // strip "default", pass rest to function that will | |
3007 // parse the remainder and add the element to the | |
3008 // 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
|
3009 m_default_properties.set (name.substr (7), value); |
6874 | 3010 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
|
3011 m_properties.set (name, value); |
6874 | 3012 } |
3013 | |
7189 | 3014 octave_value get (const caseless_str& name) const |
6874 | 3015 { |
3016 octave_value retval; | |
3017 | |
3018 if (name.compare ("default", 7)) | |
3019 return get_default (name.substr (7)); | |
3020 else if (name.compare ("factory", 7)) | |
3021 return get_factory_default (name.substr (7)); | |
3022 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
|
3023 retval = m_properties.get (name); |
6874 | 3024 |
3025 return retval; | |
3026 } | |
3027 | |
7189 | 3028 octave_value get_default (const caseless_str& name) const |
6874 | 3029 { |
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 octave_value retval = m_default_properties.lookup (name); |
6874 | 3031 |
3032 if (retval.is_undefined ()) | |
7847
40b16e04172a
Make backend switching work.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7846
diff
changeset
|
3033 { |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3034 // 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
|
3035 retval = m_factory_properties.lookup (name); |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3036 |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
3037 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
|
3038 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
|
3039 } |
6874 | 3040 |
3041 return retval; | |
3042 } | |
3043 | |
7189 | 3044 octave_value get_factory_default (const caseless_str& name) const |
6874 | 3045 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3046 octave_value retval = m_factory_properties.lookup (name); |
6874 | 3047 |
3048 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
|
3049 error ("get: invalid factory default property '%s'", name.c_str ()); |
6874 | 3050 |
3051 return retval; | |
3052 } | |
3053 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3054 octave_value get_defaults () const |
6874 | 3055 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3056 return m_default_properties.as_struct ("default"); |
6874 | 3057 } |
3058 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3059 property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3060 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3061 return m_default_properties; |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3062 } |
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3063 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3064 octave_value get_factory_defaults () const |
6874 | 3065 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3066 return m_factory_properties.as_struct ("factory"); |
6874 | 3067 } |
3068 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3069 property_list get_factory_defaults_list () const |
18963
a30e1d20fd3c
Freset: properly reset graphics objects (bug #35511)
pantxo <pantxo.diribarne@gmail.com>
parents:
18961
diff
changeset
|
3070 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3071 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
|
3072 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3073 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3074 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3075 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3076 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3077 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3078 bool valid_object () const { return true; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3079 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3080 OCTINTERP_API void reset_default_properties (); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3081 |
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
|
3082 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
|
3083 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3084 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
|
3085 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
|
3086 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
|
3087 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
|
3088 } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
3089 |
6874 | 3090 private: |
23763
54aa9a3250b4
make root_figure::factory_properties local instead of global
John W. Eaton <jwe@octave.org>
parents:
23639
diff
changeset
|
3091 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3092 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
|
3093 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3094 property_list m_factory_properties; |
6874 | 3095 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3096 static OCTINTERP_API property_list::plist_map_type |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3097 init_factory_properties (); |
6874 | 3098 }; |
3099 | |
3100 // --------------------------------------------------------------------- | |
3101 | |
7365 | 3102 class OCTINTERP_API figure : public base_graphics_object |
6874 | 3103 { |
3104 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3105 |
7445 | 3106 class OCTINTERP_API properties : public base_properties |
6874 | 3107 { |
3108 public: | |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3109 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
|
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 m_integerhandle = val; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3112 } |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3113 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3114 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
|
3115 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
|
3116 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3117 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
|
3118 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3119 OCTINTERP_API octave::graphics_toolkit get_toolkit () const; |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3120 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3121 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
|
3122 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3123 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
|
3124 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3125 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
|
3126 |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3127 // Alias "innerposition" to "position". |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3128 octave_value get_innerposition () const |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3129 { |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3130 return get_position (); |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3131 } |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3132 |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3133 void set_innerposition (const octave_value& val) |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3134 { |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3135 set_position (val); |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3136 } |
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3137 |
29233
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 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
|
3139 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
|
3140 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3141 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
|
3142 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
|
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 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
|
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 Matrix |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3147 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
|
3148 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
|
3149 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3150 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
|
3151 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
|
3152 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
|
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 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
|
3155 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3156 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
|
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 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
|
3159 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3160 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
|
3161 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3162 OCTINTERP_API std::string get_title () const; |
8059
75c99d3f97d7
Octave to backend notification scheme
John W. Eaton <jwe@octave.org>
parents:
8058
diff
changeset
|
3163 |
6874 | 3164 // See the genprops.awk script for an explanation of the |
3165 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3166 // Programming note: Keep property list sorted if new ones are added. |
6874 | 3167 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
3168 BEGIN_PROPERTIES (figure) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3169 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
|
3170 callback_property buttondownfcn , Matrix () |
7363 | 3171 callback_property closerequestfcn , "closereq" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3172 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
|
3173 array_property colormap , viridis_colormap () |
7363 | 3174 handle_property currentaxes S , graphics_handle () |
7405 | 3175 string_property currentcharacter r , "" |
3176 handle_property currentobject r , graphics_handle () | |
10517 | 3177 array_property currentpoint r , Matrix (2, 1, 0) |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3178 bool_property dockcontrols , "on" |
11247
29b1f7d68665
make filename property of figure objects writable
John W. Eaton <jwe@octave.org>
parents:
11175
diff
changeset
|
3179 string_property filename , "" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3180 bool_property graphicssmoothing , "on" |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3181 array_property innerposition sg , default_figure_position () |
13816
7ee18dc46bbb
new and improved non-integer figure handles
John W. Eaton <jwe@octave.org>
parents:
13810
diff
changeset
|
3182 bool_property integerhandle S , "on" |
21323
030d4d6c2b58
Implement figure property "InvertHardCopy" for printing (bug #47230).
Rik <rik@octave.org>
parents:
21289
diff
changeset
|
3183 bool_property inverthardcopy , "on" |
7405 | 3184 callback_property keypressfcn , Matrix () |
3185 callback_property keyreleasefcn , Matrix () | |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3186 radio_property menubar , "{figure}|none" |
7405 | 3187 string_property name , "" |
25273
ac6ba9f2fa41
Add new Figure graphic property "Number" (bug #53343).
Rik <rik@octave.org>
parents:
25173
diff
changeset
|
3188 array_property number rG , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3189 radio_property nextplot , "{add}|new|replace|replacechildren" |
7405 | 3190 bool_property numbertitle , "on" |
13713
d99aa455296e
Add outerposition property to figure objects.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13703
diff
changeset
|
3191 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
|
3192 radio_property paperorientation U , "{portrait}|landscape" |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3193 array_property paperposition m , default_figure_paperposition () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3194 // 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
|
3195 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
|
3196 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
|
3197 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
|
3198 radio_property paperunits Su , "{inches}|centimeters|normalized|points" |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3199 radio_property pointer , "{arrow}|crosshair|ibeam|watch|topl|topr|botl|botr|left|top|right|bottom|circle|cross|fleur|custom|hand" |
27099
2cd31365c84a
Implement "pointer" and related figure properties for Qt toolkit (bug #56347)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26985
diff
changeset
|
3200 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
|
3201 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
|
3202 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
|
3203 radio_property renderer m , "{opengl}|painters" |
7405 | 3204 radio_property renderermode , "{auto}|manual" |
3205 bool_property resize , "on" | |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
3206 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
3207 // and has been replaced with "sizechangedfcn" |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3208 // Eventually this will need to be hidden, and then removed. |
7405 | 3209 callback_property resizefcn , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3210 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
|
3211 callback_property sizechangedfcn , Matrix () |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3212 radio_property toolbar , "{auto}|figure|none" |
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3213 radio_property units Su , "{pixels}|normalized|inches|centimeters|points|characters" |
7405 | 3214 callback_property windowbuttondownfcn , Matrix () |
3215 callback_property windowbuttonmotionfcn , Matrix () | |
3216 callback_property windowbuttonupfcn , Matrix () | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3217 callback_property windowkeypressfcn , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3218 callback_property windowkeyreleasefcn , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3219 callback_property windowscrollwheelfcn , Matrix () |
31020
cb9451780a15
Update figure graphics object for Matlab compatibility.
Rik <rik@octave.org>
parents:
30999
diff
changeset
|
3220 radio_property windowstate , "{normal}|minimized|maximized|fullscreen" |
7405 | 3221 radio_property windowstyle , "{normal}|modal|docked" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3222 |
24687
8b935067a257
Allow printing without updating qt visible or invisible figures (bug #52940).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24637
diff
changeset
|
3223 // Overridden base property |
24637
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3224 // 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
|
3225 // 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
|
3226 radio_property pickableparts h , "{visible}" |
3d78a7eb5aa4
Make "PickableParts" property for figures the fixed value of "visible".
Rik <rik@octave.org>
parents:
24635
diff
changeset
|
3227 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3228 // Octave-specific properties |
21684
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3229 mutable string_property __gl_extensions__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3230 mutable string_property __gl_renderer__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3231 mutable string_property __gl_vendor__ hr , "" |
1449e3b98941
store OpenGL version info in figure properties
John W. Eaton <jwe@octave.org>
parents:
21659
diff
changeset
|
3232 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
|
3233 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
|
3234 string_property __graphics_toolkit__ hs , default_graphics_toolkit () |
13699
dd9b32af0a01
Implement guidata/guihandles.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13324
diff
changeset
|
3235 any_property __guidata__ h , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3236 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
|
3237 bool_property __printing__ h , "off" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3238 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
|
3239 any_property __plot_stream__ h , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3240 any_property __rotate_mode__ h , Matrix () |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3241 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
|
3242 double_property __device_pixel_ratio__ hU , 1.0 |
21948
241d39c66e8f
Update graphics properties for figure object.
Rik <rik@octave.org>
parents:
21905
diff
changeset
|
3243 |
6874 | 3244 END_PROPERTIES |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
3245 |
7363 | 3246 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3247 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3248 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3249 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
|
3250 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
|
3251 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
|
3252 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
|
3253 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
|
3254 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
|
3255 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
|
3256 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
|
3257 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
|
3258 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
|
3259 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
|
3260 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
|
3261 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
|
3262 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
|
3263 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
|
3264 |
0a84a7d0998d
don't declare figure::properties::toolkit as mutable
John W. Eaton <jwe@octave.org>
parents:
27698
diff
changeset
|
3265 init_toolkit (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3266 } |
7408 | 3267 |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3268 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3269 OCTINTERP_API Matrix get_auto_paperposition (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3270 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3271 void update_paperpositionmode () |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3272 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3273 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
|
3274 m_paperposition.set (get_auto_paperposition ()); |
18773
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3275 } |
70ea5a2856fe
Handle figure paperpositionmode "auto" (bug #37554)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18766
diff
changeset
|
3276 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3277 OCTINTERP_API void update_handlevisibility (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3278 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3279 OCTINTERP_API void init_toolkit (); |
27709
0a84a7d0998d
don't declare figure::properties::toolkit as mutable
John W. Eaton <jwe@octave.org>
parents:
27698
diff
changeset
|
3280 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3281 octave::graphics_toolkit m_toolkit; |
6874 | 3282 }; |
3283 | |
3284 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
|
3285 properties m_properties; |
6874 | 3286 |
3287 public: | |
3288 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
|
3289 : 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
|
3290 { } |
6874 | 3291 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3292 ~figure () = default; |
6874 | 3293 |
3294 void override_defaults (base_graphics_object& obj) | |
3295 { | |
26878
3c7c5b7c3044
doc: Refer to "root object" rather than "root figure object".
Rik <rik@octave.org>
parents:
26520
diff
changeset
|
3296 // Allow parent (root object) to override first (properties knows how |
6874 | 3297 // 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
|
3298 m_properties.override_defaults (obj); |
6874 | 3299 |
3300 // Now override with our defaults. If the default_properties | |
3301 // list includes the properties for all defaults (line, | |
3302 // surface, etc.) then we don't have to know the type of OBJ | |
3303 // here, we just call its set function and let it decide which | |
3304 // 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
|
3305 obj.set_from_list (m_default_properties); |
6874 | 3306 } |
3307 | |
7189 | 3308 void set (const caseless_str& name, const octave_value& value) |
6874 | 3309 { |
3310 if (name.compare ("default", 7)) | |
3311 // strip "default", pass rest to function that will | |
3312 // parse the remainder and add the element to the | |
3313 // 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
|
3314 m_default_properties.set (name.substr (7), value); |
6874 | 3315 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
|
3316 m_properties.set (name, value); |
6874 | 3317 } |
3318 | |
7189 | 3319 octave_value get (const caseless_str& name) const |
6874 | 3320 { |
3321 octave_value retval; | |
3322 | |
3323 if (name.compare ("default", 7)) | |
3324 retval = get_default (name.substr (7)); | |
3325 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
|
3326 retval = m_properties.get (name); |
6874 | 3327 |
3328 return retval; | |
3329 } | |
3330 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3331 OCTINTERP_API octave_value get_default (const caseless_str& name) const; |
6874 | 3332 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3333 octave_value get_defaults () const |
6874 | 3334 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3335 return m_default_properties.as_struct ("default"); |
6874 | 3336 } |
3337 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3338 property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
3339 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3340 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
|
3341 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3342 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3343 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3344 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3345 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3346 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3347 bool valid_object () const { return true; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3348 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3349 OCTINTERP_API void reset_default_properties (); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
3350 |
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
|
3351 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
|
3352 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3353 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
|
3354 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
|
3355 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
|
3356 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
|
3357 } |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
3358 |
6874 | 3359 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
|
3360 property_list m_default_properties; |
6874 | 3361 }; |
3362 | |
3363 // --------------------------------------------------------------------- | |
3364 | |
7435 | 3365 class OCTINTERP_API graphics_xform |
3366 { | |
3367 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3368 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3369 graphics_xform () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3370 : 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
|
3371 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
|
3372 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3373 m_zlim(1) = 1.0; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3374 } |
7435 | 3375 |
3376 graphics_xform (const Matrix& xm, const Matrix& xim, | |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
3377 const scaler& x, const scaler& y, const scaler& z, |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
3378 const Matrix& zl) |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3379 : m_xform (xm), m_xform_inv (xim), m_sx (x), m_sy (y), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3380 m_sz (z), m_zlim (zl) |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3381 { } |
7435 | 3382 |
3383 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
|
3384 : 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
|
3385 m_sy (g.m_sy), m_sz (g.m_sz), m_zlim (g.m_zlim) { } |
7435 | 3386 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3387 ~graphics_xform () = default; |
7435 | 3388 |
3389 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
|
3390 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3391 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
|
3392 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
|
3393 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
|
3394 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
|
3395 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
|
3396 m_zlim = g.m_zlim; |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3397 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3398 return *this; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3399 } |
7435 | 3400 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3401 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
|
3402 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3403 static OCTINTERP_API Matrix xform_eye (); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3404 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3405 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
|
3406 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
|
3407 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3408 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
|
3409 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
|
3410 |
10553 | 3411 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
|
3412 { 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
|
3413 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3414 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
|
3415 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
|
3416 Matrix zscale (const Matrix& m) const { return m_sz.scale (m); } |
7435 | 3417 |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
3418 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
|
3419 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3420 bool has_z = (m.columns () > 2); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3421 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3422 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
|
3423 && (! 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
|
3424 return m; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3425 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3426 Matrix retval (m.dims ()); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3427 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3428 int r = m.rows (); |
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 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
|
3431 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3432 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
|
3433 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
|
3434 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
|
3435 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
|
3436 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3437 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3438 return retval; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3439 } |
7832
e06fdf7ea647
Fix default value of patch::facelighting. Add scaler/graphics_xform utilities
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7830
diff
changeset
|
3440 |
7435 | 3441 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
|
3442 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
|
3443 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
|
3444 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
|
3445 Matrix m_zlim; |
7435 | 3446 }; |
3447 | |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3448 enum |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3449 { |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3450 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
|
3451 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
|
3452 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
|
3453 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
|
3454 }; |
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3455 |
7365 | 3456 class OCTINTERP_API axes : public base_graphics_object |
6874 | 3457 { |
3458 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3459 |
7445 | 3460 class OCTINTERP_API properties : public base_properties |
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 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3464 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
|
3465 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
|
3466 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3467 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
|
3468 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
|
3469 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3470 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
|
3471 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3472 const scaler& get_x_scaler () const { return m_sx; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3473 const scaler& get_y_scaler () const { return m_sy; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3474 const scaler& get_z_scaler () const { return m_sz; } |
7427 | 3475 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3476 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
|
3477 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
|
3478 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
|
3479 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
|
3480 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
|
3481 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
|
3482 |
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 double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3484 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
|
3485 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3486 void update_boundingbox () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3487 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3488 if (units_is ("normalized")) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3489 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3490 sync_positions (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3491 base_properties::update_boundingbox (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3492 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3493 } |
7828
4739b6a1925c
Implement resize handler mechanism (call resizefcn on figure resize and notify children).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7827
diff
changeset
|
3494 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3495 OCTINTERP_API void update_camera (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3496 OCTINTERP_API void update_axes_layout (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3497 OCTINTERP_API void update_aspectratios (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3498 void update_transform () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3499 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3500 update_aspectratios (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3501 update_camera (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3502 update_axes_layout (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3503 } |
7427 | 3504 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3505 OCTINTERP_API void sync_positions (); |
17098
786bcce466e9
Initialize the tightinset during initialization of axes.
Ben Abbott <bpabbott@mac.com>
parents:
17011
diff
changeset
|
3506 |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3507 // 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
|
3508 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3509 std::string get_activepositionproperty () const |
28303
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3510 { |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3511 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
|
3512 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3513 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
|
3514 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
|
3515 else |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3516 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
|
3517 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3518 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
|
3519 } |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3520 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3521 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
|
3522 { |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3523 // 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
|
3524 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
|
3525 |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3526 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
|
3527 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
|
3528 else |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3529 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
|
3530 } |
af912e78ce43
Mirror value of axes property "activepositionproperty" from "positionconstraint" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28302
diff
changeset
|
3531 |
28302
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3532 // 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
|
3533 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3534 octave_value get_innerposition () const |
28302
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3535 { |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3536 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
|
3537 } |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3538 |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3539 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
|
3540 { |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3541 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
|
3542 } |
1f5ec8c025bc
Mirror value of axes property "innerposition" from "position" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28298
diff
changeset
|
3543 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3544 OCTINTERP_API void update_autopos (const std::string& elem_type); |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3545 OCTINTERP_API void update_xlabel_position (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3546 OCTINTERP_API void update_ylabel_position (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3547 OCTINTERP_API void update_zlabel_position (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3548 OCTINTERP_API void update_title_position (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3549 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3550 graphics_xform get_transform () const |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3551 { |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3552 return graphics_xform (m_x_render, m_x_render_inv, |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3553 m_sx, m_sy, m_sz, m_x_zlim); |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3554 } |
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3556 Matrix get_transform_matrix () const { return m_x_render; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3557 Matrix get_inverse_transform_matrix () const { return m_x_render_inv; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3558 Matrix get_opengl_matrix_1 () const { return m_x_gl_mat1; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3559 Matrix get_opengl_matrix_2 () const { return m_x_gl_mat2; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3560 Matrix get_transform_zlim () const { return m_x_zlim; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3561 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3562 int get_xstate () const { return m_xstate; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3563 int get_ystate () const { return m_ystate; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3564 int get_zstate () const { return m_zstate; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3565 double get_xPlane () const { return m_xPlane; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3566 double get_xPlaneN () const { return m_xPlaneN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3567 double get_yPlane () const { return m_yPlane; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3568 double get_yPlaneN () const { return m_yPlaneN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3569 double get_zPlane () const { return m_zPlane; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3570 double get_zPlaneN () const { return m_zPlaneN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3571 double get_xpTick () const { return m_xpTick; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3572 double get_xpTickN () const { return m_xpTickN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3573 double get_ypTick () const { return m_ypTick; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3574 double get_ypTickN () const { return m_ypTickN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3575 double get_zpTick () const { return m_zpTick; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3576 double get_zpTickN () const { return m_zpTickN; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3577 double get_x_min () const { return std::min (m_xPlane, m_xPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3578 double get_x_max () const { return std::max (m_xPlane, m_xPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3579 double get_y_min () const { return std::min (m_yPlane, m_yPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3580 double get_y_max () const { return std::max (m_yPlane, m_yPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3581 double get_z_min () const { return std::min (m_zPlane, m_zPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3582 double get_z_max () const { return std::max (m_zPlane, m_zPlaneN); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3583 double get_fx () const { return m_fx; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3584 double get_fy () const { return m_fy; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3585 double get_fz () const { return m_fz; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3586 double get_xticklen () const { return m_xticklen; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3587 double get_yticklen () const { return m_yticklen; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3588 double get_zticklen () const { return m_zticklen; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3589 double get_xtickoffset () const { return m_xtickoffset; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3590 double get_ytickoffset () const { return m_ytickoffset; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3591 double get_ztickoffset () const { return m_ztickoffset; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3592 bool get_x2Dtop () const { return m_x2Dtop; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3593 bool get_y2Dright () const { return m_y2Dright; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3594 bool get_layer2Dtop () const { return m_layer2Dtop; } |
23859
7148b237f94f
Fix regression introduced by cset 06805aabbdd1 (bug #50750).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23803
diff
changeset
|
3595 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
|
3596 { 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
|
3597 void set_has3Dkids (bool val) { m_has3Dkids = val; } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3598 bool get_xySym () const { return m_xySym; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3599 bool get_xyzSym () const { return m_xyzSym; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3600 bool get_zSign () const { return m_zSign; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3601 bool get_nearhoriz () 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
|
3602 |
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
|
3603 ColumnVector pixel2coord (double px, double py) const |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3604 { |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3605 return get_transform ().untransform (px, py, |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3606 (m_x_zlim(0)+m_x_zlim(1))/2); |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3607 } |
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
|
3608 |
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 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
|
3610 { 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
|
3611 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3612 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
|
3613 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
|
3614 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
|
3615 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
|
3616 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
|
3617 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
|
3618 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
|
3619 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
|
3620 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
|
3621 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3622 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
|
3623 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
|
3624 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
|
3625 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
|
3626 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3627 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
|
3628 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
|
3629 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
|
3630 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3631 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
|
3632 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
|
3633 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
|
3634 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3635 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
|
3636 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
|
3637 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
|
3638 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3639 OCTINTERP_API void unzoom (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3640 OCTINTERP_API void update_handlevisibility (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3641 OCTINTERP_API void push_zoom_stack (); |
29233
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 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
|
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_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
|
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_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
|
3647 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3648 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
|
3649 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3650 void increase_num_lights () { m_num_lights++; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3651 void decrease_num_lights () { m_num_lights--; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3652 unsigned int get_num_lights () 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
|
3653 |
7427 | 3654 private: |
23401
e0c20a22da7e
eliminate some errors exposed by -fsanitize=undefined
John W. Eaton <jwe@octave.org>
parents:
23396
diff
changeset
|
3655 |
29889
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_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
|
3657 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
|
3658 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
|
3659 |
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_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
|
3661 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
|
3662 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
|
3663 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
|
3664 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
|
3665 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3666 std::list<octave_value> m_zoom_stack = std::list<octave_value> (); |
7427 | 3667 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
3668 // 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
|
3669 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
|
3670 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
|
3671 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
|
3672 |
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_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
|
3674 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
|
3675 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
|
3676 |
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_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
|
3678 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
|
3679 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
|
3680 |
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_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
|
3682 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
|
3683 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
|
3684 |
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_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
|
3686 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
|
3687 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
|
3688 |
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_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
|
3690 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
|
3691 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
|
3692 |
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_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
|
3694 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
|
3695 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
|
3696 |
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_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
|
3698 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
|
3699 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
|
3700 |
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_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
|
3702 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
|
3703 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
|
3704 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
|
3705 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
|
3706 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
|
3707 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
|
3708 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
|
3709 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
|
3710 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3711 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
|
3712 |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
3713 // 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
|
3714 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
|
3715 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3716 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
|
3717 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
|
3718 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
|
3719 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3720 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
|
3721 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
|
3722 |
6874 | 3723 // See the genprops.awk script for an explanation of the |
3724 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3725 // 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
|
3726 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
3727 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
|
3728 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
|
3729 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
|
3730 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
|
3731 // 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
|
3732 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
|
3733 radio_property alphascale , "{linear}|log" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3734 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
|
3735 bool_property box u , "off" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3736 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
|
3737 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
|
3738 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
|
3739 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
|
3740 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
|
3741 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
|
3742 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
|
3743 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
|
3744 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
|
3745 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
|
3746 radio_property climmode al , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3747 radio_property clippingstyle , "{3dbox}|rectangle" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3748 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
|
3749 array_property colormap sg , Matrix () |
7363 | 3750 array_property colororder , default_colororder () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3751 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
|
3752 radio_property colorscale , "{linear}|log" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3753 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
|
3754 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
|
3755 radio_property dataaspectratiomode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3756 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
|
3757 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
|
3758 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
|
3759 // 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
|
3760 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
|
3761 bool_property fontsmoothing u , "on" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3762 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
|
3763 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
|
3764 double_property gridalpha m , 0.15 |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3765 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
|
3766 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
|
3767 radio_property gridcolormode , "{auto}|manual" |
22056
05ad23810150
Use default gridlinestyle of '-' for Matlab compatibility.
Rik <rik@octave.org>
parents:
22022
diff
changeset
|
3768 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
|
3769 array_property innerposition sg , default_axes_position () |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3770 // FIXME: Should be an array of "interaction objects". |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
3771 // Make it read-only for now. |
28282
044cea7947db
Add new properties to "axes" graphics object (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28079
diff
changeset
|
3772 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
|
3773 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
|
3774 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
|
3775 // 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
|
3776 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
|
3777 // 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
|
3778 handle_property legend r , graphics_handle () |
17382
50b2863d10a6
Create Matlab compatible linestyleorder char matrices (bug #34906)
Rik <rik@octave.org>
parents:
17104
diff
changeset
|
3779 // FIXME: should be kind of string array. |
50b2863d10a6
Create Matlab compatible linestyleorder char matrices (bug #34906)
Rik <rik@octave.org>
parents:
17104
diff
changeset
|
3780 any_property linestyleorder S , "-" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3781 double_property linestyleorderindex , 1.0 |
7403 | 3782 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
|
3783 double_property minorgridalpha m , 0.25 |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3784 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
|
3785 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
|
3786 radio_property minorgridcolormode , "{auto}|manual" |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3787 radio_property minorgridlinestyle , "{:}|-|--|-.|none" |
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3788 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
|
3789 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
|
3790 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
|
3791 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
|
3792 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
|
3793 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
|
3794 radio_property positionconstraint , "{outerposition}|innerposition" |
18819
92e9d4710f78
Fix typo in graphics.in.h (bug #42535).
Michael Godfrey <michaeldgodfrey@gmail.com>
parents:
17822
diff
changeset
|
3795 radio_property projection , "{orthographic}|perspective" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3796 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
|
3797 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
|
3798 radio_property tickdirmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3799 // 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
|
3800 radio_property ticklabelinterpreter u , "{tex}|latex|none" |
14391
c9ec21bef97a
Fix ticklength updating (bug # 35438).
Ben Abbott <bpabbott@mac.com>
parents:
14357
diff
changeset
|
3801 array_property ticklength u , default_axes_ticklength () |
7403 | 3802 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
|
3803 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
|
3804 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
|
3805 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
|
3806 // 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
|
3807 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
|
3808 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
|
3809 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
|
3810 // 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
|
3811 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
|
3812 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
|
3813 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
|
3814 radio_property xcolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3815 radio_property xdir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3816 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
|
3817 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
|
3818 row_vector_property xlim mu , default_lim () |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
3819 radio_property xlimitmethod u , "{tickaligned}|tight|padded" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3820 radio_property xlimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3821 bool_property xminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3822 bool_property xminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3823 radio_property xscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3824 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
|
3825 // 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
|
3826 any_property xticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3827 radio_property xticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3828 double_property xticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3829 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
|
3830 // 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
|
3831 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
|
3832 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
|
3833 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
|
3834 radio_property ycolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3835 radio_property ydir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3836 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
|
3837 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
|
3838 row_vector_property ylim mu , default_lim () |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
3839 radio_property ylimitmethod u , "{tickaligned}|tight|padded" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3840 radio_property ylimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3841 bool_property yminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3842 bool_property yminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3843 radio_property yscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3844 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
|
3845 any_property yticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3846 radio_property yticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3847 double_property yticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3848 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
|
3849 // 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
|
3850 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
|
3851 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
|
3852 radio_property zcolormode , "{auto}|manual" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3853 radio_property zdir u , "{normal}|reverse" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3854 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
|
3855 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
|
3856 row_vector_property zlim mu , default_lim () |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
3857 radio_property zlimitmethod u , "{tickaligned}|tight|padded" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3858 radio_property zlimmode al , "{auto}|manual" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3859 bool_property zminorgrid , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3860 bool_property zminortick , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3861 radio_property zscale alu , "{linear}|log" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3862 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
|
3863 any_property zticklabel S , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3864 radio_property zticklabelmode u , "{auto}|manual" |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3865 double_property zticklabelrotation , 0.0 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3866 radio_property ztickmode u , "{auto}|manual" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3867 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3868 // 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
|
3869 array_property __colormap__ hu , Matrix () |
20258
530803d4f65f
Update root, figure, and axes graphics object properties.
Rik <rik@octave.org>
parents:
20232
diff
changeset
|
3870 double_property mousewheelzoom , 0.5 |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
3871 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3872 // 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
|
3873 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
|
3874 // hidden properties for inset |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
3875 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
|
3876 // hidden properties for minor ticks |
22623
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3877 row_vector_property xminortickvalues h , Matrix () |
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3878 row_vector_property yminortickvalues h , Matrix () |
76f1164d2135
Rename [xyz]mtick properties to [xyz]minortickvalues (bug #49205).
Rik <rik@octave.org>
parents:
22622
diff
changeset
|
3879 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
|
3880 // 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
|
3881 double_property __fontsize_points__ hgr , 0 |
7189 | 3882 END_PROPERTIES |
6874 | 3883 |
7363 | 3884 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3885 OCTINTERP_API void init (); |
7427 | 3886 |
3887 private: | |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3888 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3889 std::string |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3890 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
|
3891 { |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3892 std::string retval = scale; |
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 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
|
3895 retval = "neglog"; |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3896 |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3897 return retval; |
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3900 void update_xscale () |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3901 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3902 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
|
3903 } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3904 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3905 void update_yscale () |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3906 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3907 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
|
3908 } |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3909 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3910 void update_zscale () |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
3911 { |
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 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
|
3913 } |
7427 | 3914 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
3915 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
|
3916 update_label_color (handle_property label, color_property col); |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3917 void update_xcolor () |
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_xlabel, m_xcolor); } |
23001
14f1738a56ae
Use C++ updaters for labels color (bug #49980).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22619
diff
changeset
|
3919 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3920 void update_ycolor () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3921 { 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
|
3922 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3923 void update_zcolor () |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
3924 { 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
|
3925 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3926 void update_view () { sync_positions (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3927 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3928 void update_cameraposition () { update_transform (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3929 void update_cameratarget () { update_transform (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3930 void update_cameraupvector () { update_transform (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3931 void update_cameraviewangle () { update_transform (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3932 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3933 void update_camerapositionmode () |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3934 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3935 if (camerapositionmode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3936 update_cameraposition (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3937 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3938 void update_cameratargetmode () |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3939 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3940 if (cameratargetmode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3941 update_cameratarget (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3942 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3943 void update_cameraupvectormode () |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3944 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3945 if (cameraupvectormode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3946 update_cameraupvector (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3947 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3948 void update_cameraviewanglemode () |
24127
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3949 { |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3950 if (cameraviewanglemode_is ("auto")) |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3951 update_cameraviewangle (); |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3952 } |
b188be2b962b
Call update_transform on camera property change (bug #44503)
Colin Macdonald <cbm@m.fsf.org>
parents:
24120
diff
changeset
|
3953 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3954 void update_dataaspectratio () { sync_positions (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3955 void update_dataaspectratiomode () { sync_positions (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3956 void update_plotboxaspectratio () { sync_positions (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3957 void update_plotboxaspectratiomode () { sync_positions (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3958 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3959 void update_layer () { update_axes_layout (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3960 void update_box () |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3961 { |
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 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
|
3963 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
|
3964 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
|
3965 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
|
3966 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3967 (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
|
3968 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
|
3969 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
|
3970 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
|
3971 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
|
3972 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
|
3973 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3974 (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
|
3975 m_ylim); |
23116
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
3976 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3977 void update_yaxislocation () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3978 { |
19652
5b4fd7ebcfc6
Update "tightinset" when "x/yaxislocation" is changed
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19597
diff
changeset
|
3979 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3980 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
|
3981 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
|
3982 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
|
3983 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
|
3984 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
|
3985 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3986 (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
|
3987 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
|
3988 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
|
3989 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
|
3990 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
|
3991 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
|
3992 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
3993 (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
|
3994 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3995 update_ylabel_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3996 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
3997 void update_xaxislocation () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
3998 { |
19652
5b4fd7ebcfc6
Update "tightinset" when "x/yaxislocation" is changed
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19597
diff
changeset
|
3999 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4000 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
|
4001 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
|
4002 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
|
4003 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
|
4004 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
|
4005 (yaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4006 (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
|
4007 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
|
4008 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
|
4009 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
|
4010 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
|
4011 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
|
4012 (xaxislocation_is ("origin") ? 0 : |
fdd67d871a72
Keep manually set tick labels (bug #52284).
Markus Mützel <markus.muetzel@gmx.de>
parents:
24127
diff
changeset
|
4013 (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
|
4014 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4015 update_xlabel_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4016 } |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4017 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4018 void update_xdir () { update_camera (); update_axes_layout (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4019 void update_ydir () { update_camera (); update_axes_layout (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4020 void update_zdir () { update_camera (); update_axes_layout (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4021 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4022 void update_ticklength (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4023 void update_tickdir () { update_ticklength (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4024 void update_tickdirmode () { update_ticklength (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4025 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4026 void update_ticklabelinterpreter () |
26055
8b9e6a39e0a2
Allow log axes to be exported correctly in tex formats (bug #50130).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26045
diff
changeset
|
4027 { |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4028 update_xtick (false); |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4029 update_ytick (false); |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4030 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
|
4031 } |
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
|
4032 |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4033 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
|
4034 { |
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 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
|
4036 m_xlimmode.is ("auto"), m_xtickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4037 m_xscale.is ("log"), m_xlimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4038 m_xlimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4039 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
|
4040 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
|
4041 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
|
4042 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
|
4043 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4044 (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
|
4045 m_xlim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4046 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4047 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4048 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4049 } |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4050 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
|
4051 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4052 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
|
4053 m_ylimmode.is ("auto"), m_ytickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4054 m_yscale.is ("log"), m_ylimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4055 m_ylimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4056 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
|
4057 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
|
4058 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
|
4059 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
|
4060 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4061 (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
|
4062 m_ylim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4063 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4064 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4065 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4066 } |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4067 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
|
4068 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4069 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
|
4070 m_zlimmode.is ("auto"), m_ztickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4071 m_zscale.is ("log"), m_zlimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4072 m_zlimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4073 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
|
4074 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
|
4075 2, m_zlim); |
29650
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4076 |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4077 if (sync_pos) |
360d21b028b1
Synchronize positions optionally when updating axes ticks (bug #60583)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29572
diff
changeset
|
4078 sync_positions (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4079 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4080 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4081 void update_xtickmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4082 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4083 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
|
4084 update_xtick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4085 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4086 void update_ytickmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4087 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4088 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
|
4089 update_ytick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4090 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4091 void update_ztickmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4092 { |
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 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
|
4094 update_ztick (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4095 } |
11394
ecd87194adb6
Update ticks after {xyz}tickmode is set to auto
Konstantinos Poulios <logari81@googlemail.com>
parents:
11385
diff
changeset
|
4096 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4097 void update_xticklabelmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4098 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4099 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
|
4100 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
|
4101 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
|
4102 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
|
4103 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4104 (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
|
4105 m_xlim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4106 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4107 void update_yticklabelmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4108 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4109 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
|
4110 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
|
4111 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
|
4112 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
|
4113 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4114 (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
|
4115 m_ylim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4116 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4117 void update_zticklabelmode () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4118 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4119 if (m_zticklabelmode.is ("auto")) |
30346
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
4120 calc_ticklabels (m_ztick, m_zticklabel, m_zscale.is ("log"), |
91c6288781ba
maint: Shorten some long lines in libinterp to <= 80 characters (bug #57599)
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
4121 false, 2, m_zlim); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4122 } |
9347
3da821b161e9
imported patch ticklabel
Michael Goffioul <michael.goffioul@gmail.com>
parents:
9188
diff
changeset
|
4123 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4124 void update_fontname () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4125 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4126 update_font ("fontname"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4127 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4128 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4129 void update_fontsize () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4130 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4131 update_font ("fontsize"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4132 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4133 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4134 void update_fontsmoothing () |
26858
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4135 { |
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4136 update_font ("fontsmoothing"); |
0adb232f93b9
Implement axes and text "fontsmoothing" property (bug #55833).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
26715
diff
changeset
|
4137 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4138 void update_fontangle () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4139 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4140 update_font ("fontangle"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4141 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4142 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4143 void update_fontweight () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4144 { |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4145 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
|
4146 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
|
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4149 void update_titlefontsizemultiplier () |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4150 { |
26371
87f11da73b19
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4151 // 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
|
4152 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
|
4153 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
|
4154 } |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4155 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4156 void update_labelfontsizemultiplier () |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4157 { |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4158 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
|
4159 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
|
4160 } |
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4161 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4162 void update_titlefontweight () |
22723
03cebe1fb0e3
Update labels and title font according to axes font properties (bug #49469)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22710
diff
changeset
|
4163 { |
26371
87f11da73b19
graphics.h: Fix static analyzer detected issues (bug #55347).
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4164 // 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
|
4165 update_font ("fontweight"); |
19684
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4166 sync_positions (); |
2b93834e5ede
Update tightinset when "font*" properties are changed (bug #39581)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19678
diff
changeset
|
4167 } |
12777
6c1d0f03c331
Avoid redundant calls to set_font of text renderers (Bug #31305)
Konstantinos Poulios <logari81@gmail.com>
parents:
12685
diff
changeset
|
4168 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4169 OCTINTERP_API void update_outerposition (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4170 OCTINTERP_API void update_position (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4171 OCTINTERP_API void update_looseinset (); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4172 |
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 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
|
4174 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
|
4175 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
|
4176 array_property& mticks, bool limmode_is_auto, |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4177 bool tickmode_is_auto, bool is_logscale, |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4178 bool method_is_padded, bool method_is_tight); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4179 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
|
4180 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
|
4181 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
|
4182 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
|
4183 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
|
4184 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
|
4185 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
|
4186 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
|
4187 const Matrix& limits); |
12334
63dc132a1000
Move axes labels and title positioning to axes::properties
Konstantinos Poulios <logari81@gmail.com>
parents:
12327
diff
changeset
|
4188 |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4189 void fix_limits (array_property& lims) |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4190 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
4191 if (lims.get ().isempty ()) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4192 return; |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4193 |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4194 Matrix l = lims.get ().matrix_value (); |
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4195 if (l(0) > l(1)) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4196 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4197 l(0) = 0; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4198 l(1) = 1; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4199 lims = l; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4200 } |
7854
228858e69bd1
added {x,y,z}lim sanity check
Shai Ayal <shaiay@users.sourceforge.net>
parents:
7850
diff
changeset
|
4201 else if (l(0) == l(1)) |
10317
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4202 { |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4203 l(0) -= 0.5; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4204 l(1) += 0.5; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4205 lims = l; |
42d098307c30
untabify additional source files
John W. Eaton <jwe@octave.org>
parents:
10289
diff
changeset
|
4206 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4207 } |
7446 | 4208 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4209 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
|
4210 |
23524
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4211 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
|
4212 { |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4213 set___colormap__ (val); |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4214 } |
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4215 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4216 void update___colormap__ () |
24501
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4217 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4218 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
|
4219 } |
2f10c3265607
Make sure axes "colormap" property listeners are executed (bug #52799).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
24452
diff
changeset
|
4220 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4221 OCTINTERP_API octave_value get_colormap () const; |
23524
7c278572db66
Implement colormap property for axes objects (bug #48667).
Markus Muetzel <markus.muetzel@gmx.de>
parents:
23457
diff
changeset
|
4222 |
7446 | 4223 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4224 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
|
4225 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
|
4226 double min_pos, double max_neg, |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4227 const bool logscale, const std::string& method); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4228 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4229 OCTINTERP_API void |
30390
a61e1a0f6024
maint: style check C++ files in libinterp/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
4230 check_axis_limits (Matrix& limits, const Matrix kids, |
a61e1a0f6024
maint: style check C++ files in libinterp/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
4231 const bool logscale, char& update_type); |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4232 |
19663
dfea01b3425f
more mouse interaction features for Qt plotting widget
John W. Eaton <jwe@octave.org>
parents:
19659
diff
changeset
|
4233 void update_xlim () |
7446 | 4234 { |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4235 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
|
4236 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4237 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
|
4238 m_xlimmode.is ("auto"), m_xtickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4239 m_xscale.is ("log"), m_xlimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4240 m_xlimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4241 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
|
4242 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
|
4243 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
|
4244 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
|
4245 (yaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4246 (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
|
4247 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
|
4248 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4249 fix_limits (m_xlim); |
7855
f317f14516cb
Add zoom stack facility in axes object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7854
diff
changeset
|
4250 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4251 update_xscale (); |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4252 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4253 update_axes_layout (); |
7446 | 4254 } |
4255 | |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4256 void update_xlimitmethod () |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4257 { |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4258 update_xlim (); |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4259 } |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4260 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4261 void update_ylim () |
7446 | 4262 { |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4263 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
|
4264 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4265 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
|
4266 m_ylimmode.is ("auto"), m_ytickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4267 m_yscale.is ("log"), m_ylimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4268 m_ylimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4269 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
|
4270 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
|
4271 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
|
4272 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
|
4273 (xaxislocation_is ("origin") ? 0 : |
868daa374c49
Improve support of "(xy)axislocation" "origin" (bug #48562).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23084
diff
changeset
|
4274 (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
|
4275 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
|
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_ylim); |
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_yscale (); |
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 } |
4283 | |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4284 void update_ylimitmethod () |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4285 { |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4286 update_ylim (); |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4287 } |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4288 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4289 void update_zlim () |
7446 | 4290 { |
24030
ec3d37eeafa2
Auto-adjust limits that span 0 on logarithmic axes (bug #43606).
Markus Mützel <markus.muetzel@gmx.de>
parents:
23859
diff
changeset
|
4291 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
|
4292 |
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 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
|
4294 m_zlimmode.is ("auto"), m_ztickmode.is ("auto"), |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4295 m_zscale.is ("log"), m_zlimitmethod.is ("padded"), |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4296 m_zlimitmethod.is ("tight")); |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4297 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
|
4298 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
|
4299 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
|
4300 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4301 fix_limits (m_zlim); |
7855
f317f14516cb
Add zoom stack facility in axes object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7854
diff
changeset
|
4302 |
14324
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4303 update_zscale (); |
5a2b012b10c7
allow zooming for logscale plots
John W. Eaton <jwe@octave.org>
parents:
14314
diff
changeset
|
4304 |
12327
2ad37783bf01
Move axes layout from opengl_renderer::draw_axes to axes::properties
Konstantinos Poulios <logari81@googlemail.com>
parents:
12324
diff
changeset
|
4305 update_axes_layout (); |
7446 | 4306 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4307 |
30659
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4308 void update_zlimitmethod () |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4309 { |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4310 update_zlim (); |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4311 } |
4c0c02102ba9
Allow for sticky "tight" option for auto axes limits (bug #61526)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
30565
diff
changeset
|
4312 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4313 void trigger_normals_calc (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4314 |
6874 | 4315 }; |
4316 | |
4317 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
|
4318 properties m_properties; |
6874 | 4319 |
4320 public: | |
4321 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
|
4322 : 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
|
4323 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4324 m_properties.update_transform (); |
6874 | 4325 } |
4326 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4327 ~axes () = default; |
6874 | 4328 |
4329 void override_defaults (base_graphics_object& obj) | |
4330 { | |
4331 // Allow parent (figure) to override first (properties knows how | |
4332 // 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
|
4333 m_properties.override_defaults (obj); |
6874 | 4334 |
4335 // Now override with our defaults. If the default_properties | |
4336 // list includes the properties for all defaults (line, | |
4337 // surface, etc.) then we don't have to know the type of OBJ | |
4338 // here, we just call its set function and let it decide which | |
4339 // 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
|
4340 obj.set_from_list (m_default_properties); |
6874 | 4341 } |
4342 | |
7189 | 4343 void set (const caseless_str& name, const octave_value& value) |
6874 | 4344 { |
4345 if (name.compare ("default", 7)) | |
4346 // strip "default", pass rest to function that will | |
4347 // parse the remainder and add the element to the | |
4348 // 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
|
4349 m_default_properties.set (name.substr (7), value); |
6874 | 4350 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
|
4351 m_properties.set (name, value); |
6874 | 4352 } |
4353 | |
4354 void set_defaults (const std::string& mode) | |
4355 { | |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4356 m_properties.set_defaults (*this, mode); |
6874 | 4357 } |
4358 | |
7189 | 4359 octave_value get (const caseless_str& name) const |
6874 | 4360 { |
4361 octave_value retval; | |
4362 | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4363 // FIXME: finish this. |
6874 | 4364 if (name.compare ("default", 7)) |
4365 retval = get_default (name.substr (7)); | |
4366 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
|
4367 retval = m_properties.get (name); |
6874 | 4368 |
4369 return retval; | |
4370 } | |
4371 | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4372 OCTINTERP_API octave_value get_default (const caseless_str& name) const; |
6874 | 4373 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4374 octave_value get_defaults () const |
6874 | 4375 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4376 return m_default_properties.as_struct ("default"); |
6874 | 4377 } |
4378 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4379 property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
4380 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4381 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
|
4382 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4383 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4384 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4385 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4386 const base_properties& get_properties () const { return m_properties; } |
7222 | 4387 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4388 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
|
4389 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4390 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
|
4391 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
|
4392 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4393 bool valid_object () const { return true; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4394 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4395 OCTINTERP_API void reset_default_properties (); |
10722
755fcb5baad3
Add the reset built function
David Bateman <dbateman@free.fr>
parents:
10717
diff
changeset
|
4396 |
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
|
4397 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
|
4398 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4399 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
|
4400 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
|
4401 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
|
4402 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
|
4403 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4404 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
4405 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4406 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
|
4407 |
6874 | 4408 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
|
4409 property_list m_default_properties; |
6874 | 4410 }; |
4411 | |
4412 // --------------------------------------------------------------------- | |
4413 | |
7365 | 4414 class OCTINTERP_API line : public base_graphics_object |
6874 | 4415 { |
4416 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4417 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4418 class OCTINTERP_API properties : public base_properties |
6874 | 4419 { |
4420 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4421 |
6874 | 4422 // See the genprops.awk script for an explanation of the |
4423 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4424 // Programming note: Keep property list sorted if new ones are added. |
7366 | 4425 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4426 BEGIN_PROPERTIES (line) |
20738
f90295782d60
Accept color value of "none" for line objects (bug #44224).
Rik <rik@octave.org>
parents:
20730
diff
changeset
|
4427 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
|
4428 string_property displayname , "" |
22759
39f39eb4e476
Implement "linejoin" property (bug #48387)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
22755
diff
changeset
|
4429 radio_property linejoin , "{round}|miter|chamfer" |
7363 | 4430 radio_property linestyle , "{-}|--|:|-.|none" |
4431 double_property linewidth , 0.5 | |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
4432 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
|
4433 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
|
4434 color_property markerfacecolor , color_property (radio_values ("auto|{none}"), color_values (0, 0, 0)) |
7363 | 4435 double_property markersize , 6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4436 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
|
4437 string_property xdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4438 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
|
4439 string_property ydatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4440 row_vector_property zdata u , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4441 string_property zdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4442 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4443 // 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
|
4444 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
|
4445 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
|
4446 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
|
4447 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
|
4448 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
|
4449 bool_property zliminclude hl , "on" |
6874 | 4450 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
|
4451 |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
4452 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4453 void init () |
25103
078b795c5219
maint: style check C++ ahead of 4.4 release.
Rik <rik@octave.org>
parents:
25054
diff
changeset
|
4454 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4455 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
|
4456 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
|
4457 } |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
4458 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4459 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4460 OCTINTERP_API Matrix compute_xlim () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4461 OCTINTERP_API Matrix compute_ylim () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4462 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4463 void update_xdata () { set_xlim (compute_xlim ()); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4464 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4465 void update_ydata () { set_ylim (compute_ylim ()); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4466 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4467 void update_zdata () { set_zlim (m_zdata.get_limits ()); } |
6874 | 4468 }; |
4469 | |
4470 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
|
4471 properties m_properties; |
6874 | 4472 |
4473 public: | |
4474 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
|
4475 : 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
|
4476 { } |
6874 | 4477 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4478 ~line () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4479 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4480 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4481 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4482 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4483 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4484 bool valid_object () 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
|
4485 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4486 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
|
4487 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4488 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
|
4489 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
|
4490 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
|
4491 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
|
4492 } |
6874 | 4493 }; |
4494 | |
4495 // --------------------------------------------------------------------- | |
4496 | |
7365 | 4497 class OCTINTERP_API text : public base_graphics_object |
6874 | 4498 { |
4499 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4500 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4501 class OCTINTERP_API properties : public base_properties |
6874 | 4502 { |
4503 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4504 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4505 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
|
4506 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
|
4507 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4508 OCTINTERP_API void update_text_extent (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4509 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4510 OCTINTERP_API void update_font (); |
25884
4e108574385c
Improve OpenGL rendering on high resolution screens with Qt 5 (bug #49053)
John Swensen <jpswensen@gmail.com>
parents:
25867
diff
changeset
|
4511 |
14448
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4512 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
|
4513 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4514 octave_value new_val (val); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4515 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4516 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
|
4517 { |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4518 dim_vector dv (1, 3); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4519 |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4520 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
|
4521 } |
20545
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4522 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4523 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
|
4524 { |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4525 set_positionmode ("manual"); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4526 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
|
4527 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
|
4528 mark_modified (); |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4529 } |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4530 else |
c547458dc10e
eliminate error_state from most header files
John W. Eaton <jwe@octave.org>
parents:
20459
diff
changeset
|
4531 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
|
4532 } |
7a49519913e3
Add custom inline set_postion method for text objects which accepts
Ben Abbott <bpabbott@mac.com>
parents:
14391
diff
changeset
|
4533 |
6874 | 4534 // See the genprops.awk script for an explanation of the |
4535 // properties declarations. | |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
4536 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4537 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4538 BEGIN_PROPERTIES (text) |
17646
993ea21b7e03
graphics.in.h: Text "edgecolor" property should default to "none".
Rik <rik@octave.org>
parents:
17645
diff
changeset
|
4539 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
|
4540 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
|
4541 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
|
4542 bool_property editing , "off" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4543 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
|
4544 radio_property fontangle u , "{normal}|italic" |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4545 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4546 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
|
4547 bool_property fontsmoothing u , "on" |
19047
1288a2f27769
Handle non "points" fontunits properties (bug # 40158)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19044
diff
changeset
|
4548 radio_property fontunits SU , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
4549 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
|
4550 radio_property horizontalalignment mu , "{left}|center|right" |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4551 radio_property interpreter u , "{tex}|none|latex" |
7377 | 4552 radio_property linestyle , "{-}|--|:|-.|none" |
4553 double_property linewidth , 0.5 | |
26185
ef0998af70f9
Change "Margin" default of text object to 3.
Rik <rik@octave.org>
parents:
26129
diff
changeset
|
4554 double_property margin , 3 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4555 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
|
4556 double_property rotation mu , 0 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4557 text_label_property string u , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4558 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
|
4559 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
|
4560 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4561 // 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
|
4562 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
|
4563 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
|
4564 row_vector_property zlim hlr , Matrix () |
11281
3f952c6973f7
graphics.h.in: Change intended for 11272.
Ben Abbott <bpabbott@mac.com>
parents:
11250
diff
changeset
|
4565 bool_property xliminclude hl , "off" |
3f952c6973f7
graphics.h.in: Change intended for 11272.
Ben Abbott <bpabbott@mac.com>
parents:
11250
diff
changeset
|
4566 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
|
4567 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
|
4568 // hidden properties for auto-positioning |
12389
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4569 radio_property positionmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4570 radio_property rotationmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4571 radio_property horizontalalignmentmode hu , "{auto}|manual" |
5367bd36b9f8
implement autopositioning requests from text objects to axes
Konstantinos Poulios <logari81@googlemail.com>
parents:
12334
diff
changeset
|
4572 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
|
4573 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
|
4574 // 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
|
4575 double_property __fontsize_points__ hgr , 0 |
6874 | 4576 END_PROPERTIES |
4577 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4578 OCTINTERP_API Matrix get_data_position () const; |
29433
8811d8274118
Allow arbitrary text rotation onscreen (bug #33118)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
29359
diff
changeset
|
4579 OCTINTERP_API Matrix get_extent_matrix (bool rotated = false) const; |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4580 const uint8NDArray& get_pixels () const { return m_pixels; } |
21209
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
4581 |
67d2965af0b5
revamp text rendering classes
John W. Eaton <jwe@octave.org>
parents:
21200
diff
changeset
|
4582 // 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
|
4583 octave::text_renderer m_txt_renderer; |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4584 |
7363 | 4585 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4586 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4587 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4588 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
|
4589 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
|
4590 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
|
4591 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
|
4592 m_cached_units = get_units (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4593 update_font (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4594 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4595 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4596 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4597 void update_position () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4598 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4599 Matrix pos = get_data_position (); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4600 Matrix lim; |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4601 |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4602 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
|
4603 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
|
4604 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
|
4605 set_xlim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4606 |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4607 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
|
4608 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
|
4609 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
|
4610 set_ylim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4611 |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4612 if (pos.numel () == 3) |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4613 { |
26712
f8e7c1750222
Fix auto axes limits with text on negative logarithmic axes.
Markus Mützel <markus.muetzel@gmx.de>
parents:
26682
diff
changeset
|
4614 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
|
4615 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
|
4616 : 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
|
4617 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
|
4618 : lim(3)); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4619 set_zlim (lim); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4620 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4621 } |
10402
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4622 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4623 OCTINTERP_API void request_autopos (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4624 void update_positionmode () { request_autopos (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4625 void update_rotationmode () { request_autopos (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4626 void update_horizontalalignmentmode () { request_autopos (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4627 void update_verticalalignmentmode () { request_autopos (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4628 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4629 void update_string () { request_autopos (); update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4630 void update_rotation () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4631 void update_fontname () { update_font (); update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4632 void update_fontsize () { update_font (); update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4633 void update_fontsmoothing () { update_font (); update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4634 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4635 void update_color () |
26682
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4636 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4637 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
|
4638 { |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4639 update_font (); |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4640 update_text_extent (); |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4641 } |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4642 } |
0780d3f4ecad
Implement "none" as a color for axes and text objects (bug #52842).
Rik <rik@octave.org>
parents:
26639
diff
changeset
|
4643 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4644 void update_fontangle () |
23396
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
4645 { |
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
4646 update_font (); |
23210
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
4647 update_text_extent (); |
3a298e07002c
Deprecate "light" and "demi" values for "fontweight" property (bug #50353).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
23201
diff
changeset
|
4648 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4649 void update_fontweight () { update_font (); update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4650 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4651 void update_interpreter () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4652 void update_horizontalalignment () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4653 void update_verticalalignment () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4654 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4655 OCTINTERP_API void update_units (); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4656 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
|
4657 |
9f2bf537a651
Implement text extent property
Michael Goffioul <michael.goffioul@gmail.com>
parents:
10317
diff
changeset
|
4658 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
|
4659 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
|
4660 uint8NDArray m_pixels; |
6874 | 4661 }; |
4662 | |
4663 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
|
4664 properties m_properties; |
6874 | 4665 |
4666 public: | |
4667 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
|
4668 : 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
|
4669 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4670 m_properties.set_clipping ("off"); |
6874 | 4671 } |
4672 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4673 ~text () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4674 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4675 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4676 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4677 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4678 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4679 bool valid_object () 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
|
4680 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4681 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
|
4682 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4683 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
|
4684 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
|
4685 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
|
4686 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
|
4687 } |
6874 | 4688 }; |
4689 | |
4690 // --------------------------------------------------------------------- | |
4691 | |
7365 | 4692 class OCTINTERP_API image : public base_graphics_object |
6874 | 4693 { |
4694 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4695 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4696 class OCTINTERP_API properties : public base_properties |
6874 | 4697 { |
4698 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4699 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4700 bool is_aliminclude () 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
|
4701 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4702 std::string get_aliminclude () 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
|
4703 { return m_aliminclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4704 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4705 bool is_climinclude () 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
|
4706 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4707 std::string get_climinclude () 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
|
4708 { 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
|
4709 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4710 OCTINTERP_API octave_value get_color_data () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4711 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4712 void initialize_data () { update_cdata (); } |
19324
68db8396c378
Make "image ()" use the default image cdata
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19087
diff
changeset
|
4713 |
6874 | 4714 // See the genprops.awk script for an explanation of the |
4715 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4716 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4717 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4718 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
|
4719 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
|
4720 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
|
4721 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
|
4722 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
|
4723 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
|
4724 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
|
4725 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4726 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4727 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
|
4728 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
|
4729 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
|
4730 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4731 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
|
4732 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
|
4733 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
|
4734 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
|
4735 radio_property ydatamode ha , "{auto}|manual" |
6874 | 4736 END_PROPERTIES |
4737 | |
7363 | 4738 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4739 void init () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4740 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4741 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
|
4742 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
|
4743 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
|
4744 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
|
4745 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
|
4746 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
|
4747 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
|
4748 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
|
4749 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
|
4750 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
|
4751 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
|
4752 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
|
4753 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
|
4754 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
|
4755 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
|
4756 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
|
4757 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
|
4758 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
|
4759 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
|
4760 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
|
4761 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
|
4762 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4763 |
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4764 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4765 void update_alphadata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4766 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4767 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
|
4768 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
|
4769 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
|
4770 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
|
4771 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4772 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4773 void update_cdata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4774 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4775 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
|
4776 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
|
4777 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
|
4778 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
|
4779 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4780 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
|
4781 update_xdata (); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4782 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4783 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
|
4784 update_ydata (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
4785 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4786 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4787 void update_xdata () |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4788 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4789 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
|
4790 set_xdatamode ("auto"); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4791 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4792 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
|
4793 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4794 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
|
4795 set_xdatamode ("auto"); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4796 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4797 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4798 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
|
4799 float dp = pixel_xsize (); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4800 |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4801 limits(0) = limits(0) - dp; |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4802 limits(1) = limits(1) + dp; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4803 set_xlim (limits); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4804 } |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4805 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4806 void update_ydata () |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4807 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4808 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
|
4809 set_ydatamode ("auto"); |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4810 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4811 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
|
4812 { |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4813 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
|
4814 set_ydatamode ("auto"); |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4815 } |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
4816 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4817 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
|
4818 float dp = pixel_ysize (); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4819 |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4820 limits(0) = limits(0) - dp; |
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4821 limits(1) = limits(1) + dp; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4822 set_ylim (limits); |
9687
86aa08bbc887
image clipping and axes fixes
Shai Ayal <shaiay@users.sourceforge.net>
parents:
9680
diff
changeset
|
4823 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
4824 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4825 Matrix get_auto_xdata () |
18899
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4826 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4827 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
|
4828 Matrix data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4829 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
|
4830 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4831 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
|
4832 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
|
4833 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4834 return data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4835 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4836 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4837 Matrix 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
|
4838 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4839 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
|
4840 Matrix data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4841 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
|
4842 { |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4843 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
|
4844 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
|
4845 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4846 return data; |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4847 } |
3d9e503aea2c
Update image "x/ydata" when "cdata" is changed (bug #42121)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18850
diff
changeset
|
4848 |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4849 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
|
4850 { |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4851 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
|
4852 float dp; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4853 |
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
|
4854 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
|
4855 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
|
4856 else |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4857 { |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4858 if (limits(1) == limits(2)) |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4859 dp = 0.5; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4860 else |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4861 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
|
4862 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4863 return dp; |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4864 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4865 |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4866 public: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4867 float pixel_xsize () |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4868 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4869 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
|
4870 } |
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4871 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4872 float pixel_ysize () |
11076
b748b86cb8c1
fix images with width or height of 1
Shai Ayal <shaiay@users.sourceforge.net>
parents:
11075
diff
changeset
|
4873 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4874 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
|
4875 } |
6874 | 4876 }; |
4877 | |
4878 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
|
4879 properties m_properties; |
6874 | 4880 |
4881 public: | |
4882 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
|
4883 : 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
|
4884 { |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4885 m_properties.initialize_data (); |
6874 | 4886 } |
4887 | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4888 ~image () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4889 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4890 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4891 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4892 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4893 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4894 bool valid_object () 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
|
4895 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
4896 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
|
4897 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4898 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
|
4899 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
|
4900 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
|
4901 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
|
4902 } |
6874 | 4903 }; |
4904 | |
4905 // --------------------------------------------------------------------- | |
4906 | |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4907 class OCTINTERP_API light : public base_graphics_object |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4908 { |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4909 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4910 |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4911 class OCTINTERP_API properties : public base_properties |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4912 { |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4913 // 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
|
4914 // properties declarations. |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4915 // 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
|
4916 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4917 BEGIN_PROPERTIES (light) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4918 color_property color , color_values (1, 1, 1) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4919 array_property position , default_light_position () |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4920 radio_property style , "{infinite}|local" |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4921 END_PROPERTIES |
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 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4924 void init () |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4925 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4926 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
|
4927 } |
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
|
4928 |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
4929 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4930 OCTINTERP_API void update_visible (); |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4931 }; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4932 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4933 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
|
4934 properties m_properties; |
21789
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 public: |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4937 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
|
4938 : base_graphics_object (), m_properties (mh, p) |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4939 { } |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4940 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4941 ~light () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4942 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4943 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4944 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4945 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4946 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4947 bool valid_object () const { return true; } |
21789
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4948 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4949 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
|
4950 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
4951 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
|
4952 if (! retval) |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4953 retval = base_properties::has_readonly_property (pname); |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4954 return retval; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4955 } |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4956 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
4957 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4958 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
|
4959 }; |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4960 |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4961 // --------------------------------------------------------------------- |
6afdf40be534
Implement graphics object "light" (patch #8943).
mmuetzel <markus.muetzel@gmx.de>
parents:
21782
diff
changeset
|
4962 |
7365 | 4963 class OCTINTERP_API patch : public base_graphics_object |
6874 | 4964 { |
4965 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4966 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
4967 class OCTINTERP_API properties : public base_properties |
6874 | 4968 { |
4969 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
4970 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4971 octave_value get_color_data () const; |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
4972 |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4973 // 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
|
4974 // 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
|
4975 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
|
4976 { |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
4977 msg = m_bad_data_msg; |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4978 return ! msg.empty (); |
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
4979 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
4980 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4981 bool is_aliminclude () 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
|
4982 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4983 std::string get_aliminclude () 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
|
4984 { 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
|
4985 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4986 bool is_climinclude () 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
|
4987 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4988 std::string get_climinclude () 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
|
4989 { return m_climinclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4990 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
4991 OCTINTERP_API bool get_do_lighting () 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
|
4992 |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
4993 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
|
4994 |
6874 | 4995 // See the genprops.awk script for an explanation of the |
4996 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
4997 // Programming note: Keep property list sorted if new ones are added. |
6874 | 4998 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
4999 BEGIN_PROPERTIES (patch) |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5000 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
|
5001 double_property ambientstrength , 0.3 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5002 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
|
5003 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
|
5004 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
|
5005 double_property diffusestrength , 0.6 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5006 string_property displayname , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5007 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
|
5008 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
|
5009 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
|
5010 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
|
5011 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
|
5012 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
|
5013 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
|
5014 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
|
5015 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
|
5016 array_property facevertexalphadata , Matrix () |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5017 array_property facevertexcdata u , Matrix () |
7363 | 5018 radio_property linestyle , "{-}|--|:|-.|none" |
5019 double_property linewidth , 0.5 | |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
5020 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
|
5021 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
|
5022 color_property markerfacecolor , color_property (radio_values ("{none}|auto|flat"), color_values (0, 0, 0)) |
7363 | 5023 double_property markersize , 6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5024 double_property specularcolorreflectance , 1.0 |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5025 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
|
5026 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
|
5027 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
|
5028 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
|
5029 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
|
5030 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
|
5031 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
|
5032 array_property zdata u , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5033 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5034 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5035 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5036 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
|
5037 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
|
5038 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
|
5039 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
|
5040 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5041 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
|
5042 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
|
5043 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
|
5044 bool_property zliminclude hl , "on" |
6874 | 5045 END_PROPERTIES |
5046 | |
7363 | 5047 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5048 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5049 { |
29889
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_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
|
5051 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
|
5052 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
|
5053 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
|
5054 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
|
5055 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
|
5056 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
|
5057 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
|
5058 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
|
5059 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
|
5060 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
|
5061 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
|
5062 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
|
5063 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
|
5064 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
|
5065 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
|
5066 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
|
5067 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
|
5068 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
|
5069 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
|
5070 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
|
5071 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
|
5072 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
|
5073 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
|
5074 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
|
5075 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
|
5076 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
|
5077 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
|
5078 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
|
5079 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5080 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
|
5081 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
|
5082 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
|
5083 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
|
5084 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
|
5085 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
|
5086 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
|
5087 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
|
5088 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
|
5089 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
|
5090 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
|
5091 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5092 |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5093 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
|
5094 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
|
5095 { |
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
|
5096 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
|
5097 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
|
5098 } |
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 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5101 private: |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5102 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
|
5103 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5104 void update_faces () { update_data ();} |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5105 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5106 void update_vertices () { update_data ();} |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5107 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5108 void update_facevertexcdata () { update_data ();} |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5109 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5110 OCTINTERP_API void update_fvc (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5111 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5112 void update_xdata () |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5113 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
5114 if (get_xdata ().isempty ()) |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5115 { |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5116 // For compatibility with matlab behavior, |
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5117 // 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
|
5118 // 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
|
5119 set_ydata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5120 set_zdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5121 set_cdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5122 set_faces (Matrix ()); |
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 else |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5125 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5126 update_fvc (); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5127 update_normals (true); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5128 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5129 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5130 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
|
5131 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5132 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5133 void update_ydata () |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5134 { |
23577
80c42f4cca13
maint: Deprecate is_empty and replace with isempty.
Rik <rik@octave.org>
parents:
23576
diff
changeset
|
5135 if (get_ydata ().isempty ()) |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5136 { |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5137 set_xdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5138 set_zdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5139 set_cdata (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5140 set_faces (Matrix ()); |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5141 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5142 else |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5143 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5144 update_fvc (); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5145 update_normals (true); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5146 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5147 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5148 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
|
5149 } |
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5150 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5151 void update_zdata () |
19597
db92e7e28e1f
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
19596
diff
changeset
|
5152 { |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5153 update_fvc (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5154 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
|
5155 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
|
5156 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5157 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5158 void update_cdata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5159 { |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5160 update_fvc (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5161 update_normals (false); |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5162 |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5163 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
|
5164 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
|
5165 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
|
5166 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
|
5167 } |
18901
df972b9d080a
Translate patch property listeners to C++ (bug #42159)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18899
diff
changeset
|
5168 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5169 OCTINTERP_API void update_data (); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5170 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5171 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
|
5172 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
|
5173 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
|
5174 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5175 void update_edgelighting () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5176 { |
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
|
5177 update_normals (false); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5178 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5179 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5180 void update_facelighting () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5181 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5182 update_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5183 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5184 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5185 void update_facenormalsmode () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5186 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5187 update_face_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5188 } |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5189 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5190 void update_vertexnormalsmode () |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5191 { |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5192 update_vertex_normals (false); |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5193 } |
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
|
5194 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5195 void update_visible () |
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
|
5196 { |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5197 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
|
5198 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
|
5199 } |
6874 | 5200 }; |
5201 | |
5202 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
|
5203 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
|
5204 property_list m_default_properties; |
6874 | 5205 |
5206 public: | |
5207 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
|
5208 : 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
|
5209 { } |
6874 | 5210 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5211 ~patch () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5212 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5213 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5214 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5215 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5216 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5217 bool valid_object () 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
|
5218 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5219 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
|
5220 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5221 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
|
5222 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
|
5223 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
|
5224 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
|
5225 } |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5226 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5227 OCTINTERP_API void reset_default_properties (); |
25425
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5228 |
107920dd7715
Automatically calculate normals for patch objects (patch #8951).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25423
diff
changeset
|
5229 protected: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5230 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
|
5231 |
6874 | 5232 }; |
5233 | |
5234 // --------------------------------------------------------------------- | |
5235 | |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5236 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
|
5237 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5238 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5239 |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5240 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
|
5241 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5242 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5243 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5244 OCTINTERP_API octave_value get_color_data () const; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5245 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5246 // 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
|
5247 // 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
|
5248 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
|
5249 { |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5250 msg = m_bad_data_msg; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5251 return ! msg.empty (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5252 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5253 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5254 bool is_aliminclude () 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
|
5255 { return m_aliminclude.is_on (); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5256 std::string get_aliminclude () 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
|
5257 { return m_aliminclude.current_value (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5258 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5259 bool is_climinclude () 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
|
5260 { return m_climinclude.is_on (); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5261 std::string get_climinclude () 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
|
5262 { return m_climinclude.current_value (); } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5263 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5264 // 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
|
5265 // properties declarations. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5266 // 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
|
5267 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5268 BEGIN_PROPERTIES (scatter) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5269 array_property annotation , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5270 array_property cdata mu , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5271 radio_property cdatamode u , "{auto}|manual" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5272 string_property cdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5273 array_property datatiptemplate , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5274 string_property displayname , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5275 array_property latitudedata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5276 string_property latitudedatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5277 double_property linewidth , 0.5 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5278 array_property longitudedata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5279 string_property longitudedatasource , "" |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
5280 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
|
5281 double_property markeredgealpha , 1.0 |
28414
04349a21c750
Implement "none" for scatter "markeredgecolor" property (bug #58508)
Rik <rik@octave.org>
parents:
28348
diff
changeset
|
5282 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
|
5283 double_property markerfacealpha , 1.0 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5284 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
|
5285 array_property rdata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5286 string_property rdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5287 array_property seriesindex u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5288 array_property sizedata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5289 string_property sizedatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5290 array_property thetadata , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5291 string_property thetadatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5292 array_property xdata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5293 string_property xdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5294 array_property ydata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5295 string_property ydatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5296 array_property zdata u , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5297 string_property zdatasource , "" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5298 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5299 // hidden properties for limit computation |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5300 row_vector_property alim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5301 row_vector_property clim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5302 row_vector_property xlim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5303 row_vector_property ylim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5304 row_vector_property zlim hlr , Matrix () |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5305 bool_property aliminclude hlg , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5306 bool_property climinclude hlg , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5307 bool_property xliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5308 bool_property yliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5309 bool_property zliminclude hl , "on" |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5310 END_PROPERTIES |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5311 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5312 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5313 void init () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5314 { |
29889
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_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
|
5316 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
|
5317 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
|
5318 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
|
5319 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
|
5320 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
|
5321 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
|
5322 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
|
5323 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
|
5324 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
|
5325 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
|
5326 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
|
5327 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
|
5328 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
|
5329 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
|
5330 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
|
5331 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
|
5332 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
|
5333 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
|
5334 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
|
5335 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
|
5336 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
|
5337 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
|
5338 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
|
5339 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
|
5340 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
|
5341 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
|
5342 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
|
5343 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
|
5344 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
|
5345 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
|
5346 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
|
5347 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
|
5348 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5349 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
|
5350 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
|
5351 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
|
5352 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
|
5353 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5354 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5355 public: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5356 OCTINTERP_API void update_color (); |
28286
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 private: |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5359 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
|
5360 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5361 void update_xdata () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5362 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5363 if (get_xdata ().isempty ()) |
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 // For compatibility with Matlab behavior, |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5366 // 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
|
5367 set_ydata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5368 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
|
5369 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
|
5370 set_cdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5371 if (cdatamode_auto) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5372 set_cdatamode ("auto"); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5373 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5374 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5375 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
|
5376 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5377 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5378 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5379 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5380 void update_ydata () |
28286
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 if (get_ydata ().isempty ()) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5383 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5384 set_xdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5385 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
|
5386 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
|
5387 set_cdata (Matrix ()); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5388 if (cdatamode_auto) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5389 set_cdatamode ("auto"); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5390 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5391 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5392 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
|
5393 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5394 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5395 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5396 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5397 void update_zdata () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5398 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5399 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
|
5400 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5401 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5402 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5403 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5404 void update_sizedata () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5405 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5406 update_data (); |
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 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5409 void update_cdata () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5410 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5411 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
|
5412 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
|
5413 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
|
5414 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
|
5415 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5416 update_data (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5417 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5418 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5419 void update_cdatamode () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5420 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5421 if (m_cdatamode.is ("auto")) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5422 update_color (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5423 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5424 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5425 void update_seriesindex () |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5426 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5427 if (m_cdatamode.is ("auto")) |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5428 update_color (); |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5429 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5430 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5431 void update_data (); |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5432 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5433 }; |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5434 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5435 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
|
5436 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
|
5437 property_list m_default_properties; |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5438 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5439 public: |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5440 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
|
5441 : 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
|
5442 { |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5443 // 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
|
5444 // object is added to the axes. |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5445 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5446 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5447 ~scatter () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5448 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5449 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5450 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5451 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5452 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5453 bool valid_object () const { return true; } |
28286
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5454 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5455 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
|
5456 { |
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 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
|
5458 if (! retval) |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5459 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
|
5460 return retval; |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5461 } |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5462 |
496735a910c1
Add graphics object "scatter" (bug #58282).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28282
diff
changeset
|
5463 protected: |
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 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
|
5465 |
6874 | 5466 }; |
5467 | |
5468 // --------------------------------------------------------------------- | |
5469 | |
7365 | 5470 class OCTINTERP_API surface : public base_graphics_object |
6874 | 5471 { |
5472 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5473 |
7821
f79dcba526a8
Export nested properties classes of all graphics object.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7527
diff
changeset
|
5474 class OCTINTERP_API properties : public base_properties |
6874 | 5475 { |
5476 public: | |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5477 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5478 octave_value get_color_data () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5479 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5480 bool is_aliminclude () 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
|
5481 { return (m_aliminclude.is_on () && m_alphadatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5482 std::string get_aliminclude () 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
|
5483 { 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
|
5484 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5485 bool is_climinclude () 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
|
5486 { return (m_climinclude.is_on () && m_cdatamapping.is ("scaled")); } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5487 std::string get_climinclude () 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
|
5488 { return m_climinclude.current_value (); } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5489 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5490 OCTINTERP_API bool get_do_lighting () 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
|
5491 |
6874 | 5492 // See the genprops.awk script for an explanation of the |
5493 // properties declarations. | |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5494 // Programming note: Keep property list sorted if new ones are added. |
6874 | 5495 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
5496 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
|
5497 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
|
5498 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
|
5499 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
|
5500 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
|
5501 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
|
5502 radio_property cdatamapping al , "{scaled}|direct" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5503 string_property cdatasource , "" |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5504 double_property diffusestrength , 0.6 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5505 string_property displayname , "" |
7846
d7737a4268b7
Fix typos in property names (edgealpha/facealpha).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7844
diff
changeset
|
5506 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
|
5507 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
|
5508 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
|
5509 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
|
5510 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
|
5511 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
|
5512 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
|
5513 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
|
5514 radio_property linestyle , "{-}|--|:|-.|none" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5515 double_property linewidth , 0.5 |
30253
20fd3c03fd74
Add new plot marker styles '|' and '_' (bug #61350)
Rik <rik@octave.org>
parents:
30155
diff
changeset
|
5516 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
|
5517 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
|
5518 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
|
5519 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
|
5520 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
|
5521 double_property specularcolorreflectance , 1 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5522 double_property specularexponent , 10 |
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5523 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
|
5524 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
|
5525 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
|
5526 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
|
5527 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
|
5528 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
|
5529 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
|
5530 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
|
5531 string_property zdatasource , "" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5532 |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5533 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5534 row_vector_property alim hlr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5535 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
|
5536 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
|
5537 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
|
5538 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
|
5539 bool_property aliminclude hlg , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5540 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
|
5541 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
|
5542 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
|
5543 bool_property zliminclude hl , "on" |
6874 | 5544 END_PROPERTIES |
5545 | |
7363 | 5546 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5547 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5548 { |
29889
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_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
|
5550 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
|
5551 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
|
5552 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
|
5553 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
|
5554 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
|
5555 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
|
5556 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
|
5557 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
|
5558 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
|
5559 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
|
5560 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
|
5561 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
|
5562 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
|
5563 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
|
5564 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
|
5565 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
|
5566 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
|
5567 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
|
5568 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
|
5569 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
|
5570 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
|
5571 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
|
5572 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
|
5573 |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5574 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
|
5575 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
|
5576 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
|
5577 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
|
5578 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
|
5579 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
|
5580 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
|
5581 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
|
5582 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
|
5583 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
|
5584 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
|
5585 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5586 |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5587 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
|
5588 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
|
5589 { |
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
|
5590 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
|
5591 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
|
5592 } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5593 |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5594 |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5595 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5596 void update_alphadata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5597 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5598 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
|
5599 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
|
5600 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
|
5601 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
|
5602 } |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5603 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5604 void update_cdata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5605 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5606 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
|
5607 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
|
5608 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
|
5609 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
|
5610 } |
7829
8ca8e97e8c0a
Add rendering interface for surface object (no implementation yet).
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7828
diff
changeset
|
5611 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5612 void update_xdata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5613 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5614 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
|
5615 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
|
5616 } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5617 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5618 void update_ydata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5619 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5620 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
|
5621 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
|
5622 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5623 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5624 void update_zdata () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5625 { |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5626 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
|
5627 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
|
5628 } |
7862
8f3459a90bf3
Redesign axis limit computation handling (using hidden limit properties in child objects)
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7860
diff
changeset
|
5629 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5630 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
|
5631 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
|
5632 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5633 void update_facenormalsmode () |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5634 { 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
|
5635 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5636 void update_vertexnormalsmode () |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5637 { 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
|
5638 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5639 void update_edgelighting () |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5640 { update_normals (false); } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5641 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5642 void update_facelighting () |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5643 { update_normals (false); } |
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5644 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5645 void update_visible () |
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
|
5646 { |
10145b9ad883
Update normals when turning visibility of surface and patch on (bug #54970).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26037
diff
changeset
|
5647 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
|
5648 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
|
5649 } |
25867
49ffa78f9243
Use "facenormals" for flat lighting on surfaces (bug #54024).
Markus Mützel <markus.muetzel@gmx.de>
parents:
25449
diff
changeset
|
5650 |
6874 | 5651 }; |
5652 | |
5653 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
|
5654 properties m_properties; |
6874 | 5655 |
5656 public: | |
5657 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
|
5658 : 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
|
5659 { } |
6874 | 5660 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5661 ~surface () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5662 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5663 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5664 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5665 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5666 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5667 bool valid_object () 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
|
5668 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5669 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
|
5670 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5671 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
|
5672 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
|
5673 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
|
5674 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
|
5675 } |
6874 | 5676 }; |
5677 | |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5678 // --------------------------------------------------------------------- |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5679 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5680 class OCTINTERP_API hggroup : public base_graphics_object |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5681 { |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5682 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5683 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5684 class OCTINTERP_API properties : public base_properties |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5685 { |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5686 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5687 |
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 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5689 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
|
5690 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5691 OCTINTERP_API void adopt (const graphics_handle& h); |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5692 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5693 // 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
|
5694 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5695 // 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
|
5696 |
8247
e41f420875db
set name of root_figure object to root
John W. Eaton <jwe@octave.org>
parents:
8222
diff
changeset
|
5697 BEGIN_PROPERTIES (hggroup) |
15519
f915996325b7
Add missing DisplayName and EraseMode properties to hggroups (bug #37442)
Ben Abbott <bpabbott@mac.com>
parents:
15468
diff
changeset
|
5698 string_property displayname , "" |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5699 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5700 // hidden properties for limit computation |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5701 row_vector_property alim hr , Matrix () |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5702 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
|
5703 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
|
5704 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
|
5705 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
|
5706 bool_property aliminclude h , "on" |
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5707 bool_property climinclude h , "on" |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5708 bool_property xliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5709 bool_property yliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5710 bool_property zliminclude h , "on" |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5711 END_PROPERTIES |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5712 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5713 private: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5714 OCTINTERP_API void update_limits () const; |
29233
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_limits (const graphics_handle& h) const; |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5717 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5718 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5719 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5720 { } |
11175
c0a95a5c6d25
Address the speed of plotting large hggroup groups and in particular
David Bateman <dbateman@free.fr>
parents:
11167
diff
changeset
|
5721 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5722 }; |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5723 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5724 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
|
5725 properties m_properties; |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5726 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5727 public: |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5728 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
|
5729 : 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
|
5730 { } |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5731 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5732 ~hggroup () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5733 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5734 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5735 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5736 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5737 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5738 bool valid_object () 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
|
5739 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5740 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
|
5741 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5742 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
|
5743 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
|
5744 |
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
|
5745 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
|
5746 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5747 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
|
5748 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
|
5749 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
|
5750 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
|
5751 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5752 |
7865
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5753 }; |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5754 |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5755 // --------------------------------------------------------------------- |
b74039822fd2
Add support for hggroup
Michael Goffioul <michael.goffioul@gmail.com>
parents:
7864
diff
changeset
|
5756 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5757 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
|
5758 { |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5759 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5760 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5761 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
|
5762 { |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5763 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5764 |
26930
ead8f91c5556
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26918
diff
changeset
|
5765 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
|
5766 { |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5767 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
|
5768 } |
8d7265e353a0
Improve performance when closing figures (bug #55908).
Markus Mützel <markus.muetzel@gmx.de>
parents:
26878
diff
changeset
|
5769 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5770 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
|
5771 { |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5772 base_properties::adopt (h); |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5773 } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5774 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5775 // 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
|
5776 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5777 // 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
|
5778 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5779 BEGIN_PROPERTIES (uimenu) |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5780 string_property accelerator , "" |
30999
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5781 // Deprecated in R2017b (replaced by "MenuSelectedFcn") |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5782 callback_property callback hgs , Matrix () |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5783 bool_property checked , "off" |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5784 bool_property enable , "on" |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5785 color_property foregroundcolor , color_values (0, 0, 0) |
30999
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5786 // Deprecated in R2017b (replaced by "Text") |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5787 string_property label hgs , "" |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5788 callback_property menuselectedfcn , Matrix () |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5789 // Deprecated in R2017b, but replacement of re-ordering "children" |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5790 // property of parent does not work yet in Octave. |
20045
ae12edf69bce
Set default uimenu position property to 0 (Bug #44770)
John Donoghue
parents:
19987
diff
changeset
|
5791 double_property position , 0 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5792 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
|
5793 string_property text , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5794 |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5795 // 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
|
5796 string_property __fltk_label__ h , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5797 any_property __object__ h , Matrix () |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5798 END_PROPERTIES |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5799 |
30999
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5800 // Make "Label" an alias for "Text". |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5801 std::string get_label () const |
29913
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5802 { |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5803 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
|
5804 } |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5805 |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5806 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
|
5807 { |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5808 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
|
5809 } |
3eca54836f97
Allow 'Label' to be used as a synonym for 'Text' on uimenus (bug #60870)
Rik <rik@octave.org>
parents:
29889
diff
changeset
|
5810 |
30999
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5811 // Make "Callback" an alias for "MenuSelectedFcn". |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5812 octave_value get_callback () const |
30999
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5813 { |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5814 return get_menuselectedfcn (); |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5815 } |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5816 |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5817 void set_callback (const octave_value& val) |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5818 { |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5819 set_menuselectedfcn (val); |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5820 } |
fef2957c38ec
Deprecate uimenu properties "label" and "callback" (bug #62443)
Rik <rik@octave.org>
parents:
30994
diff
changeset
|
5821 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5822 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5823 void init () |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
5824 { |
30993
63710f3bd981
Stop incorrect error when reset() called on uimenu handle (bug #62425)
Rik <rik@octave.org>
parents:
30564
diff
changeset
|
5825 m_position.add_constraint ("min", 0, true); |
22831
96228c17a66a
Add input checking for double_property and handle_property (task #11311)
Markus Mützel <markus.muetzel@gmx.de>
parents:
22759
diff
changeset
|
5826 } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5827 }; |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5828 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5829 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
|
5830 properties m_properties; |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5831 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5832 public: |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5833 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
|
5834 : 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
|
5835 { } |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5836 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5837 ~uimenu () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5838 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5839 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5840 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5841 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5842 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5843 bool valid_object () const { return true; } |
11586
12df7854fa7c
strip trailing whitespace from source files
John W. Eaton <jwe@octave.org>
parents:
11577
diff
changeset
|
5844 |
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
|
5845 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
|
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 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
|
5848 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
|
5849 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
|
5850 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
|
5851 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5852 |
11155
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5853 }; |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5854 |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5855 // --------------------------------------------------------------------- |
f0e9befd6a1c
add uimenu graphic object to fltk backend
Kai Habel <kai.habel@gmx.de>
parents:
11089
diff
changeset
|
5856 |
28298
e55ff14249c3
Mirror new base property "contextmenu" in "uicontextmenu" (bug #58336).
Markus Mützel <markus.muetzel@gmx.de>
parents:
28286
diff
changeset
|
5857 // 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
|
5858 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
|
5859 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5860 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5861 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5862 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
|
5863 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5864 public: |
20181
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5865 |
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5866 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
|
5867 { 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
|
5868 |
20181
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5869 // FIXME: the list may contain duplicates. |
aa36fb998a4d
maint: Remove unnecessary whitespace at end of lines.
Rik <rik@octave.org>
parents:
20171
diff
changeset
|
5870 // Should we return only unique elements? |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5871 const std::list<graphics_handle> get_dependent_obj_list () |
30040
805357e6b058
maint: use "m_" prefix for member variables of graphics objects.
Rik <rik@octave.org>
parents:
29993
diff
changeset
|
5872 { return m_dependent_obj_list; } |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5873 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5874 // 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
|
5875 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5876 // 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
|
5877 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5878 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
|
5879 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
|
5880 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
|
5881 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5882 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5883 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
|
5884 END_PROPERTIES |
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 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5887 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5888 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5889 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
|
5890 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
|
5891 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
|
5892 } |
20077
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5893 |
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5894 private: |
69f92e0affd2
Handle uicontextmenu deletion/reset (bug #44801)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
20051
diff
changeset
|
5895 // 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
|
5896 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
|
5897 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5898 OCTINTERP_API void update_beingdeleted (); |
29014
df307ee1fb30
Don't rely on graphics_objects destructor being executed synchronously (bug #53513).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
28346
diff
changeset
|
5899 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5900 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5901 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5902 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
|
5903 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5904 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5905 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5906 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
|
5907 : 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
|
5908 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5909 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5910 ~uicontextmenu () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5911 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5912 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5913 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5914 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5915 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5916 bool valid_object () const { return true; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5917 |
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
|
5918 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
|
5919 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5920 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
|
5921 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
|
5922 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
|
5923 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
|
5924 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
5925 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5926 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5927 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5928 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
5929 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5930 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
|
5931 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5932 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5933 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5934 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
|
5935 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5936 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5937 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5938 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
|
5939 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
|
5940 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
|
5941 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
5942 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
|
5943 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
|
5944 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5945 // 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
|
5946 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
5947 // 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
|
5948 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5949 BEGIN_PROPERTIES (uicontrol) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
5950 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
|
5951 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
|
5952 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
|
5953 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
|
5954 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
|
5955 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
|
5956 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
|
5957 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
|
5958 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
|
5959 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
5960 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
|
5961 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
|
5962 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
|
5963 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
|
5964 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
|
5965 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
|
5966 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
|
5967 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
|
5968 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
|
5969 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
|
5970 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
|
5971 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
|
5972 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
|
5973 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
|
5974 radio_property verticalalignment , "top|{middle}|bottom" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5975 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5976 // 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
|
5977 bool_property __focus__ h , "off" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
5978 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
|
5979 END_PROPERTIES |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5980 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5981 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
|
5982 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
|
5983 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
5984 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5985 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5986 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
5987 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
|
5988 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
|
5989 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
|
5990 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
|
5991 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
|
5992 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
|
5993 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
|
5994 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
|
5995 m_cached_units = get_units (); |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5996 } |
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
5997 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5998 OCTINTERP_API void update_text_extent (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
5999 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6000 void update_string () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6001 void update_fontname () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6002 void update_fontsize () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6003 void update_fontangle () |
23396
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
6004 { |
945b53af4655
maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents:
23258
diff
changeset
|
6005 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
|
6006 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6007 void update_fontweight () { 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
|
6008 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6009 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
|
6010 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6011 OCTINTERP_API void update_units (); |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6012 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6013 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6014 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6015 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
|
6016 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
|
6017 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6018 public: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6019 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
|
6020 : 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
|
6021 { } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6022 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6023 ~uicontrol () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6024 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6025 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6026 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6027 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6028 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6029 bool valid_object () 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
|
6030 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6031 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
|
6032 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6033 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
|
6034 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
|
6035 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
|
6036 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
|
6037 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6038 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6039 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6040 // --------------------------------------------------------------------- |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6041 |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6042 class OCTINTERP_API uibuttongroup : public base_graphics_object |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6043 { |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6044 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6045 |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6046 class OCTINTERP_API properties : public base_properties |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6047 { |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6048 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6049 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6050 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
|
6051 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
|
6052 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6053 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
|
6054 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6055 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
|
6056 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
|
6057 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
|
6058 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6059 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
|
6060 get___fontsize_points__ (double box_pix_height = 0) const; |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6061 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6062 // See the genprops.awk script for an explanation of the |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6063 // properties declarations. |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6064 // 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
|
6065 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6066 BEGIN_PROPERTIES (uibuttongroup) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
6067 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
|
6068 radio_property bordertype , "none|{etchedin}|etchedout|beveledin|beveledout|line" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6069 double_property borderwidth , 1 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6070 bool_property clipping , "on" |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
6071 radio_property fontangle , "{normal}|italic" |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6072 string_property fontname , OCTAVE_DEFAULT_FONTNAME |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6073 double_property fontsize , 10 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6074 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6075 radio_property fontweight , "{normal}|bold" |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6076 color_property foregroundcolor , color_values (0, 0, 0) |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6077 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
|
6078 array_property position S , default_panel_position () |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6079 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6080 // and has been replaced with "sizechangedfcn" |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6081 // 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
|
6082 callback_property resizefcn , Matrix () |
24120
0d446e938f1f
maint: clean up code formatting in generated graphics.h
Mike Miller <mtmiller@octave.org>
parents:
24071
diff
changeset
|
6083 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
|
6084 callback_property selectionchangedfcn , Matrix () |
25449
d2d9701d2dcb
Change default ShadowColor property to match Matlab (bug #53805).
Rik <rik@octave.org>
parents:
25436
diff
changeset
|
6085 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
|
6086 callback_property sizechangedfcn , Matrix () |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6087 radio_property units S , "{normalized}|inches|centimeters|points|pixels|characters" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6088 string_property title , "" |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6089 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
|
6090 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6091 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6092 any_property __object__ h , Matrix () |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6093 END_PROPERTIES |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6094 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6095 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6096 void init () |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6097 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6098 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
|
6099 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
|
6100 m_fontsize.add_constraint ("min", 0.0, false); |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6101 } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6102 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6103 // void update_text_extent (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6104 // void update_string () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6105 // void update_fontname () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6106 // void update_fontsize () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6107 // void update_fontangle () { update_text_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6108 // void update_fontweight () { update_fontweight (); } |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6109 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6110 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
|
6111 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
|
6112 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6113 }; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6114 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6115 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
|
6116 properties m_properties; |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6117 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6118 public: |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6119 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
|
6120 : base_graphics_object (), m_properties (mh, p) |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6121 { } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6122 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6123 ~uibuttongroup () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6124 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6125 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6126 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6127 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6128 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6129 bool valid_object () const { return true; } |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6130 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6131 bool has_readonly_property (const caseless_str& pname) const |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6132 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6133 bool retval = m_properties.has_readonly_property (pname); |
21824
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6134 if (! retval) |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6135 retval = base_properties::has_readonly_property (pname); |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6136 return retval; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6137 } |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6138 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6139 }; |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6140 |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6141 // --------------------------------------------------------------------- |
6780a8657be3
Implement uibuttongroup (bug #47513)
Andrew Thornton <art27@cantab.net>
parents:
21789
diff
changeset
|
6142 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6143 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
|
6144 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6145 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6146 |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6147 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
|
6148 { |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6149 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6150 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6151 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
|
6152 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
|
6153 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
|
6154 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6155 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
|
6156 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
|
6157 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6158 // 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
|
6159 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6160 // 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
|
6161 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6162 BEGIN_PROPERTIES (uipanel) |
25429
ecc488aa56a0
Change default ui* objects color for compatibility (bug #53805)
Guillaume Flandin <guillaume.offline@gmail.com>
parents:
25425
diff
changeset
|
6163 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
|
6164 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
|
6165 double_property borderwidth , 1 |
28079
999351c323ce
remove deprecated "oblique" value from fontangle graphics property
John W. Eaton <jwe@octave.org>
parents:
27923
diff
changeset
|
6166 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
|
6167 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
|
6168 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
|
6169 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6170 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
|
6171 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
|
6172 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
|
6173 array_property position S , default_panel_position () |
26129
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6174 // FIXME: "resizefcn" is no longer recommended by Matlab, |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6175 // and has been replaced with "sizechangedfcn" |
3c61c8137664
Add sizechangedfcn property to uipanel objects.
Rik <rik@octave.org>
parents:
26125
diff
changeset
|
6176 // 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
|
6177 callback_property resizefcn , Matrix () |
25449
d2d9701d2dcb
Change default ShadowColor property to match Matlab (bug #53805).
Rik <rik@octave.org>
parents:
25436
diff
changeset
|
6178 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
|
6179 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
|
6180 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
|
6181 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
|
6182 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
|
6183 // Octave-specific properties |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6184 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
|
6185 END_PROPERTIES |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6186 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6187 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6188 void init () |
19861
19755f4fc851
maint: Cleanup C++ code to follow Octave coding conventions.
Rik <rik@octave.org>
parents:
19834
diff
changeset
|
6189 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6190 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
|
6191 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
|
6192 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
|
6193 } |
19593
446c46af4b42
strip trailing whitespace from most source files
John W. Eaton <jwe@octave.org>
parents:
18819
diff
changeset
|
6194 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6195 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
|
6196 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
|
6197 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6198 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6199 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6200 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
|
6201 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
|
6202 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6203 public: |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6204 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
|
6205 : 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
|
6206 { } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6207 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6208 ~uipanel () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6209 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6210 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6211 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6212 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6213 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6214 bool valid_object () 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
|
6215 |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6216 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
|
6217 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6218 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
|
6219 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
|
6220 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
|
6221 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
|
6222 } |
13281
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6223 }; |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6224 |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6225 // --------------------------------------------------------------------- |
834f904a3dcb
Add support for full asynchronous graphics toolkit running in a separate
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13236
diff
changeset
|
6226 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6227 class OCTINTERP_API uitable : public base_graphics_object |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6228 { |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6229 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6230 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6231 class OCTINTERP_API properties : public base_properties |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6232 { |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6233 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6234 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6235 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
|
6236 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
|
6237 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
|
6238 |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6239 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
|
6240 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
|
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 double |
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6243 get_fontsize_pixels (double box_pix_height = 0) const; |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6244 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6245 // See the genprops.awk script for an explanation of the |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6246 // properties declarations. |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6247 // 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
|
6248 |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6249 // FIXME: keypressfcn, keyreleasefcn, rearrangeablecolumns properties |
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6250 // seem to have been removed from Matlab. |
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6251 |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6252 BEGIN_PROPERTIES (uitable) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6253 any_property __object__ h , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6254 array_property backgroundcolor , default_table_backgroundcolor () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6255 callback_property celleditcallback , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6256 callback_property cellselectioncallback , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6257 row_vector_property columneditable , Matrix () |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6258 any_property columnformat S , Cell () |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6259 any_property columnname , "numbered" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6260 any_property columnwidth S , "auto" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6261 any_property data u , Matrix () |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6262 bool_property enable , "on" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6263 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
|
6264 radio_property fontangle u , "{normal}|italic" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6265 string_property fontname u , OCTAVE_DEFAULT_FONTNAME |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6266 double_property fontsize u , 10 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6267 radio_property fontunits S , "inches|centimeters|normalized|{points}|pixels" |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6268 radio_property fontweight u , "{normal}|bold" |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6269 color_property foregroundcolor , color_values (0, 0, 0) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6270 callback_property keypressfcn , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6271 callback_property keyreleasefcn , Matrix () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6272 array_property position , default_table_position () |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6273 bool_property rearrangeablecolumns , "off" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6274 any_property rowname , "numbered" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6275 bool_property rowstriping , "on" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6276 string_property tooltipstring , "" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6277 radio_property units S , "normalized|inches|centimeters|points|{pixels}|characters" |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6278 END_PROPERTIES |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6279 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6280 OCTINTERP_API Matrix get_extent_matrix () const; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6281 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6282 OCTINTERP_API Matrix get_backgroundcolor_rgb (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6283 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6284 OCTINTERP_API Matrix get_alternatebackgroundcolor_rgb (); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6285 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6286 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6287 void init () |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6288 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6289 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
|
6290 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
|
6291 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
|
6292 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
|
6293 m_columneditable.add_constraint ("logical"); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6294 } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6295 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6296 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
|
6297 OCTINTERP_API void update_fontunits (const caseless_str& old_units); |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6298 void update_table_extent () { }; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6299 void update_data () { update_table_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6300 void update_fontname () { update_table_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6301 void update_fontsize () { update_table_extent (); } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6302 void update_fontangle () |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6303 { |
26275
dd97dc559679
maint: Remove deprecated graphics properties.
Rik <rik@octave.org>
parents:
26194
diff
changeset
|
6304 update_table_extent (); |
26122
4d1c6c60f6b3
Clean up implementation of uitable in 36e0e5b428e7.
Rik <rik@octave.org>
parents:
26112
diff
changeset
|
6305 } |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6306 void update_fontweight () { update_table_extent (); } |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6307 }; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6308 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6309 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
|
6310 properties m_properties; |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6311 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6312 public: |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6313 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
|
6314 : base_graphics_object (), m_properties (mh, p) |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6315 { } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6316 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6317 ~uitable () { } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6318 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6319 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6320 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6321 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6322 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6323 bool valid_object () const { return true; } |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6324 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6325 bool has_readonly_property (const caseless_str& pname) const |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6326 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6327 bool retval = m_properties.has_readonly_property (pname); |
26112
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6328 if (! retval) |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6329 retval = base_properties::has_readonly_property (pname); |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6330 return retval; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6331 } |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6332 }; |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6333 |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6334 // --------------------------------------------------------------------- |
36e0e5b428e7
Implement uitable (patch #9084)
Andrew Thornton <art27@cantab.net>
parents:
26107
diff
changeset
|
6335 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6336 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
|
6337 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6338 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6339 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6340 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
|
6341 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6342 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6343 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6344 // 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
|
6345 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6346 // 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
|
6347 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6348 BEGIN_PROPERTIES (uitoolbar) |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6349 // 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
|
6350 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
|
6351 END_PROPERTIES |
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 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6354 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6355 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6356 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6357 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6358 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
|
6359 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6360 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6361 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6362 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
|
6363 : 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
|
6364 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6365 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6366 ~uitoolbar () = default; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6367 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6368 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
|
6369 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6370 // 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
|
6371 // 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
|
6372 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
|
6373 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6374 // 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
|
6375 // 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
|
6376 // 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
|
6377 // 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
|
6378 // 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
|
6379 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
|
6380 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6381 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6382 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
|
6383 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6384 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
|
6385 // 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
|
6386 // 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
|
6387 // 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
|
6388 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
|
6389 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
|
6390 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
|
6391 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6392 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6393 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
|
6394 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6395 octave_value retval; |
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 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
|
6398 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
|
6399 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
|
6400 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
|
6401 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6402 return retval; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6403 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6404 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6405 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
|
6406 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6407 octave_value get_defaults () const |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6408 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6409 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
|
6410 } |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6411 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6412 property_list get_defaults_list () const |
19666
e7df12f37f71
Freset: avoid multiple reseting of properties (bug #43960)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
19663
diff
changeset
|
6413 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6414 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
|
6415 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6416 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6417 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6418 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6419 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6420 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6421 bool valid_object () const { return true; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6422 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6423 OCTINTERP_API void reset_default_properties (); |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6424 |
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
|
6425 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
|
6426 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6427 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
|
6428 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
|
6429 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
|
6430 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
|
6431 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6432 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6433 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
|
6434 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
|
6435 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6436 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6437 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6438 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6439 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
|
6440 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6441 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6442 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6443 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
|
6444 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6445 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6446 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6447 // 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
|
6448 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6449 // 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
|
6450 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6451 BEGIN_PROPERTIES (uipushtool) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6452 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
|
6453 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
|
6454 bool_property enable , "on" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6455 bool_property separator , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6456 string_property tooltipstring , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6457 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6458 // 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
|
6459 string_property __named_icon__ , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6460 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
|
6461 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6462 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6463 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6464 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6465 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6466 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
|
6467 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
|
6468 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
|
6469 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
|
6470 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
|
6471 } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6472 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6473 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6474 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
|
6475 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6476 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6477 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6478 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
|
6479 : 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
|
6480 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6481 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6482 ~uipushtool () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6483 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6484 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6485 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6486 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6487 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6488 bool valid_object () const { return true; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6489 |
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
|
6490 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
|
6491 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6492 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
|
6493 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
|
6494 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
|
6495 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
|
6496 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6497 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6498 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6499 |
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 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6502 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
|
6503 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6504 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6505 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6506 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
|
6507 { |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6508 public: |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6509 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6510 // 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
|
6511 // properties declarations. |
17099
a033fd3669c0
Alphabetize graphic properties and add properties missing from Matlab.
Rik <rik@octave.org>
parents:
17098
diff
changeset
|
6512 // 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
|
6513 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6514 BEGIN_PROPERTIES (uitoggletool) |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6515 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
|
6516 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
|
6517 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
|
6518 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
|
6519 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
|
6520 bool_property separator , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6521 bool_property state , "off" |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6522 string_property tooltipstring , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6523 |
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6524 // 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
|
6525 string_property __named_icon__ , "" |
24452
55ddb7a4cca2
Create "pickableparts" as a base graphics property.
Rik <rik@octave.org>
parents:
24451
diff
changeset
|
6526 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
|
6527 END_PROPERTIES |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6528 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6529 protected: |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6530 void init () |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6531 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6532 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
|
6533 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
|
6534 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
|
6535 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
|
6536 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
|
6537 } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6538 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6539 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6540 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
|
6541 properties m_properties; |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6542 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6543 public: |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6544 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
|
6545 : 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
|
6546 { } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6547 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6548 ~uitoggletool () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6549 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6550 base_properties& get_properties () { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6551 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6552 const base_properties& get_properties () const { return m_properties; } |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6553 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6554 bool valid_object () const { return true; } |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6555 |
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
|
6556 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
|
6557 { |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6558 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
|
6559 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
|
6560 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
|
6561 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
|
6562 } |
8d5cb159fbc7
Add methods to determine if a graphic property is read-only (bug #41629).
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
18119
diff
changeset
|
6563 |
13703
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6564 }; |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6565 |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6566 // --------------------------------------------------------------------- |
22ce748da25f
Add missing UI objects: uicontextmenu, uitoolbar, uipushtool and uitoggletool.
Michael Goffioul <michael.goffioul@gmail.com>
parents:
13699
diff
changeset
|
6567 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6568 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
|
6569 get_property_from_handle (double handle, const std::string& property, |
30896
c9788d7f6e65
maint: Use "fcn" as preferred abbreviation for "function" in libinterp/.
Rik <rik@octave.org>
parents:
30659
diff
changeset
|
6570 const std::string& fcn); |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6571 OCTINTERP_API bool |
18119
ec9b35e60f95
style fixes in graphics.in.h and graphics.cc
John W. Eaton <jwe@octave.org>
parents:
18118
diff
changeset
|
6572 set_property_in_handle (double handle, const std::string& property, |
30896
c9788d7f6e65
maint: Use "fcn" as preferred abbreviation for "function" in libinterp/.
Rik <rik@octave.org>
parents:
30659
diff
changeset
|
6573 const octave_value& arg, const std::string& fcn); |
6874 | 6574 |
6575 // --------------------------------------------------------------------- | |
6576 | |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6577 class graphics_event; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6578 |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6579 class |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6580 OCTINTERP_API |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6581 base_graphics_event |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6582 { |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6583 public: |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6584 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
|
6585 |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6586 friend class graphics_event; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6587 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6588 base_graphics_event () |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6589 : 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
|
6590 { }; |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6591 |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6592 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
|
6593 : 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
|
6594 { }; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6595 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6596 virtual ~base_graphics_event () = default; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6597 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6598 int get_busyaction () { return m_busyaction; }; |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6599 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6600 virtual void execute () = 0; |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6601 |
30390
a61e1a0f6024
maint: style check C++ files in libinterp/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
6602 private: |
25960
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6603 int m_busyaction; |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6604 }; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6605 |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6606 class |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6607 OCTINTERP_API |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6608 graphics_event |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6609 { |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6610 public: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6611 |
30390
a61e1a0f6024
maint: style check C++ files in libinterp/ ahead of 7.1 release.
Rik <rik@octave.org>
parents:
30299
diff
changeset
|
6612 typedef void (*event_fcn) (void *); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6613 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6614 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
|
6615 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6616 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
|
6617 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
6618 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
|
6619 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6620 ~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
|
6621 |
24991
831389905438
omit argument name from default copy ctors and assignment operators
John W. Eaton <jwe@octave.org>
parents:
24795
diff
changeset
|
6622 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
|
6623 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6624 int 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
|
6625 { |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6626 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
|
6627 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
|
6628 else |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6629 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
|
6630 } |
ae9d6a491c06
Refactor graphics event handling and fix interruption of callbacks (bug #54340)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents:
25903
diff
changeset
|
6631 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6632 void execute () |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6633 { |
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6634 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
|
6635 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
|
6636 } |
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6637 |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6638 bool ok () const { return (m_rep != nullptr); } |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6639 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6640 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6641 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
|
6642 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
|
6643 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
|
6644 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
|
6645 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6646 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6647 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
|
6648 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
|
6649 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
|
6650 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
|
6651 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6652 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
|
6653 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
|
6654 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
|
6655 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6656 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
|
6657 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
|
6658 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6659 static OCTINTERP_API graphics_event |
17787
175b392e91fe
Use GNU style coding conventions for code in libinterp/
Rik <rik@octave.org>
parents:
17744
diff
changeset
|
6660 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
|
6661 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
|
6662 bool redraw_figure = false); |
7964
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6663 private: |
24252
f8c263f961c1
use shared_ptr to manage graphics_object and graphics_event objects
John W. Eaton <jwe@octave.org>
parents:
24191
diff
changeset
|
6664 |
29889
3ab696e02f55
use m_ prefix for data members in graphics objects and properties classes
John W. Eaton <jwe@octave.org>
parents:
29655
diff
changeset
|
6665 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
|
6666 }; |
9cd3ee5298a0
Use common rep/class pattern for graphics events
John W. Eaton <jwe@octave.org>
parents:
7936
diff
changeset
|
6667 |
31663
a74935a6cc75
move gh_manager class out of graphics.in.h and graphics.cc to separate files
John W. Eaton <jwe@octave.org>
parents:
31606
diff
changeset
|
6668 OCTINTERP_API base_graphics_object * |
a74935a6cc75
move gh_manager class out of graphics.in.h and graphics.cc to separate files
John W. Eaton <jwe@octave.org>
parents:
31606
diff
changeset
|
6669 make_graphics_object_from_type (const caseless_str& type, |
a74935a6cc75
move gh_manager class out of graphics.in.h and graphics.cc to separate files
John W. Eaton <jwe@octave.org>
parents:
31606
diff
changeset
|
6670 const graphics_handle& h = graphics_handle (), |
a74935a6cc75
move gh_manager class out of graphics.in.h and graphics.cc to separate files
John W. Eaton <jwe@octave.org>
parents:
31606
diff
changeset
|
6671 const graphics_handle& p = graphics_handle ()); |
6874 | 6672 |
29233
665c9ed14c97
Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents:
29163
diff
changeset
|
6673 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
|
6674 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
|
6675 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
|
6676 const Matrix& kids, char limit_type); |
6874 | 6677 |
10917
888c75785221
Improvements to FLTK backend rotation
Jordi Guti?rrez Hermoso <jordigh@gmail.com>
parents:
10792
diff
changeset
|
6678 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
|
6679 |
6874 | 6680 // This function is NOT equivalent to the scripting language function gcf. |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6681 OCTINTERP_API graphics_handle gcf (); |
6874 | 6682 |
6683 // This function is NOT equivalent to the scripting language function gca. | |
31771
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6684 OCTINTERP_API graphics_handle gca (); |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6685 |
21f9b34eb893
maint: Eliminate "(void)" in C++ function prototypes/declarations.
Rik <rik@octave.org>
parents:
31707
diff
changeset
|
6686 OCTINTERP_API void close_all_figures (); |
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
|
6687 |
31605
e88a07dec498
maint: Use macros to begin/end C++ namespaces.
Rik <rik@octave.org>
parents:
31241
diff
changeset
|
6688 OCTAVE_END_NAMESPACE(octave) |
29993
b5fae48ad807
move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents:
29913
diff
changeset
|
6689 |
6874 | 6690 #endif |