Re: Help stepping through objects in a document

From: Andrew Dunbar (hippietrail@yahoo.com)
Date: Thu Nov 07 2002 - 06:08:17 EST

  • Next message: wlach@interlog.com: "OpenOffice.org and AbiWord: Both happily displaying WordPerfect"

     --- Dr William Bland <wjb@abstractnonsense.com>
    wrote:
    > 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 ;-)

    Hey don't just tell the world how to do it, give them
    APIs to do it. One time is plenty for inventing
    wheels:

    http://bugzilla.abisource.com/show_bug.cgi?id=4117
    "RFE: APIs to iterate through document"

    Andrew Dunbar.

    > Best wishes,
    > Bill.

    =====
    http://linguaphile.sourceforge.net/cgi-bin/translator.pl http://www.abisource.com

    __________________________________________________
    Do You Yahoo!?
    Everything you'll ever need on one web page
    from News and Sport to Email and Music Charts
    http://uk.my.yahoo.com



    This archive was generated by hypermail 2.1.4 : Thu Nov 07 2002 - 06:17:40 EST