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 ) ); }