Fixed mouse wheel not working if 3D frame under wxWidgets 2.9

This commit is contained in:
charras 2010-01-11 14:44:49 +00:00
parent 6eda97fbdd
commit 6601495c58
2 changed files with 51 additions and 53 deletions

View File

@ -1,13 +1,6 @@
/////////////////////////////////////////////////////////////////////////////
// Name: 3d_canvas.cpp
/////////////////////////////////////////////////////////////////////////////
#ifdef __GNUG__
#pragma implementation
#pragma interface
#endif
#include "fctsys.h"
#include "trigo.h"
@ -35,8 +28,13 @@
BEGIN_EVENT_TABLE( Pcb3D_GLCanvas, wxGLCanvas )
EVT_PAINT( Pcb3D_GLCanvas::OnPaint )
// key event:
EVT_CHAR( Pcb3D_GLCanvas::OnChar )
EVT_MOUSE_EVENTS( Pcb3D_GLCanvas::OnMouseEvent )
// mouse events
EVT_RIGHT_DOWN( Pcb3D_GLCanvas::OnRightClick )
EVT_MOUSEWHEEL( Pcb3D_GLCanvas::OnMouseWheel )
EVT_MOTION( Pcb3D_GLCanvas::OnMouseMove )
// other events
EVT_ERASE_BACKGROUND( Pcb3D_GLCanvas::OnEraseBackground )
EVT_MENU_RANGE( ID_POPUP_3D_VIEW_START, ID_POPUP_3D_VIEW_END,
Pcb3D_GLCanvas::OnPopUpMenu )
@ -205,20 +203,10 @@ void Pcb3D_GLCanvas::SetView3D( int keycode )
Refresh( FALSE );
}
void Pcb3D_GLCanvas::OnMouseEvent( wxMouseEvent& event )
void Pcb3D_GLCanvas::OnMouseWheel( wxMouseEvent& event )
{
wxSize size( GetClientSize() );
double spin_quat[4];
if( event.RightDown() )
{
OnRightClick( event ); return;
}
if( event.m_wheelRotation )
{
if( event.ShiftDown() )
{
if( event.GetWheelRotation() < 0 )
@ -258,7 +246,16 @@ void Pcb3D_GLCanvas::OnMouseEvent( wxMouseEvent& event )
DisplayStatus();
Refresh( FALSE );
}
}
g_Parm_3D_Visu.m_Beginx = event.GetX();
g_Parm_3D_Visu.m_Beginy = event.GetY();
}
void Pcb3D_GLCanvas::OnMouseMove( wxMouseEvent& event )
{
wxSize size( GetClientSize() );
double spin_quat[4];
if( event.Dragging() )
{

View File

@ -149,7 +149,8 @@ public:
void OnPaint( wxPaintEvent& event );
void OnEraseBackground( wxEraseEvent& event );
void OnChar( wxKeyEvent& event );
void OnMouseEvent( wxMouseEvent& event );
void OnMouseWheel( wxMouseEvent& event );
void OnMouseMove( wxMouseEvent& event );
void OnRightClick( wxMouseEvent& event );
void OnPopUpMenu( wxCommandEvent& event );
void TakeScreenshot( wxCommandEvent& event );