Example #1
0
void SpinLineView2::handle( Root::Message & msg )
{
	BEGIN_HANDLER();
	MESSAGE( SpinSpace::Update, a, msg )
	{
		switch( a->getType() )
		{
		case SpinSpace::Update::Create:
		case SpinSpace::Update::Delete:
			if( !a->getElem().isGhost() )
			{
				ViewAreaMdl* area = getViewArea();
				Twips y = area->toTwip( a->getElem().d_point[DimY]->getShift( 
					d_model->getSpec() ), DimY );
				Allocation alloc = area->getAllocation(); 
				alloc.setY( y - s_lh );
				alloc.setHeight( s_lh + g_w );
				getViewport()->damage( alloc );
				if( d_verti )
				{
					y = area->toTwip( a->getElem().d_point[DimX]->getShift( 
						d_model->getSpec() ), DimX );
					alloc = area->getAllocation(); 
					alloc.setX( y );
					alloc.setWidth( s_lw * 4 );
					getViewport()->damage( alloc );
				}
			}
			break;
		case SpinSpace::Update::Move:
			if( !a->getElem().isGhost() )
				damageMe(); // TODO
			break;
		case SpinSpace::Update::All:
			damageMe();
			break;
        default:
            break;
		}
		msg.consume();
	}
	END_HANDLER();
}