Subject: Re: DOC: File Import/Export
From: Martin Sevior (msevior@mccubbin.ph.unimelb.edu.au)
Date: Fri Jan 19 2001 - 16:15:25 CST
On Fri, 19 Jan 2001, Frodo Looijaard wrote:
>
> Current CVS nor the 20010111 CVS can read it :-(. A debug build for
> current CVS renders:
>
> DEBUG: Setting field type desc for type 1, desc=Date and Time
> DEBUG: Setting field type desc for type 2, desc=Numbers
> DEBUG: Setting field type desc for type 3, desc=Piece Table
> DEBUG: Setting field desc for field time, desc=Current time
> DEBUG: Setting field desc for field page_number, desc=Page number
> DEBUG: Setting field desc for field page_count, desc=Number of pages
> DEBUG: Setting field desc for field list_label, desc=List Label
> DEBUG: Setting field desc for field test, desc=Kevins Test
> DEBUG: Setting field desc for field martin_test, desc=Martins Test
> DEBUG: AP_UnixFrame::initializeDEBUG: EV_UnixMenu::synthesizeMenu
> DEBUG: AP_UnixFrame::toggleBar 0, 1
> DEBUG: AP_UnixFrame::toggleBar 1, 1
> DEBUG: AP_UnixFrame::toggleBar 2, 1
> DEBUG: Unknown tag [comment]
> DEBUG: Unknown end tag [comment]
> [Repeat last two messages many times]
> DEBUG: Unknown tag [comment]
> DEBUG: Unknown end tag [comment]
> DEBUG: setDontChangeInsPoint: No strux in document!!
Weird! My most recent build is 4 days old and I don't this.
<snip>
>
> 6. Using a listener
>
> A listener is attached to (parts of) a document and is signaled
> whenever (that part of) the document changes. In case of the
> exporter, we keep it very simple. Before we begin, we derive
> a new object type from PL_Listener. We will have to override
> the following methods:
>
> UT_Bool populate(PL_StruxFmtHandle sfh, const PX_ChangeRecord * pcr);
> UT_Bool populateStrux(PL_StruxDocHandle sdh, const PX_ChangeRecord * pcr, PL_StruxFmtHandle * psfh);
> UT_Bool change(PL_StruxFmtHandle sfh, const PX_ChangeRecord * pcr);
> UT_Bool insertStrux(PL_StruxFmtHandle sfh, const PX_ChangeRecord * pcr, PL_StruxDocHandle sdh, PL_ListenerId lid, void (* pfnBindHandles) (PL_StruxDocHandle sdhNew, PL_ListenerId lid, PL_StruxFmtHandle sfhNew));
> UT_Bool signal(UT_uint32 iSignal);
>
> Method populate is called whenever a span, object or format mark is
> encountered. A span is some text with attributes; [WHAT ARE OBJECTS
> AND FORMAT MARKS EXACTLY?].
This is the model-view relationship of abi. The Piecetable is the model.
Views are either the *layout methods in src/text/fmt/xp/*, printing or the
exporters.
The exporters work just like the layout methods in abi. As the piecetable
is passed the various internal structures are recognized and their
meanings are interpreted by the the particular view attached to the model.
Once a listener is attached to a document the methods you list are invoked
upon encourntering the various PieceTable structures.
Specifically, OBJECTS are either images or fields.
A FORMAT MARK is a change in format. So if you decide to bold a particular
part of a word like evolUTIOn, there would be a span leading up to "evol"
a <format mark specifying the font is bold>, span "UTIO" <format mark
specifying normal intensity> "n"
<snip>
Cheers
Martin
This archive was generated by hypermail 2b25 : Fri Jan 19 2001 - 16:15:47 CST