void SpecRuler2D::allocateBody( Glyph* body, Allocation& interior ) { // Dies funktioniert minimal, d.h. wenn Request nicht vorhanden. Allotment& x = interior.getAllotment( DimensionX ); x.setSpan( x.getSpan() - d_width ); x.setOrigin( x.getOrigin() ); Allotment& y = interior.getAllotment( DimensionY ); y.setSpan( y.getSpan() - d_height ); y.setOrigin( y.getOrigin() ); return; }
void Border::allocateBody( Glyph* body, Twips thickness, Allocation& interior ) { // Dies funktioniert minimal, d.h. wenn Request nicht vorhanden. Allotment& x = interior.getAllotment( DimensionX ); x.setSpan( x.getSpan() - 2 * thickness ); x.setOrigin( x.getOrigin() + thickness ); Allotment& y = interior.getAllotment( DimensionY ); y.setSpan( y.getSpan() - 2 * thickness ); y.setOrigin( y.getOrigin() + thickness ); return; // Stammt aus BevelFrame: wozu das ganze? Scheint zu funktionieren. Requisition reqest; body->request( reqest ); Allotment& ax = interior.getAllotment( DimensionX ); Twips x_span = ax.getSpan() - 2 * thickness; Twips x_offset = thickness; Twips x_align = ax.getAlignment(); const Requirement& rx = reqest.getRequirement( DimensionX ); if( rx.isDefined() ) { Twips x_usable = rx.getNatural() + rx.getStretch(); if( x_span > x_usable ) { x_offset += 0 * ( x_span - x_usable ); // d_alignX x_span = x_usable; } } ax.setSpan( x_span ); ax.move( x_offset * ( AlignmentMax - 2 * x_align ) ); Allotment& ay = interior.getAllotment( DimensionY ); Twips y_span = ay.getSpan() - 2 * thickness; Twips y_offset = thickness; Twips y_align = ay.getAlignment(); const Requirement& ry = reqest.getRequirement( DimensionY ); if( ry.isDefined() ) { Twips y_usable = ry.getNatural() + ry.getStretch(); if( y_span > y_usable ) { y_offset += 0 * ( y_span - y_usable ); // d_alignY y_span = y_usable; } } ay.setSpan( y_span ); ay.move( y_offset * ( AlignmentMax - 2 * y_align ) ); }
void execute() { Allocation r; getAllocation( r ); ViewAreaMdl* mdl = d_view->getViewArea(); Allocation a = mdl->getAllocation(); PpmCube c; c.assign( 1, PpmRange() ); Dimension dim = d_view->getDir(); c[ DimX ].first = mdl->toPpm( r.getAllotment( dim ).getBegin(), a.getAllotment( dim ).getBegin(), dim ); c[ DimX ].second = mdl->toPpm( r.getAllotment( dim ).getEnd(), a.getAllotment( dim ).getBegin(), dim ); d_view->selectPeak( c ); Command::execute(); }
void StripRuler2D::allocateBody( Glyph* body, Allocation& interior ) { Allotment& y = interior.getAllotment( DimensionY ); y.setSpan( y.getSpan() - ( d_hUpper + d_hLower ) ); y.setOrigin( y.getOrigin() + d_hUpper ); }