comparison scripts/plot/util/private/__add_default_menu__.m @ 30999:fef2957c38ec

Deprecate uimenu properties "label" and "callback" (bug #62443) Replace "label" property with "text". Replace "callback" property with "menuselectedfcn". Both old properties are hidden, but continue to exist and work as before to support old code. * NEWS.8.md: Announce deprecation. * graphics.in.h (uimenu::BEGIN_PROPERTIES): Mark "callback" property with "hgs" for hidden, get, set routines. Mark "label" property with "hgs". * graphics.in.h (uimenu::get_callback, uimenu::set_callback): New functions which simply relay calls to "get_menuselectedfcn" and "set_menuselectedfcn". * Menu.cc (Menu::actionTriggered, Menu::actionHovered): Replace "callback" with "menuselectedfcn" in gh_callback_event calls. * __init_fltk__.cc (script_cb): Rename "execute_callback" to "execute_menuselectedfcn". * __init_fltk__.cc (update_menuselectedfcn): Rename function from "update_callback". Rename "get_callback" to "get_menuselectedfcn". * __init_fltk__.cc (add_to_uimenu): Rename "update_callback" to "update_menuselectedfcn". * __init_fltk__.cc (uimenu_update): Rename "ID_CALLBACK" to "ID_MENUSELECTEDFCN". * uimenu.m: Update documentation to use "menuselectedfcn" and "text". Update demos and BIST tests to use new property names. * __add_default_menu__.m: Update code to use "menuselectedfcn" and "text".
author Rik <rik@octave.org>
date Sat, 14 May 2022 19:06:56 -0700
parents 796f54d4ddbf
children c8ad083a5802
comparison
equal deleted inserted replaced
30998:1bf26f913b9c 30999:fef2957c38ec
47 ## Create 47 ## Create
48 if (isempty (hmenu)) 48 if (isempty (hmenu))
49 ## File menu 49 ## File menu
50 hui = uimenu (hf, "label", "&File", "tag", "__default_menu__File", ... 50 hui = uimenu (hf, "label", "&File", "tag", "__default_menu__File", ...
51 "handlevisibility", "off"); 51 "handlevisibility", "off");
52 uimenu (hui, "label", "&Open...", "callback", @open_cb, ... 52 uimenu (hui, "label", "&Open...", "menuselectedfcn", @open_cb, ...
53 "accelerator", "o"); 53 "accelerator", "o");
54 uimenu (hui, "label", "&Save", "callback", {@save_cb, "save"}, ... 54 uimenu (hui, "label", "&Save", "menuselectedfcn", {@save_cb, "save"}, ...
55 "accelerator", "s"); 55 "accelerator", "s");
56 uimenu (hui, "label", "Save &As...", "callback", {@save_cb, "saveas"}, ... 56 uimenu (hui, "label", "Save &As...", ...
57 "accelerator", "S"); 57 "menuselectedfcn", {@save_cb, "saveas"}, ...
58 uimenu (hui, "label", "&Close", "callback", @close_cb, ... 58 "accelerator", "S");
59 "accelerator", "w", "separator", "on"); 59 uimenu (hui, "label", "&Close", "menuselectedfcn", @close_cb, ...
60 "accelerator", "w", "separator", "on");
60 hmenu(1) = hui; 61 hmenu(1) = hui;
61 62
62 ## Edit menu 63 ## Edit menu
63 hui = uimenu (hf, "label", "&Edit", "handlevisibility", "off", ... 64 hui = uimenu (hf, "label", "&Edit", "handlevisibility", "off", ...
64 "tag", "__default_menu__Edit"); 65 "tag", "__default_menu__Edit");
65 uimenu (hui, "label", "&New Figure", "callback", "figure ();", ... 66 uimenu (hui, "label", "&New Figure", "menuselectedfcn", "figure ();", ...
66 "accelerator", "n"); 67 "accelerator", "n");
67 uimenu (hui, "label", "&Duplicate Figure", 68 uimenu (hui, "label", "&Duplicate Figure",
68 "callback", "copyobj (gcbf (), groot ());", ... 69 "menuselectedfcn", "copyobj (gcbf (), groot ());", ...
69 "accelerator", "d"); 70 "accelerator", "d");
70 uimenu (hui, "label", "Clea&r Figure", 71 uimenu (hui, "label", "Clea&r Figure",
71 "callback", "clf (gcbf ());"); 72 "menuselectedfcn", "clf (gcbf ());");
72 uimenu (hui, "label", "Reset Figure", 73 uimenu (hui, "label", "Reset Figure",
73 "callback", "reset (gcbf ());"); 74 "menuselectedfcn", "reset (gcbf ());");
74 uimenu (hui, "label", "Copy Figure to Clipboard", ... 75 uimenu (hui, "label", "Copy Figure to Clipboard", ...
75 "callback", @clipboard_cb, "separator", "on", ... 76 "menuselectedfcn", @clipboard_cb, "separator", "on", ...
76 "accelerator", "c"); 77 "accelerator", "c");
77 hmenu(2) = hui; 78 hmenu(2) = hui;
78 79
79 ## Tools menu 80 ## Tools menu
80 hui = uimenu (hf, "label", "&Tools", "handlevisibility", "off", ... 81 hui = uimenu (hf, "label", "&Tools", "handlevisibility", "off", ...
81 "tag", "__default_menu__Tools"); 82 "tag", "__default_menu__Tools");
82 uimenu (hui, "label", "Toggle &grid on all axes", "tag", "toggle", ... 83 uimenu (hui, "label", "Toggle &grid on all axes", "tag", "toggle", ...
83 "callback", @grid_cb); 84 "menuselectedfcn", @grid_cb);
84 uimenu (hui, "label", "Show grid on all axes", "tag", "on", ... 85 uimenu (hui, "label", "Show grid on all axes", "tag", "on", ...
85 "callback", @grid_cb); 86 "menuselectedfcn", @grid_cb);
86 uimenu (hui, "label", "Hide grid on all axes", "tag", "off", ... 87 uimenu (hui, "label", "Hide grid on all axes", "tag", "off", ...
87 "callback", @grid_cb); 88 "menuselectedfcn", @grid_cb);
88 uimenu (hui, "label", "Auto&scale all axes", "callback", @autoscale_cb); 89 uimenu (hui, "label", "Auto&scale all axes",
90 "menuselectedfcn", @autoscale_cb);
89 91
90 hui2 = uimenu (hui, "label", "GUI &Mode (on all axes)"); 92 hui2 = uimenu (hui, "label", "GUI &Mode (on all axes)");
91 uimenu (hui2, "label", "Pan x and y", "tag", "pan_on", ... 93 uimenu (hui2, "label", "Pan x and y", "tag", "pan_on", ...
92 "callback", @guimode_cb); 94 "menuselectedfcn", @guimode_cb);
93 uimenu (hui2, "label", "Pan x only", "tag", "pan_xon", ... 95 uimenu (hui2, "label", "Pan x only", "tag", "pan_xon", ...
94 "callback", @guimode_cb); 96 "menuselectedfcn", @guimode_cb);
95 uimenu (hui2, "label", "Pan y only", "tag", "pan_yon", ... 97 uimenu (hui2, "label", "Pan y only", "tag", "pan_yon", ...
96 "callback", @guimode_cb); 98 "menuselectedfcn", @guimode_cb);
97 uimenu (hui2, "label", "Disable pan and rotate", "tag", ... 99 uimenu (hui2, "label", "Disable pan and rotate", "tag", ...
98 "no_pan_rotate", "callback", @guimode_cb); 100 "no_pan_rotate", "menuselectedfcn", @guimode_cb);
99 uimenu (hui2, "label", "Rotate on", "tag", "rotate3d", ... 101 uimenu (hui2, "label", "Rotate on", "tag", "rotate3d", ...
100 "callback", @guimode_cb); 102 "menuselectedfcn", @guimode_cb);
101 uimenu (hui2, "label", "Enable mousezoom", "tag", "zoom_on", ... 103 uimenu (hui2, "label", "Enable mousezoom", "tag", "zoom_on", ...
102 "callback", @guimode_cb); 104 "menuselectedfcn", @guimode_cb);
103 uimenu (hui2, "label", "Disable mousezoom", "tag", "zoom_off", ... 105 uimenu (hui2, "label", "Disable mousezoom", "tag", "zoom_off", ...
104 "callback", @guimode_cb); 106 "menuselectedfcn", @guimode_cb);
105 hmenu(3) = hui; 107 hmenu(3) = hui;
106 108
107 ## Default toolbar 109 ## Default toolbar
108 init_mouse_tools (hf); 110 init_mouse_tools (hf);
109 htb = uitoolbar (hf, "tag", "__default_toolbar__", ... 111 htb = uitoolbar (hf, "tag", "__default_toolbar__", ...
110 "handlevisibility", "off", "visible", "off"); 112 "handlevisibility", "off", "visible", "off");
111 113
112 ht(1) = uitoggletool (htb, "tooltipstring", "Pan", ... 114 ht(1) = uitoggletool (htb, "tooltipstring", "Pan", ...
113 "tag", "__default_button_pan__", ... 115 "tag", "__default_button_pan__", ...
114 "__named_icon__", "figure-pan"); 116 "__named_icon__", "figure-pan");
115 ht(2) = uitoggletool (htb, "tooltipstring", "Rotate", ... 117 ht(2) = uitoggletool (htb, "tooltipstring", "Rotate", ...
116 "tag", "__default_button_rotate__", ... 118 "tag", "__default_button_rotate__", ...
117 "__named_icon__", "figure-rotate"); 119 "__named_icon__", "figure-rotate");
118 120
119 ht(3) = uitoggletool (htb, "tooltipstring", "Zoom In", ... 121 ht(3) = uitoggletool (htb, "tooltipstring", "Zoom In", ...
120 "tag", "__default_button_zoomin__", ... 122 "tag", "__default_button_zoomin__", ...
121 "__named_icon__", "figure-zoom-in", ... 123 "__named_icon__", "figure-zoom-in", ...
122 "separator", "on"); 124 "separator", "on");
123 ht(4) = uitoggletool (htb, "tooltipstring", "Zoom Out", ... 125 ht(4) = uitoggletool (htb, "tooltipstring", "Zoom Out", ...
124 "tag", "__default_button_zoomout__", ... 126 "tag", "__default_button_zoomout__", ...
125 "__named_icon__", "figure-zoom-out"); 127 "__named_icon__", "figure-zoom-out");
126 uipushtool (htb, "tooltipstring", "Automatic limits for current axes", ... 128 uipushtool (htb, "tooltipstring", "Automatic limits for current axes", ...
127 "clickedcallback", @auto_cb, ... 129 "clickedcallback", @auto_cb, ...
128 "__named_icon__", "figure-zoom-original"); 130 "__named_icon__", "figure-zoom-original");
129 131
130 ht(5) = uitoggletool (htb, "tooltipstring", "Insert Text", ... 132 ht(5) = uitoggletool (htb, "tooltipstring", "Insert Text", ...
131 "tag", "__default_button_text__", ... 133 "tag", "__default_button_text__", ...
132 "separator", "on", "__named_icon__", "figure-text"); 134 "separator", "on", ...
135 "__named_icon__", "figure-text");
133 136
134 uipushtool (htb, "tooltipstring", "Toggle current axes visibility", ... 137 uipushtool (htb, "tooltipstring", "Toggle current axes visibility", ...
135 "clickedcallback", @axes_cb, "separator", "on", ... 138 "clickedcallback", @axes_cb, "separator", "on", ...
136 "__named_icon__", "figure-axes"); 139 "__named_icon__", "figure-axes");
137 uipushtool (htb, "tooltipstring", "Toggle current axes grid visibility", ... 140 uipushtool (htb, "tooltipstring", "Toggle current axes grid visibility", ...
138 "clickedcallback", @grid_cb, "__named_icon__", "figure-grid"); 141 "clickedcallback", @grid_cb, ...
142 "__named_icon__", "figure-grid");
139 143
140 set (ht(1), "oncallback", {@mouse_tools_cb, ht, "pan"}, ... 144 set (ht(1), "oncallback", {@mouse_tools_cb, ht, "pan"}, ...
141 "offcallback", {@mouse_tools_cb, ht, "pan"}); 145 "offcallback", {@mouse_tools_cb, ht, "pan"});
142 set (ht(2), "oncallback", {@mouse_tools_cb, ht, "rotate"}, ... 146 set (ht(2), "oncallback", {@mouse_tools_cb, ht, "rotate"}, ...
143 "offcallback", {@mouse_tools_cb, ht, "rotate"}); 147 "offcallback", {@mouse_tools_cb, ht, "rotate"});
144 set (ht(3), "oncallback", {@mouse_tools_cb, ht, "zoomin"}, ... 148 set (ht(3), "oncallback", {@mouse_tools_cb, ht, "zoomin"}, ...
145 "offcallback", {@mouse_tools_cb, ht, "zoomin"}); 149 "offcallback", {@mouse_tools_cb, ht, "zoomin"});
146 set (ht(4), "oncallback", {@mouse_tools_cb, ht, "zoomout"}, ... 150 set (ht(4), "oncallback", {@mouse_tools_cb, ht, "zoomout"}, ...
147 "offcallback", {@mouse_tools_cb, ht, "zoomout"}); 151 "offcallback", {@mouse_tools_cb, ht, "zoomout"});
148 set (ht(5), "oncallback", {@mouse_tools_cb, ht, "text"}, ... 152 set (ht(5), "oncallback", {@mouse_tools_cb, ht, "text"}, ...
149 "offcallback", {@mouse_tools_cb, ht, "text"}); 153 "offcallback", {@mouse_tools_cb, ht, "text"});
150 endif 154 endif
151 155
152 if (! exist ("ht", "var")) 156 if (! exist ("ht", "var"))
153 ht = get (htb, "children")(end:-1:1); 157 ht = get (htb, "children")(end:-1:1);
154 istoggletool = strcmp (get (ht, "type"), "uitoggletool"); 158 istoggletool = strcmp (get (ht, "type"), "uitoggletool");