Esempio n. 1
0
BackdropNodeGadget::BackdropNodeGadget( Gaffer::NodePtr node )
	:	NodeGadget( node ), m_hovered( false ), m_horizontalDragEdge( 0 ), m_verticalDragEdge( 0 )
{
	if( !runTimeCast<Backdrop>( node ) )
	{
		throw Exception( "BackdropNodeGadget requires a Backdrop" );
	}
	
	if( !node->getChild<Box2fPlug>( g_boundPlugName ) )
	{
		node->addChild(
			new Box2fPlug(
				g_boundPlugName,
				Plug::In,
				Box2f( V2f( -10 ), V2f( 10 ) ),
				Plug::Default | Plug::Dynamic
			)
		);
	}
	
	node->plugDirtiedSignal().connect( boost::bind( &BackdropNodeGadget::plugDirtied, this, ::_1 ) );
	
	mouseMoveSignal().connect( boost::bind( &BackdropNodeGadget::mouseMove, this, ::_1, ::_2 ) );
	buttonPressSignal().connect( boost::bind( &BackdropNodeGadget::buttonPress, this, ::_1, ::_2 ) );
	dragBeginSignal().connect( boost::bind( &BackdropNodeGadget::dragBegin, this, ::_1, ::_2 ) );
	dragEnterSignal().connect( boost::bind( &BackdropNodeGadget::dragEnter, this, ::_1, ::_2 ) );
	dragMoveSignal().connect( boost::bind( &BackdropNodeGadget::dragMove, this, ::_1, ::_2 ) );
	dragEndSignal().connect( boost::bind( &BackdropNodeGadget::dragEnd, this, ::_1, ::_2 ) );
	leaveSignal().connect( boost::bind( &BackdropNodeGadget::leave, this, ::_1, ::_2 ) );
}