void CQIllustratorAlignMode:: handleMouseRelease(const MouseEvent &e) { if (dragging_) { // not moving so select control point if (! moving_) { selectControlPoint(e); } // dragging finished so commit else { } } // not dragging so do a select else { CPoint2D p1 = CQUtil::fromQPoint(press_wpos_); CPoint2D p2 = CQUtil::fromQPoint(release_wpos_); // point click - select at point if (! moving_) { (void) illustrator_->selectAt(p2, e.event->isControlKey(), e.event->isShiftKey()); } // drag then create rectangle using specified bbox else { (void) illustrator_->selectIn(CBBox2D(p1, p2), e.event->isControlKey(), e.event->isShiftKey()); } } CQIllustratorMode::handleMouseRelease(e); }
void Warp::keyDown( KeyEvent &event ) { // disable keyboard input when not in edit mode if( sIsEditMode ) { if( event.getCode() == KeyEvent::KEY_ESCAPE ) { // gracefully exit edit mode sIsEditMode = false; event.setHandled( true ); return; } } else return; // do not listen to key input if not selected if( mSelected >= mPoints.size() ) return; switch( event.getCode() ) { case KeyEvent::KEY_TAB: // select the next or previous (+SHIFT) control point if( event.isShiftDown() ) { if( mSelected == 0 ) mSelected = (int)mPoints.size() - 1; else --mSelected; selectControlPoint( mSelected ); } else { ++mSelected; if( mSelected >= mPoints.size() ) mSelected = 0; selectControlPoint( mSelected ); } break; case KeyEvent::KEY_UP: { if( mSelected >= mPoints.size() ) return; float step = event.isShiftDown() ? 10.0f : 0.5f; mPoints[mSelected].y -= step / mWindowSize.y; mIsDirty = true; } break; case KeyEvent::KEY_DOWN: { if( mSelected >= mPoints.size() ) return; float step = event.isShiftDown() ? 10.0f : 0.5f; mPoints[mSelected].y += step / mWindowSize.y; mIsDirty = true; } break; case KeyEvent::KEY_LEFT: { if( mSelected >= mPoints.size() ) return; float step = event.isShiftDown() ? 10.0f : 0.5f; mPoints[mSelected].x -= step / mWindowSize.x; mIsDirty = true; } break; case KeyEvent::KEY_RIGHT: { if( mSelected >= mPoints.size() ) return; float step = event.isShiftDown() ? 10.0f : 0.5f; mPoints[mSelected].x += step / mWindowSize.x; mIsDirty = true; } break; case KeyEvent::KEY_MINUS: case KeyEvent::KEY_KP_MINUS: if( mSelected >= mPoints.size() ) return; mBrightness = math<float>::max( 0.0f, mBrightness - 0.01f ); break; case KeyEvent::KEY_PLUS: case KeyEvent::KEY_KP_PLUS: if( mSelected >= mPoints.size() ) return; mBrightness = math<float>::min( 1.0f, mBrightness + 0.01f ); break; case KeyEvent::KEY_r: if( mSelected >= mPoints.size() ) return; reset(); mIsDirty = true; break; default: return; } event.setHandled( true ); }
void TransFuncPrimitive::select(const tgt::vec2& pos) { selected_ = true; selectControlPoint(pos); }