HI Everyone,
            I've done a LOT of work to get footnotes to this point. The 
trouble is that footnote are fundamenetally different types of struxes 
from other types ina document.

The result of the work so far is that that you can now insert a footnote 
in the middle of paragraph.

Within the piecetable a footnote section is like this.

<strux_block><=><frag><=><frag><=>...<frag_footnoteField><=>
<strux_footnote><=><strux_block><=><frag><=>...<=><strux_footnote><=>
<frag>...<=><strux_block>

ie the footnote and footnote text is buried within the paragraph 
containing the footnote. After lots of through and investigation of MS 
Word I'm sure this is the right way to handle these. (RTF does exactly 
this so import/export of RTF and MS Word footnotes is straightforward.)

However this means that all the offsets of the runs, charwidths, and 
PartOfBlocks used for spelling have to be adjusted for the footnotae 
section downstream of the embedded section. In addition the  processes of 
getting a byte buffer also has to be corrected for this.

Within the piecetable the process of finding the containing block strux of 
frags past the embedded text also needs to skip past the EndFootnote 
strux.

Upon further reflection having this code and framework in place will be 
essential for other types of containers we will need but may not be part 
of the 2.0 release. Things like tables and images with text wrapping 
around them. These should really be contained within paragraphs like these 
footnotes.

Anyway, the current code is by no means perfect. I'll have to fix the 
cursor motion again and thre are corner cases that are not yet handled. I 
know about these and will fix them. On the other hand I think we're truely 
on the right track with footnotes now and that they will eventually work 
perfectly.

Cheers

Martin

Also fix the crash on "insert Hyperlink" 4173 in CVS HEAD.

CVS: 
----------------------------------------------------------------------
CVS: Enter Log.  Lines beginning with `CVS:' are removed automatically
CVS:
CVS: Committing in .
CVS:
CVS: Modified Files:
CVS:    text/fmt/xp/fl_BlockLayout.cpp text/fmt/xp/fl_BlockLayout.h
CVS:    text/fmt/xp/fl_ContainerLayout.cpp
CVS:    text/fmt/xp/fl_ContainerLayout.h text/fmt/xp/fl_Squiggles.cpp
CVS:    text/fmt/xp/fl_Squiggles.h text/fmt/xp/fv_View.cpp
CVS:    text/fmt/xp/fv_View_protected.cpp
CVS:    text/ptbl/xp/pt_PT_ChangeSpan.cpp
CVS:    text/ptbl/xp/pt_PT_DeleteSpan.cpp
CVS:    text/ptbl/xp/pt_PT_InsertSpan.cpp
CVS:    text/ptbl/xp/pt_PieceTable.cpp text/ptbl/xp/pt_PieceTable.h
CVS:    wp/ap/unix/ap_UnixDialog_InsertHyperlink.cpp
CVS: 
----------------------------------------------------------------------
Lots of footnote work. Footnotes are now embedded in paragraphs. Fix bug 
4173.




Reply via email to