Here's my formal proposal for what to do about annotations.

Each metarecord, right after the paragraph height data, is allowed to
contain an annotation/highlighting index (but one is not necessary--whether
it's there or not is detected via the record length).  This uses the
following format:
    UInt16 numAnnotations;
    struct {
        UInt16 paragraphNum;
        UInt16 triggerStartOffsetInPara;
        UInt16 triggerStopOffsetInPara;
        UInt16 uidOfNote; // zero if none, i.e., if only highlighting
        UInt32 reserved;
    } annotationIndex[ numAnnotations ];

The notes themselves are stored in metarecords with uids higher than those
in the document.  They will be limited to the max length of a field (4K?)
currently.  Each of these records will be of the form:
    UInt16 uid;
    UInt16 reserved1;
    UInt16 size;
    UInt8 dataType;  // currently must be DATATYPE_POPUP_TEXT
    UInt8 reserved2;
    Char record[]; // null terminated

Additionally, PluckerDataType is extended to have a new datatype, #16,
"DATATYPE_POPUP_TEXT".  Currently we don't need to add any provisions for
handling it anywhere in the code, but the number should be reserved.  The
preferred rendering of this datatype is to pop up a window with the data.
This will let us later allow us to have annotations that are a part of
Plucker docs and are accessed via hyperlinks.

Alex

--
Dr. Alexander R. Pruss
Department of Philosophy
Georgetown University
Washington, DC 20057-1133  U.S.A.
e-mail: [EMAIL PROTECTED]
online papers and home page: www.georgetown.edu/faculty/ap85
--------------------------------------------------------------------------
   "Philosophiam discimus non ut tantum sciamus, sed ut boni efficiamur."
       - Paul of Worczyn (1424)

_______________________________________________
plucker-dev mailing list
[EMAIL PROTECTED]
http://lists.rubberchicken.org/mailman/listinfo/plucker-dev

Reply via email to