annotate scripts/plot/util/private/__add_default_menu__.m @ 28335:6c2366242767

Improve implementation of default File menu for plots (bug #58397) * __add_default_menu__.m: Add trailing dots '...' to "Open" and "Save As" menu entries to indicate a new dialog will appear. __add_default_menu__.m (open_cb): Use openfig rather than hgload. __add_default_menu__.m (__save_as__): Use a longer, clearer file filter input to uiputfile. __add_default_menu__.m (close_cb): Use parentheses with gcbf () to match Octave conventions.
author Guillaume Flandin <guillaume.offline@gmail.com>
date Wed, 20 May 2020 08:18:09 -0700
parents a4268efb7334
children 391a9d85e59d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 ##
27919
1891570abac8 update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 27918
diff changeset
3 ## Copyright (C) 2010-2020 The Octave Project Developers
27918
b442ec6dda5c use centralized file for copyright info for individual contributors
John W. Eaton <jwe@octave.org>
parents: 27554
diff changeset
4 ##
27923
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/>.
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
7 ##
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
8 ## This file is part of Octave.
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
9 ##
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24210
diff changeset
10 ## Octave is free software: you can redistribute it and/or modify it
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
11 ## under the terms of the GNU General Public License as published by
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24210
diff changeset
12 ## the Free Software Foundation, either version 3 of the License, or
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
13 ## (at your option) any later version.
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
14 ##
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
15 ## Octave is distributed in the hope that it will be useful, but
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
16 ## WITHOUT ANY WARRANTY; without even the implied warranty of
22755
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
17 ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3a2b891d0b33 maint: Standardize Copyright formatting.
Rik <rik@octave.org>
parents: 22323
diff changeset
18 ## GNU General Public License for more details.
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
19 ##
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
20 ## You should have received a copy of the GNU General Public License
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
21 ## along with Octave; see the file COPYING. If not, see
24534
194eb4bd202b maint: Update punctuation for GPL v3 license text.
Rik <rik@octave.org>
parents: 24210
diff changeset
22 ## <https://www.gnu.org/licenses/>.
27923
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 ########################################################################
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
25
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
26 ## -*- texinfo -*-
26043
5cef57130cb9 doc: grammar check m-files in scripts/ directory.
Rik <rik@octave.org>
parents: 25948
diff changeset
27 ## @deftypefn {} {} __add_default_menu__ (@var{hfig})
25888
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
28 ## @deftypefnx {} {} __add_default_menu__ (@var{hfig}, @var{hmenu})
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
29 ## Add default menu and listeners to figure.
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
30 ##
20173
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19883
diff changeset
31 ##
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19883
diff changeset
32 ## All uimenu handles have their @qcode{"HandleVisibility"} property set to
777f26aa8e3e doc: Update more docstrings to have one sentence summary as first line.
Rik <rik@octave.org>
parents: 19883
diff changeset
33 ## @qcode{"off"}.
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
34 ## @end deftypefn
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
35
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
36 function __add_default_menu__ (hf, hmenu = [], htb = [])
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
37
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
38 ## Gnuplot doesn't handle uimenu and uitoolbar objects
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
39 if (strcmp (graphics_toolkit (), "gnuplot"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
40 return
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
41 endif
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
42
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
43 ## Create
25888
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
44 if (isempty (hmenu))
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
45 ## File menu
26904
d7856bf83781 Improve new figure creation time by 50%.
Rik <rik@octave.org>
parents: 26902
diff changeset
46 hui = uimenu (hf, "label", "&File", "tag", "__default_menu__File", ...
d7856bf83781 Improve new figure creation time by 50%.
Rik <rik@octave.org>
parents: 26902
diff changeset
47 "handlevisibility", "off");
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
48 uimenu (hui, "label", "&Open...", "callback", @open_cb, ...
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
49 "accelerator", "o");
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
50 uimenu (hui, "label", "&Save", "callback", {@save_cb, "save"}, ...
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
51 "accelerator", "s");
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
52 uimenu (hui, "label", "Save &As...", "callback", {@save_cb, "saveas"}, ...
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
53 "accelerator", "S");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
54 uimenu (hui, "label", "&Close", "callback", @close_cb, ...
25888
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
55 "accelerator", "w", "separator", "on");
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
56 hmenu(1) = hui;
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
57
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
58 ## Edit menu
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
59 hui = uimenu (hf, "label", "&Edit", "handlevisibility", "off", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
60 "tag", "__default_menu__Edit");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
61 uimenu (hui, "label", "&New Figure", "callback", "figure ();", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
62 "accelerator", "n");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
63 uimenu (hui, "label", "&Duplicate Figure",
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
64 "callback", "copyobj (gcbf (), groot ());", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
65 "accelerator", "d");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
66 uimenu (hui, "label", "Clea&r Figure",
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
67 "callback", "clf (gcbf ());");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
68 uimenu (hui, "label", "Reset Figure",
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
69 "callback", "reset (gcbf ());");
27554
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
70 uimenu (hui, "label", "Copy Figure to Clipboard", ...
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
71 "callback", @clipboard_cb, "separator", "on", ...
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
72 "accelerator", "c");
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
73 hmenu(2) = hui;
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
74
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
75 ## Tools menu
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
76 hui = uimenu (hf, "label", "&Tools", "handlevisibility", "off", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
77 "tag", "__default_menu__Tools");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
78 uimenu (hui, "label", "Toggle &grid on all axes", "tag", "toggle", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
79 "callback", @grid_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
80 uimenu (hui, "label", "Show grid on all axes", "tag", "on", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
81 "callback", @grid_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
82 uimenu (hui, "label", "Hide grid on all axes", "tag", "off", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
83 "callback", @grid_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
84 uimenu (hui, "label", "Auto&scale all axes", "callback", @autoscale_cb);
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
85
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
86 hui2 = uimenu (hui, "label", "GUI &Mode (on all axes)");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
87 uimenu (hui2, "label", "Pan x and y", "tag", "pan_on", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
88 "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
89 uimenu (hui2, "label", "Pan x only", "tag", "pan_xon", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
90 "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
91 uimenu (hui2, "label", "Pan y only", "tag", "pan_yon", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
92 "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
93 uimenu (hui2, "label", "Disable pan and rotate", "tag", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
94 "no_pan_rotate", "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
95 uimenu (hui2, "label", "Rotate on", "tag", "rotate3d", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
96 "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
97 uimenu (hui2, "label", "Enable mousezoom", "tag", "zoom_on", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
98 "callback", @guimode_cb);
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
99 uimenu (hui2, "label", "Disable mousezoom", "tag", "zoom_off", ...
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
100 "callback", @guimode_cb);
25948
700b3f415ebe maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 25888
diff changeset
101 hmenu(3) = hui;
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
102
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
103 ## Default toolbar
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
104 init_mouse_tools (hf);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
105 htb = uitoolbar (hf, "tag", "__default_toolbar__", ...
26904
d7856bf83781 Improve new figure creation time by 50%.
Rik <rik@octave.org>
parents: 26902
diff changeset
106 "handlevisibility", "off", "visible", "off");
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
107
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
108 ht(1) = uitoggletool (htb, "tooltipstring", "Pan", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
109 "tag", "__default_button_pan__", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
110 "__named_icon__", "figure-pan");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
111 ht(2) = uitoggletool (htb, "tooltipstring", "Rotate", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
112 "tag", "__default_button_rotate__", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
113 "__named_icon__", "figure-rotate");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
114
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
115 ht(3) = uitoggletool (htb, "tooltipstring", "Zoom In", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
116 "tag", "__default_button_zoomin__", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
117 "__named_icon__", "figure-zoom-in", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
118 "separator", "on");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
119 ht(4) = uitoggletool (htb, "tooltipstring", "Zoom Out", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
120 "tag", "__default_button_zoomout__", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
121 "__named_icon__", "figure-zoom-out");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
122 uipushtool (htb, "tooltipstring", "Automatic limits for current axes", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
123 "clickedcallback", @auto_cb, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
124 "__named_icon__", "figure-zoom-original");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
125
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
126 ht(5) = uitoggletool (htb, "tooltipstring", "Insert Text", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
127 "tag", "__default_button_text__", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
128 "separator", "on", "__named_icon__", "figure-text");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
129
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
130 uipushtool (htb, "tooltipstring", "Toggle current axes visibility", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
131 "clickedcallback", @axes_cb, "separator", "on", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
132 "__named_icon__", "figure-axes");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
133 uipushtool (htb, "tooltipstring", "Toggle current axes grid visibility", ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
134 "clickedcallback", @grid_cb, "__named_icon__", "figure-grid");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
135
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
136 set (ht(1), "oncallback", {@mouse_tools_cb, ht, "pan"}, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
137 "offcallback", {@mouse_tools_cb, ht, "pan"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
138 set (ht(2), "oncallback", {@mouse_tools_cb, ht, "rotate"}, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
139 "offcallback", {@mouse_tools_cb, ht, "rotate"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
140 set (ht(3), "oncallback", {@mouse_tools_cb, ht, "zoomin"}, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
141 "offcallback", {@mouse_tools_cb, ht, "zoomin"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
142 set (ht(4), "oncallback", {@mouse_tools_cb, ht, "zoomout"}, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
143 "offcallback", {@mouse_tools_cb, ht, "zoomout"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
144 set (ht(5), "oncallback", {@mouse_tools_cb, ht, "text"}, ...
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
145 "offcallback", {@mouse_tools_cb, ht, "text"});
17136
e4968b4613a5 Overhaul default menubar (still not perfect).
Rik <rik@octave.org>
parents: 14868
diff changeset
146 endif
e4968b4613a5 Overhaul default menubar (still not perfect).
Rik <rik@octave.org>
parents: 14868
diff changeset
147
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
148 if (! exist ("ht", "var"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
149 ht = get (htb, "children")(end:-1:1);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
150 istoggletool = strcmp (get (ht, "type"), "uitoggletool");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
151 ht(! istoggletool) = [];
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
152 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
153
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
154 ## Add/Restore figure listeners
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
155 toggle_visibility_cb (hf, [], hmenu, htb);
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
156 addlistener (hf, "menubar", {@toggle_visibility_cb, hmenu, htb});
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
157 addlistener (hf, "toolbar", {@toggle_visibility_cb, hmenu, htb});
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
158 addlistener (hf, "__mouse_mode__", {@mouse_tools_cb, ht, "mode"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
159 addlistener (hf, "__zoom_mode__", {@mouse_tools_cb, ht, "mode"});
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
160
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
161 endfunction
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
162
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
163 function toggle_visibility_cb (hf, ~, hmenu, htb)
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
164 menu_state = ifelse (strcmp (get (hf, "menubar"), "figure"), "on", "off");
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
165 toolbar_state = "on";
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
166 if (strcmp (get (hf, "toolbar"), "auto"))
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
167 toolbar_state = menu_state;
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
168 elseif (strcmp (get (hf, "toolbar"), "none"))
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
169 toolbar_state = "off";
25888
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
170 endif
26995
ab5bfee22d18 maint: Strip trailing whitespace from source files.
John W. Eaton <jwe@octave.org>
parents: 26904
diff changeset
171
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
172 set (hmenu, "visible", menu_state);
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
173 set (htb, "visible", toolbar_state);
25888
6109f302cf43 Fix regression with "menubar" figure property handling (bug #54678)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25878
diff changeset
174 endfunction
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21385
diff changeset
175
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
176 function open_cb (h, e)
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
177 [filename, filedir] = uigetfile ({"*.ofig;*.fig", "Figure Files"}, ...
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
178 "Open Figure");
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
179 if (filename != 0)
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
180 fname = fullfile (filedir, filename);
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
181 tmphf = openfig (fname);
25878
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
182 endif
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
183 endfunction
bb4af245dff7 Use uimenu objects for default menus in Qt toolkit
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 25054
diff changeset
184
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
185 function save_cb (h, e, action)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
186 hfig = gcbf ();
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
187 fname = get (hfig, "filename");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
188
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
189 if (strcmp (action, "save"))
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
190 if (isempty (fname))
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
191 __save_as__ (hfig);
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
192 else
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
193 saveas (hfig, fname);
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
194 endif
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
195 elseif (strcmp (action, "saveas"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
196 __save_as__ (hfig, fname);
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
197 endif
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
198 endfunction
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
199
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
200 function __save_as__ (hf, fname = "")
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
201 def = ifelse (! isempty (fname), fname, fullfile (pwd (), "untitled.ofig"));
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
202 filter = {"*.ofig", "Octave Figure";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
203 "*.eps", "Encapsulated PostScript";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
204 "*.pdf", "Portable Document Format";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
205 "*.svg", "Scalable Vector Graphics";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
206 "*.ps", "PostScript";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
207 "*.gif", "GIF Image";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
208 "*.jpg", "JPEG Image";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
209 "*.png", "Portable Network Graphics Image";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
210 "*.tiff", "TIFF Image"};
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
211 ## Reorder filters to have current first
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
212 [~, ~, ext] = fileparts (def);
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
213 idx = ismember (filter(:,1), ["*" tolower(ext)])
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
214 filter = [filter(idx,:); filter(~idx,:)];
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21385
diff changeset
215
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
216 [filename, filedir, filterindex] = uiputfile (filter, "Save Figure", def);
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
217
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
218 if (filename != 0)
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
219 fname = fullfile (filedir, filename);
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
220 [~, ~, ext] = fileparts(fname);
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
221 if (filterindex > size (filter, 1))
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
222 ## "All Files" option
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
223 if (isempty (ext))
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
224 fmt = "";
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
225 else
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
226 fmt = ext(2:end);
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
227 endif
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
228 else
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
229 fmt = filter{filterindex,1}(3:end);
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
230 if (isempty (ext))
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
231 fname = [fname "." fmt];
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
232 endif
24202
014f47089682 make .fig files the default for saving from figure menus
John W. Eaton <jwe@octave.org>
parents: 23220
diff changeset
233 endif
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
234 set (hf, "filename", fname);
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
235 saveas (hf, fname, fmt);
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
236 endif
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
237 endfunction
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
238
24589
9b36fc7bd002 __add_default_menu__.m: Don't close the wrong figure if File->Close used in FLTK.
Rik <rik@octave.org>
parents: 24534
diff changeset
239 function close_cb (h, e)
28335
6c2366242767 Improve implementation of default File menu for plots (bug #58397)
Guillaume Flandin <guillaume.offline@gmail.com>
parents: 27978
diff changeset
240 close (gcbf ());
24589
9b36fc7bd002 __add_default_menu__.m: Don't close the wrong figure if File->Close used in FLTK.
Rik <rik@octave.org>
parents: 24534
diff changeset
241 endfunction
9b36fc7bd002 __add_default_menu__.m: Don't close the wrong figure if File->Close used in FLTK.
Rik <rik@octave.org>
parents: 24534
diff changeset
242
19883
65e6207f7ae4 Fix FLTK Edit uimenu to use new pan/rotate3d fcns and mousewheelzoom property.
Stefan Mahr <dac922@gmx.de>
parents: 19742
diff changeset
243 function [hax, fig] = __get_axes__ (h)
18965
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
244 ## Get parent figure
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
245 fig = ancestor (h, "figure");
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
246
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
247 ## Find all axes which aren't legends
18967
69658bd9952b __add_default_menu__.m: Fix bug that findobj is missing HLIST
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18965
diff changeset
248 hax = findobj (fig, "type", "axes", "-not", "tag", "legend");
18965
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
249 endfunction
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
250
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
251 function autoscale_cb (h, e)
18965
137d01e7c2d4 New scripts pan.m and rotate3d.m, update __add_default_menu__.m
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18961
diff changeset
252 hax = __get_axes__ (h);
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
253 arrayfun (@(h) axis (h, "auto"), hax);
18968
0257a936dc4a Fix FLTK redraw and event issue
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18967
diff changeset
254 drawnow ();
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
255 endfunction
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
256
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
257 function init_mouse_tools (hf)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
258 set (hf, "__pan_mode__", struct ("Enable", "off",
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
259 "Motion", "both",
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
260 "FigureHandle", hf),
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
261 "__rotate_mode__", struct ("Enable", "off",
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
262 "RotateStyle", "box",
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
263 "FigureHandle", hf),
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
264 "__zoom_mode__", struct ("Enable", "off",
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
265 "Motion", "both",
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
266 "Direction", "in",
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
267 "FigureHandle", hf));
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
268 endfunction
21758
ffad2baa90f7 maint: Use newlines to make code more readable.
Rik <rik@octave.org>
parents: 21385
diff changeset
269
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
270 function guimode_cb (h, e)
19883
65e6207f7ae4 Fix FLTK Edit uimenu to use new pan/rotate3d fcns and mousewheelzoom property.
Stefan Mahr <dac922@gmx.de>
parents: 19742
diff changeset
271 [hax, fig] = __get_axes__ (h);
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
272 id = get (h, "tag");
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
273 switch (id)
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
274 case "pan_on"
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
275 pan (fig, "on");
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
276 case "pan_xon"
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
277 pan (fig, "xon");
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
278 case "pan_yon"
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
279 pan (fig, "yon");
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
280 case "rotate3d"
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
281 rotate3d (fig, "on");
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
282 case "no_pan_rotate"
21385
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
283 pan (fig, "off");
89fa0694aa2e Fix check-missing-semicolon QA target (bug #47277).
Rik <rik@octave.org>
parents: 20852
diff changeset
284 rotate3d (fig, "off");
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
285 case "zoom_on"
19883
65e6207f7ae4 Fix FLTK Edit uimenu to use new pan/rotate3d fcns and mousewheelzoom property.
Stefan Mahr <dac922@gmx.de>
parents: 19742
diff changeset
286 arrayfun (@(h) set (h, "mousewheelzoom", 0.05), hax);
18961
52e01aa1fe8b Overhaul FLTK pan, rotate, zoom
Andreas Weber <andy.weber.aw@gmail.com>
parents: 18958
diff changeset
287 case "zoom_off"
19883
65e6207f7ae4 Fix FLTK Edit uimenu to use new pan/rotate3d fcns and mousewheelzoom property.
Stefan Mahr <dac922@gmx.de>
parents: 19742
diff changeset
288 arrayfun (@(h) set (h, "mousewheelzoom", 0.0), hax);
17136
e4968b4613a5 Overhaul default menubar (still not perfect).
Rik <rik@octave.org>
parents: 14868
diff changeset
289 endswitch
11349
4a3258b1448f Add default menu for fltk backend figures
Kai Habel <kai.habel@gmx.de>
parents:
diff changeset
290 endfunction
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
291
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
292 function mouse_tools_cb (h, ev, htools, typ = "")
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
293
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
294 persistent recursion = false;
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
295
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
296 if (! recursion)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
297 recursion = true;
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
298
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
299 hf = gcbf ();
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
300
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
301 if (strcmp (typ, "mode"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
302 ## The mouse mode has been changed from outside this callback,
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
303 ## change the buttons state accordingly
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
304 mode = get (hf, "__mouse_mode__");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
305 state = "on";
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
306
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
307 switch mode
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
308 case "zoom"
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
309 zm = get (hf, "__zoom_mode__");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
310 if (strcmp (zm.Direction, "in"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
311 htool = htools(3);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
312 else
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
313 htool = htools(4);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
314 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
315 case "pan"
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
316 htool = htools(1);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
317 case "rotate"
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
318 htool = htools(2);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
319 case "text"
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
320 htool = htools(5);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
321 case "none"
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
322 state = "off";
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
323 htool = htools;
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
324 endswitch
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
325
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
326 set (htool, "state", state);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
327 if (strcmp (state, "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
328 set (htools(htools != htool), "state", "off");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
329 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
330
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
331 else
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
332 ## Update the mouse mode according to the button state
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
333 state = get (h, "state");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
334
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
335 switch typ
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
336 case {"zoomin", "zoomout"}
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
337 prop = "__zoom_mode__";
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
338 val = get (hf, prop);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
339
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
340 if (strcmp (state, "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
341 if (strcmp (typ, "zoomin"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
342 val.Direction = "in";
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
343 else
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
344 val.Direction = "out";
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
345 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
346 set (hf, "__mouse_mode__" , "zoom");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
347 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
348 val.Enable = state;
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
349 set (hf, prop, val);
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
350
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
351 case {"pan", "rotate"}
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
352 prop = ["__", typ, "_mode__"];
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
353 val = get (hf, prop);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
354 if (strcmp (state, "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
355 set (hf, "__mouse_mode__" , typ);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
356 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
357 val.Enable = state;
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
358 set (hf, prop, val);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
359
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
360 case {"text", "select"}
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
361 if (strcmp (state, "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
362 set (hf, "__mouse_mode__" , typ);
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
363 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
364 endswitch
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
365
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
366 if (strcmp (state, "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
367 set (htools(htools != h), "state", "off");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
368 elseif (! any (strcmp (get (htools, "state"), "on")))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
369 set (hf, "__mouse_mode__" , "none");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
370 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
371 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
372
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
373 recursion = false;
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
374 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
375
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
376 endfunction
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
377
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
378 function axes_cb (h)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
379 hax = get (gcbf (), "currentaxes");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
380 if (! isempty (hax))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
381 if (strcmp (get (hax, "visible"), "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
382 set (hax, "visible", "off");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
383 else
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
384 set (hax, "visible", "on");
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
385 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
386 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
387 endfunction
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
388
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
389 function grid_cb (h)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
390 hax = get (gcbf (), "currentaxes");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
391 if (! isempty (hax))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
392 if (strcmp (get (hax, "xgrid"), "on") && strcmp (get (hax, "ygrid"), "on"))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
393 grid (hax, "off");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
394 else
26902
cb5c1ea2062c Fix regression with toolbar and status bar visibility (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26869
diff changeset
395 grid (hax, "on");
26869
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
396 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
397 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
398 endfunction
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
399
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
400 function auto_cb (h)
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
401 hax = get (gcbf (), "currentaxes");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
402 if (! isempty (hax))
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
403 axis (hax, "auto");
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
404 endif
992f55ef87f5 Use an uitoolbar and ui*tools to build the default figure toolbar (bug #55795)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26376
diff changeset
405 endfunction
27554
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
406
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
407 function clipboard_cb (h)
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
408 hf = gcbf ();
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
409 fname = tempname ();
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
410 props = {"inverthardcopy", "paperposition", "paperpositionmode"};
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
411 values = get (hf, props);
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
412 set (hf, "inverthardcopy", "off", "paperpositionmode", "auto");
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
413 unwind_protect
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
414 print ("-r0", "-dpng", "-svgconvert", fname);
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
415 __event_manager_copy_image_to_clipboard__ (fname);
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
416 unwind_protect_cleanup
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
417 set (hf, props, values);
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
418 end_unwind_protect
d0f778462a51 Restore hability to copy figure to clipboard (bug #55970)
Pantxo Diribarne <pantxo.diribarne@gmail.com>
parents: 26995
diff changeset
419 endfunction