当前位置: 首页>>代码示例>>C++>>正文


C++ MouseEvent::getPos方法代码示例

本文整理汇总了C++中ci::app::MouseEvent::getPos方法的典型用法代码示例。如果您正苦于以下问题:C++ MouseEvent::getPos方法的具体用法?C++ MouseEvent::getPos怎么用?C++ MouseEvent::getPos使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ci::app::MouseEvent的用法示例。


在下文中一共展示了MouseEvent::getPos方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: mouseDown

void TouchDebug::mouseDown(const ci::app::MouseEvent& e) {

	mReplicating = false;

	if(e.isAltDown()) {
		if(!mDropTouched){
			mEngine.mouseTouchBegin(e, mTouchId + 2);
			mDropTouched = true;
		} else {
			mEngine.mouseTouchEnded(e, mTouchId + 2);
			mDropTouched = false;
		}
	} else if(e.isShiftDown()) {
		mReplicating = true;
		replicate(e, ds::ui::TouchInfo::Added);

	} else if(e.isControlDown()){
		if(mTwoTouching){
			mTwoTouching = false;
		} else {
			mTwoTouching = true;
			mTwoTouchDown = e.getPos();

		}
	} else if(mTwoTouching){
		mEngine.mouseTouchBegin(e, mTouchId);

		int deltaX = e.getPos().x - mTwoTouchDown.x;
		int deltaY = e.getPos().y - mTwoTouchDown.y;
		ci::app::MouseEvent mouseTwo = ci::app::MouseEvent(e.getWindow(), 0, mTwoTouchDown.x - deltaX, mTwoTouchDown.y - deltaY, e.getNativeModifiers(), e.getWheelIncrement(), e.getNativeModifiers());
		mEngine.mouseTouchBegin(mouseTwo, mTouchId + 1);
	} else {
		mEngine.mouseTouchBegin(e, mTouchId);
	}
}
开发者ID:,项目名称:,代码行数:35,代码来源:

示例2: mouseUp

void MultiSlider::mouseUp( ci::app::MouseEvent &event )
{
	if( mHit ) {
#ifdef CINDER_COCOA_TOUCH
		setState( State::NORMAL );
#else
		if( isHit( event.getPos() ) ) {
			setState( State::OVER );
			std::string newKey = getKey( event.getPos() );
			if( newKey != mHoverKey ) {
				mHoverKey = newKey;
				changeState();
				setNeedsDisplay();
			}
		}
		else {
			setState( State::NORMAL );
		}
#endif
		if( (int)mTrigger & (int)Trigger::END ) {
			trigger();
		}
	}
	mHitKey = "";
	mHit = false;
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:26,代码来源:MultiSlider.cpp

示例3: mouseDrag

bool Monitor::mouseDrag( ci::app::MouseEvent event )
{
	switch( mMouseState )
	{
	case MS_NOTHING :
		break;
	case MS_MOVE    :
		{
			Vec2i diff = event.getPos() - mPosMouseDrag;
			mArea += diff;
			mPosMouseDrag = event.getPos();
		}
		break;
	case MS_RESIZE  :
		{
			Vec2i diff = event.getPos() - mPosMouseDrag;
			int width  = math<int>::max( mArea.getWidth()  + diff.x, mMinWidth  );
			int height = math<int>::max( mArea.getHeight() + diff.y, mMinHeight );
			mArea.x2 = mArea.x1 + width;
			mArea.y2 = mArea.y1 + height;
			mPosMouseDrag = event.getPos();
		}
		break;
	}

	return mMouseState != MS_NOTHING;
}
开发者ID:bgbotond,项目名称:PulseSensor,代码行数:27,代码来源:Monitor.cpp

示例4: mouseDownInternal

bool XRect::mouseDownInternal( ci::app::MouseEvent event )
{
	bool hit = hitTest( event.getPos() );
	if (hit && mScript)
		mScript->call("mouseDown", event.getPos().x, event.getPos().y);
    return hit;
}
开发者ID:stimulant,项目名称:Cinder-XUI,代码行数:7,代码来源:XRect.cpp

示例5: onMouseDown

void PretzelRoot::onMouseDown(ci::app::MouseEvent &event)
{
    PretzelGui *pg;
    
    // only click the top-most gui
    for( auto it = mGuiList.begin(); it!=mGuiList.end(); ++it){
        pg = *it;
        
        if( pg->getGlobalBounds().contains( event.getPos() ) ){
            pg->mouseDown( event.getPos() );
            break;
        }
    }
    
    // If this gui isn't on top, do z sorting to bring it up
    if( pg != mGuiList[0] ){
        for( auto it = mGuiList.begin(); it!=mGuiList.end(); ){
            if( *it == pg ){
                it = mGuiList.erase(it);
            }else{
                ++it;
            }
        }
        
        mGuiList.push_front(pg);
    }
}
开发者ID:RallyTronics,项目名称:PretzelGui,代码行数:27,代码来源:PretzelRoot.cpp

示例6: setState

void DialerT<T>::mouseMove( ci::app::MouseEvent &event )
{
    if( isHit( event.getPos() ) )
    {
        setState( State::OVER );
        mHitPoint = event.getPos();
        calculatePrecisionZone();
        setNeedsDisplay();
    }
    else
    {
        setState( State::NORMAL );
    }
}
开发者ID:eriser,项目名称:Cinder-UI,代码行数:14,代码来源:Dialer.cpp

示例7: setState

void RangeT<T>::mouseDown( ci::app::MouseEvent &event )
{
    if( isHit( event.getPos() ) ) {
        mHit = true;
        setState( State::DOWN );
        mHitValueHigh = mValueHigh;
        mHitValueLow = mValueLow;
        input( event.getPos() );
        if( (int)mTrigger & (int)Trigger::BEGIN ) {
            trigger();
        }
    } else {
        setState( State::NORMAL );
    }
}
开发者ID:SethGibson,项目名称:Cinder-UI,代码行数:15,代码来源:Range.cpp

示例8: mouseDown

void TextInput::mouseDown( ci::app::MouseEvent &event )
{
	if( isHit( event.getPos() ) ) {
		mHit = true;
		mClicked = true;
		setState( State::DOWN );
		calculateCursorPosition( event.getPos() );
		if( (int)mTrigger & (int)Trigger::BEGIN ) {
			trigger();
		}
	}
	else {
		setState( State::NORMAL );
	}
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:15,代码来源:TextInput.cpp

示例9: onMouseMoved

void PretzelRoot::onMouseMoved(ci::app::MouseEvent &event)
{
//    for( auto it=mGuiList.begin(); it!=mGuiList.end(); ++it){
//        (*it)->mouseMoved( event.getPos() );
//    }
    
    for( auto it = mGuiList.begin(); it!=mGuiList.end(); ++it){
        PretzelGui *pg = *it;
        
        if( pg->getGlobalBounds().contains( event.getPos() ) ){
            (*it)->mouseMoved( event.getPos() );
            break;
        }
    }
}
开发者ID:RallyTronics,项目名称:PretzelGui,代码行数:15,代码来源:PretzelRoot.cpp

示例10: mouseUp

void Button::mouseUp( ci::app::MouseEvent &event )
{
	if( mHit ) {
#if defined( CINDER_COCOA_TOUCH )
		setState( State::DOWN );
#else
		if( isHit( event.getPos() ) ) {
			setState( State::OVER );
		}
		else {
			setState( State::NORMAL );
		}
#endif
		toggleValue();
		if( (int)mTrigger & (int)Trigger::END ) {
			trigger();
		}
	}
	else {
		setState( State::NORMAL );
	}
	mHit = false;

	View::mouseUp( event );
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:25,代码来源:Button.cpp

示例11: mouseWheel

void ColorPicker::mouseWheel( ci::app::MouseEvent &event )
{
	if( isHit( event.getPos() ) && !mHit ) {
		mColor.a -= event.getWheelIncrement() * mFormat.mSensitivity;
		mColor.a = std::max( std::min( mColor.a, mFormat.mAlphaLimits.y ), mFormat.mAlphaLimits.x );
		updateColorRef();
		updateLabel();
		setNeedsDisplay();
		if( (int)mTrigger & (int)Trigger::CHANGE ) {
			trigger();
		}
	}
	else if( mHit ) {
		vec3 color = mColor.get( mFormat.mColorModel );
		color.z -= event.getWheelIncrement() * mFormat.mSensitivity;
		color.z = std::max( std::min( color.z, 1.0f ), 0.0f );
		mColor.set( mFormat.mColorModel, vec4( color.x, color.y, color.z, mColor.a ) );
		updateColorRef();
		updateLabel();
		setNeedsDisplay();
		if( (int)mTrigger & (int)Trigger::CHANGE ) {
			trigger();
		}
	}
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:25,代码来源:ColorPicker.cpp

示例12: mouseUp

void ColorPicker::mouseUp( ci::app::MouseEvent &event )
{
	if( mHit ) {
#if defined( CINDER_COCOA_TOUCH )
		setState( State::NORMAL );
#else
		if( isHit( event.getPos() ) ) {
			setState( State::OVER );
		}
		else {
			setState( State::NORMAL );
		}
#endif
		mHit = false;
		updateLabel();
		if( (int)mTrigger & (int)Trigger::END ) {
			trigger();
		}
	}
	else {
		setState( State::NORMAL );
	}

	View::mouseUp( event );
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:25,代码来源:ColorPicker.cpp

示例13: mouseDown

void GraphNodeHandler::mouseDown(ci::app::MouseEvent &event)
{
    if (glm::length(*position - ci::vec2(event.getPos())) < size)
    {
        if (event.isAltDown())
        {
            if (selection == Selection::addEdge)
            {
                selection = Selection::none;
            }
            else
            {
                selection = Selection::addEdge;
                selectedInFrame = ci::app::getElapsedFrames();
            }

        }
        else
        {
            selection = Selection::move;
        }
        event.setHandled(true);
    }
    else
    {
        if (selection == Selection::move)
            selection = Selection::none;
    }
}
开发者ID:mitro42,项目名称:GraphStudio,代码行数:29,代码来源:GraphNodeHandler.cpp

示例14: mouseDown

    bool Camera::mouseDown(ci::app::MouseEvent m_event) {
        if (draw_interface_)
            return false;

        cam_->mouseDown(m_event.getPos());
        return false;
    }
开发者ID:ptierney,项目名称:cinder_sketches,代码行数:7,代码来源:Camera.cpp

示例15: mouseMove

void MultiSlider::mouseMove( ci::app::MouseEvent &event )
{
	if( isHit( event.getPos() ) ) {
		setState( State::OVER );
		std::string newKey = getKey( event.getPos() );
		if( newKey != mHoverKey ) {
			mHoverKey = newKey;
			changeState();
			setNeedsDisplay();
		}
	}
	else {
		setState( State::NORMAL );
		mHoverKey = "";
	}
}
开发者ID:rezaali,项目名称:Cinder-UI,代码行数:16,代码来源:MultiSlider.cpp


注:本文中的ci::app::MouseEvent::getPos方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。