Mercurial > octave-nkf
comparison libgui/graphics/Figure.cc @ 19901:6ba3d0f7c6e8
improve mouse zooming for Qt plotting (bug #44302)
* Figure.h (enum MouseMode): Split ZoomMode into ZoomInMode and
ZoomOutMode. Change all uses.
* Canvas.cc (Canvas::canvasMouseReleaseEvent,
Canvas::canvasWheelEvent): Make meaning of zoom factor consistent with
zoom function. Make direction of wheel event consistent with other
programs.
* __init_fltk__.cc (plot_window::handle): Make meaning of zoom factor
consistent with zoom function.
* MouseModeActionGroup.cc (MouseModeActionGroup::MouseModeActionGroup):
Provide buttons for zooming in and out.
* graphics.cc (figure::properties::set_toolkit): Handle zoom direction.
(do_zoom): Make factor > 1 zoom in.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Thu, 26 Feb 2015 19:24:59 -0500 |
parents | c9dc27cad3c0 |
children | 781adfc2958c 815db217f6f4 |
comparison
equal
deleted
inserted
replaced
19900:726df008104d | 19901:6ba3d0f7c6e8 |
---|---|
177 return "none"; | 177 return "none"; |
178 | 178 |
179 case RotateMode: | 179 case RotateMode: |
180 return "rotate"; | 180 return "rotate"; |
181 | 181 |
182 case ZoomMode: | 182 case ZoomInMode: |
183 return "zoom"; | 183 return "zoom in"; |
184 | |
185 case ZoomOutMode: | |
186 return "zoom out"; | |
184 | 187 |
185 case PanMode: | 188 case PanMode: |
186 return "pan"; | 189 return "pan"; |
187 | 190 |
188 case TextMode: | 191 case TextMode: |
202 { | 205 { |
203 if (mode == "none") | 206 if (mode == "none") |
204 return NoMode; | 207 return NoMode; |
205 else if (mode == "rotate") | 208 else if (mode == "rotate") |
206 return RotateMode; | 209 return RotateMode; |
207 else if (mode == "zoom") | 210 else if (mode == "zoom in") |
208 return ZoomMode; | 211 return ZoomInMode; |
212 else if (mode == "zoom out") | |
213 return ZoomOutMode; | |
209 else if (mode == "pan") | 214 else if (mode == "pan") |
210 return PanMode; | 215 return PanMode; |
211 else if (mode == "text") | 216 else if (mode == "text") |
212 return TextMode; | 217 return TextMode; |
213 else if (mode == "select") | 218 else if (mode == "select") |
241 gh_manager::auto_lock lock; | 246 gh_manager::auto_lock lock; |
242 | 247 |
243 const figure::properties& fp = properties<figure> (); | 248 const figure::properties& fp = properties<figure> (); |
244 | 249 |
245 std::string mode = fp.get___mouse_mode__ (); | 250 std::string mode = fp.get___mouse_mode__ (); |
251 | |
252 if (mode == "zoom") | |
253 { | |
254 octave_scalar_map zm = fp.get___zoom_mode__ ().scalar_map_value (); | |
255 | |
256 std::string direction = zm.getfield ("Direction").string_value (); | |
257 | |
258 mode += " " + direction; | |
259 } | |
246 | 260 |
247 return mouse_mode_from_string (mode); | 261 return mouse_mode_from_string (mode); |
248 } | 262 } |
249 | 263 |
250 void Figure::createFigureToolBarAndMenuBar (void) | 264 void Figure::createFigureToolBarAndMenuBar (void) |