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);
}
Esempio n. 2
0
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 );
}
Esempio n. 3
0
void TransFuncPrimitive::select(const tgt::vec2& pos) {
    selected_ = true;
    selectControlPoint(pos);
}