diff --git a/xvaga/xvaga.cpp b/xvaga/xvaga.cpp index d240dd06a..aa12ba010 100755 --- a/xvaga/xvaga.cpp +++ b/xvaga/xvaga.cpp @@ -649,6 +649,7 @@ protected: virtual void OnMouseDown(wxMouseEvent& e); virtual void OnMouseMove(wxMouseEvent& e); virtual void OnMouseUp(wxMouseEvent& e); + virtual void OnMouseWheel(wxMouseEvent& e); virtual void OnScroll(wxScrollEvent& e); virtual void OnScrollWin(wxScrollWinEvent& e); virtual void OnSetFocus(wxFocusEvent& e); @@ -721,6 +722,7 @@ BEGIN_EVENT_TABLE(TwxWindow, TwxWindowBase) EVT_LEFT_UP(TwxWindow::OnMouseUp) EVT_MENU_RANGE(1000, 32766, TwxWindow::OnMenu) EVT_MOTION(TwxWindow::OnMouseMove) + EVT_MOUSEWHEEL(TwxWindow::OnMouseWheel) EVT_PAINT(TwxWindow::OnPaint) EVT_RIGHT_DOWN(TwxWindow::OnMouseDown) EVT_RIGHT_UP(TwxWindow::OnMouseUp) @@ -884,9 +886,8 @@ void TwxWindow::OnMouseDouble(wxMouseEvent& event) e.v.mouse.button = 0; e.v.mouse.control = event.ControlDown(); e.v.mouse.shift = event.ShiftDown(); - int x, y; event.GetPosition(&x, &y); - e.v.mouse.where.h = x; - e.v.mouse.where.v = y; + e.v.mouse.where.h = event.GetX(); + e.v.mouse.where.v = event.GetY(); DoXvtEvent(e); } @@ -897,10 +898,8 @@ void TwxWindow::OnMouseDown(wxMouseEvent& event) e.v.mouse.button = event.RightDown() ? 1 : 0; e.v.mouse.control = event.ControlDown(); e.v.mouse.shift = event.ShiftDown(); - - int x, y; event.GetPosition(&x, &y); - e.v.mouse.where.h = x; - e.v.mouse.where.v = y; + e.v.mouse.where.h = event.GetX(); + e.v.mouse.where.v = event.GetY(); DoXvtEvent(e); } @@ -908,11 +907,10 @@ void TwxWindow::OnMouseMove(wxMouseEvent& event) { EVENT e; memset(&e, 0, sizeof(EVENT)); e.type = E_MOUSE_MOVE; - int x, y; event.GetPosition(&x, &y); e.v.mouse.control = event.ControlDown(); e.v.mouse.shift = event.m_shiftDown; - e.v.mouse.where.h = x; - e.v.mouse.where.v = y; + e.v.mouse.where.h = event.GetX(); + e.v.mouse.where.v = event.GetY(); DoXvtEvent(e); } @@ -923,12 +921,24 @@ void TwxWindow::OnMouseUp(wxMouseEvent& event) e.v.mouse.button = event.RightUp() ? 1 : 0; e.v.mouse.control = event.ControlDown(); e.v.mouse.shift = event.ShiftDown(); - int x, y; event.GetPosition(&x, &y); - e.v.mouse.where.h = x; - e.v.mouse.where.v = y; + e.v.mouse.where.h = event.GetX(); + e.v.mouse.where.v = event.GetY(); DoXvtEvent(e); } +void TwxWindow::OnMouseWheel(wxMouseEvent& event) +{ + const int nRot = event.GetWheelRotation(); + if (nRot != 0) + { + EVENT e; memset(&e, 0, sizeof(EVENT)); + e.type = E_VSCROLL; + e.v.scroll.pos = event.GetY(); + e.v.scroll.what = nRot > 0 ? SC_LINE_UP : SC_LINE_DOWN; + DoXvtEvent(e); + } +} + void TwxWindow::OnPaint(wxPaintEvent& event) { EVENT e; memset(&e, 0, sizeof(EVENT)); diff --git a/xvaga/xvtextra.cpp b/xvaga/xvtextra.cpp index edcf7877d..0aca1225e 100755 --- a/xvaga/xvtextra.cpp +++ b/xvaga/xvtextra.cpp @@ -643,9 +643,8 @@ BOOLEAN xvt_print_is_valid(PRINT_RCD* precp) ok = OsWin32_CheckPrinterInfo(rcd->m_data, rcd->m_size); #else wxPrintData data; - rcd->GetData(data); - data.Ok(); + ok = data.Ok(); #endif } return ok;