On Wed, Oct 30, 2002 at 11:38:08AM +1100, Martin Sevior wrote:
> I wrote a little method in PD_Document to display the properties
> associated with struxes around a strux that I used for debugging
> purposes.
> 
> PD_Document::miniDump(PL_StruxDocHandle sdh, UT_sint32 nstruxes)


Thanks Martin, reading your miniDump code was very instructive.  In the
end I wrote my own code for stepping through the document (also
borrowing from the text exporter as Dom suggested):


// Get the current frame, view, etc that the user is in.
XAP_Frame *pFrame = XAP_App::getApp()->getLastFocussedFrame();
FV_View* pView = static_cast<FV_View*>(pFrame->getCurrentView());
PD_Document* mydoc = pView->getDocument();
pt_PieceTable* mypt = mydoc->getPieceTable();
pf_Fragments* myfrags = &(mypt->getFragments());

// Iterate through all the fragments in the document.
for( pf_Frag* pf = myfrags->getFirst(); (pf); pf=pf->getNext() )
{
    switch( pf->getType() )
    {
        case pf_Frag::PFT_Text:
            printf( "Found a text fragment\n" );
            break;
        case pf_Frag::PFT_Strux:
            printf( "Found a strux fragment\n" );
            break;
        case pf_Frag::PFT_Object:
            printf( "Found an object fragment\n" );
            break;
        case pf_Frag::PFT_FmtMark:
            printf( "Found an format-mark fragment\n" );
            break;
        case pf_Frag::PFT_EndOfDoc:
            printf( "Found an end-of-document fragment\n" );
            break;
        default:
            printf( "Found an unknown fragment\n" );
            break;
    }
}



I will probably write a little tutorial on doing this kind of thing
(once I'm sure I understand it!) so if anyone hates the way I've done
this, please let me know before I start telling the world to do it this
way ;-)

Best wishes,
                Bill.

Reply via email to