/***************************************************** ** ** SheetWidget --- HandleMouseWheelEvent ** ******************************************************/ void SheetWidget::HandleMouseWheelEvent( wxMouseEvent &event ) { const bool modpressed = event.m_controlDown; const bool shiftpressed = event.m_shiftDown; //printf( "SheetWidget::HandleMouseWheelEvent rotation is %d modpressed %d shiftpressed %d\n", event.GetWheelRotation(), modpressed, shiftpressed ); if ( modpressed || shiftpressed ) { event.ResumePropagation( wxEVENT_PROPAGATE_MAX ); event.Skip(); } else { int x, y, x0, y0, xs, ys; const int offset = 60; GetViewStart( &x, &y ); // scroll position GetSize( &xs, &ys ); // size of visible widget only GetVirtualSize( &x0, &y0 ); // complete size of widget //printf( "SheetWidget::HandleMouseWheelEvent x %d y %d xs %d ys %d x0 %d y0 %d\n", x, y, xs, ys, x0, y0 ); // Wheel scolls in vertical direction, but horizontal if nothing left to scroll if ( event.GetWheelRotation() < 0 ) { if ( y + ys >= y0 ) x = Min( x0, x + offset ); else { y += offset; mousePosition.y += offset; } } else { if ( y > 0 ) { y = Max ( 0, y - offset ); if ( mousePosition.y > offset ) mousePosition.y -= offset; else mousePosition.y = 0; } else x -= offset; } Scroll( x, y ); // marked cols (if any) must move, too mouseHasMoved( false ); } }
int ImageSelectionToolCustom::processMouseEvent( ViewportMouseEvent& event ) { //SelectionManager* sel_manager = context_->getSelectionManager(); Q_EMIT mouseHasMoved(event.x, event.y); int flags = 0; moving_ = false; if( event.leftDown() ) { selecting_ = true; sel_start_x_ = event.x; sel_start_y_ = event.y; } if( selecting_ ) { /**std::cout<<"tool selected x1 " <<sel_start_x_<<std::endl; std::cout<<"tool selected y1 " <<sel_start_y_<<std::endl; std::cout<<"tool selected x2 " <<event.x<<std::endl; std::cout<<"selected y2 " <<event.y<<std::endl;**/ theX1 = sel_start_x_; theX2 = event.x; theY1 = sel_start_y_; theY2 = event.y; port = event.viewport; highlight( event.viewport, sel_start_x_, sel_start_y_, event.x, event.y ); if( event.leftUp() ) { SelectionManager::SelectType type = SelectionManager::Replace; M_Picked selection; /*if( event.shift() ) { type = SelectionManager::Add; } else if( event.control() ) { type = SelectionManager::Remove; }*/ //sel_manager->select( event.viewport, sel_start_x_, sel_start_y_, event.x, event.y, type ); removeHighlight(); Q_EMIT select( sel_start_x_, sel_start_y_, event.x, event.y ); selecting_ = false; } flags |= Render; } else { highlight( event.viewport, theX1, theY1, theX2, theY2 ); } return flags; }