Skip to content
Snippets Groups Projects
Commit 9099a6c9 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

zoom using mousewheel
parent b6141e0d
Branches
Tags gmsh_1_17
No related merge requests found
// $Id: Opengl_Window.cpp,v 1.70 2006-08-27 23:10:36 geuzaine Exp $ // $Id: Opengl_Window.cpp,v 1.71 2006-10-10 01:33:26 geuzaine Exp $
// //
// Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle // Copyright (C) 1997-2006 C. Geuzaine, J.-F. Remacle
// //
...@@ -178,8 +178,6 @@ void Opengl_Window::draw() ...@@ -178,8 +178,6 @@ void Opengl_Window::draw()
int Opengl_Window::handle(int event) int Opengl_Window::handle(int event)
{ {
double dx, dy;
switch (event) { switch (event) {
case FL_FOCUS: // accept the focus when I'm asked if I want it case FL_FOCUS: // accept the focus when I'm asked if I want it
...@@ -282,10 +280,31 @@ int Opengl_Window::handle(int event) ...@@ -282,10 +280,31 @@ int Opengl_Window::handle(int event)
prev.set(); prev.set();
return 1; return 1;
case FL_MOUSEWHEEL:
curr.set();
{
double dy = Fl::event_dy();
double fact = (5. * CTX.zoom_factor * fabs(dy) + h()) / (double)h();
CTX.s[0] *= ((dy > 0) ? fact : 1./fact);
CTX.s[1] = CTX.s[0];
CTX.s[2] = CTX.s[0];
click.recenter();
CTX.draw_rotation_center = 1;
if(CTX.fast_redraw) {
CTX.mesh.draw = 0;
CTX.post.draw = 0;
}
redraw();
}
prev.set();
WID->update_manip_window();
return 1;
case FL_DRAG: case FL_DRAG:
curr.set(); curr.set();
dx = curr.win[0] - prev.win[0]; {
dy = curr.win[1] - prev.win[1]; double dx = curr.win[0] - prev.win[0];
double dy = curr.win[1] - prev.win[1];
if(LassoMode) { if(LassoMode) {
redraw(); redraw();
} }
...@@ -326,6 +345,7 @@ int Opengl_Window::handle(int event) ...@@ -326,6 +345,7 @@ int Opengl_Window::handle(int event)
} }
redraw(); redraw();
} }
}
prev.set(); prev.set();
WID->update_manip_window(); WID->update_manip_window();
return 1; return 1;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment