bool CursorCtrl::handleMousePress( MouseEvent& e ) { if( e.isLeft() && ( e.isNoKey() || e.isAlt() ) || e.isRight() && e.isShift() ) { Allocation a; allocation( a ); ViewAreaMdl* area = d_view->getArea(); if( d_do[ DimX ] && d_do[ DimY ] && area->getDimCount() == 2 ) { PPM x = area->toPpm( e.getX(), a.getLeft(), DimX ); PPM y = area->toPpm( e.getY(), a.getTop(), DimY ); d_view->getModel()->setPos( d_view->getDim( DimX ), x, d_view->getDim( DimY ), y, d_mouseVeto ); }else if( d_do[ DimX ] && area->inUse( DimX ) ) { PPM x = area->toPpm( e.getX(), a.getLeft(), DimX ); d_view->getModel()->setPos( d_view->getDim( DimX ), x, d_mouseVeto ); }else if( d_do[ DimY ] && area->inUse( DimY ) ) { PPM y = area->toPpm( e.getY(), a.getTop(), DimY ); d_view->getModel()->setPos( d_view->getDim( DimY ), y, d_mouseVeto ); } return d_swallow; // Der Click soll nicht immer gefressen werden. }else return false; }
bool PointSelectCtrl::handleMousePress( Viewport& v, const Allocation& a, const MouseEvent& e ) { if( e.isLeft() && e.isShift() && !e.isAlt() && !e.isCtrl() ) { return installCommand( new _SelectPointCmd( this, d_view ) ); // && d_swallow; }else if( e.isLeft() && e.isNoKey() ) { ViewAreaMdl* mdl = d_view->getViewArea(); d_view->selectPeak( mdl->toPpm( e.getX(), a.getLeft(), DimX ), mdl->toPpm( e.getY(), a.getTop(), DimY ) ); // Nicht immer true zurück, damit Cursor funktioniert. notifySelection( d_view, SpinPointView::PairIdLabelSysOrResi ); return d_swallow; } // else return false; }