commit: More footnote work.

From: Martin Sevior (msevior@physics.unimelb.edu.au)
Date: Sat Dec 28 2002 - 15:18:38 EST

  • Next message: Hubert Figuiere: "Mac port halted"

    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.



    This archive was generated by hypermail 2.1.4 : Sat Dec 28 2002 - 15:21:32 EST