void scContUnit::Unlink( ) { scContUnit* lastPara; scContUnit* nextPara; // mark all the lines of the paragraph as being invalid Deformat( ); lastPara = GetPrev(); nextPara = GetNext(); if ( lastPara ) lastPara->SetNext( nextPara ); else { // this is the first paragraph in the stream and we must let // the columns know that the head of the stream has changed // GetStream()->ResetStream( (scStream*)nextPara ); } if ( nextPara ) nextPara->SetPrev( lastPara ); SetPrev( NULL ); SetNext( NULL ); }
scContUnit::scContUnit( TypeSpec& spec, scContUnit* prevPara, long count ) : fFirstline( 0 ), fParaCount( 0 ), fSpecRun( spec ), defspec_( spec ) #ifdef _RUBI_SUPPORT , fRubiArray( 0 ) #endif { #if SCDEBUG > 1 fReformatEvent = 0; #endif try { SetCount( count ); Mark( scRETABULATE ); if ( prevPara ) prevPara->SetNext( this ); SetPrev( prevPara ); } catch( ... ) { delete this; throw; } }
CObject::~CObject () { if (Prev ()) Prev ()->SetNext (Next ()); if (Next ()) Next ()->SetPrev (Prev ()); SetPrev (NULL); SetNext (NULL); }
void scTBObj::Insert( scTBObj* next ) { scTBObj* prev; scAssert( this && next ); scAssert( Prev() == 0 && Next() == 0 ); if ( ( prev = next->Prev() ) != 0 ) { SetPrev( prev ); prev->SetNext( this ); } next->SetPrev( this ); SetNext( next ); }
void scTBObj::Unlink( ) { scTBObj* prev; scTBObj* next; prev = Prev(); next = Next(); if ( prev ) prev->SetNext( next ); if ( next ) next->SetPrev( prev ); SetPrev( 0 ); SetNext( 0 ); }
/* instantiate a new line and initialize to the passed in parameters */ scTextline::scTextline( scContUnit* p, scColumn* col, scTextline* prev ) : fPara( p ), fStartOffset( 0 ), fEndOffset( 0 ), fColumn( col ), fOrigin( 0, 0 ), fVJOffset( 0 ), fLength( 0 ), fCursorY1( 0 ), fCursorY2( 0 ), fMaxLeadSpec( 0 ), fMaxLead( 0 ), fLineCount( 0 ), fLspAdjustment( 0 ) { SetPrev( prev ); if ( prev ) prev->SetNext( this ); else if ( col ) // this has no antecedent so lets set it to the column col->SetFirstline( this ); }
CObject::CObject () { SetPrev (NULL); SetNext (NULL); }