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)