Notes on postit use:

+++ sc/inc/postit.hxx	2006-07-03 17:40:57.000000000 +0100
+++ sc/inc/document.hxx	2006-07-03 17:27:26.000000000 +0100
+++ sc/inc/dociter.hxx	2006-07-04 09:43:00.000000000 +0100
+++ sc/inc/column.hxx	2006-07-04 09:21:13.000000000 +0100
+++ sc/inc/cell.hxx	2006-07-04 18:22:00.000000000 +0100

+++ sc/source/ui/view/printfun.cxx
    + pDoc->GetCell( ScAddress ) + GetNotePtr on cell ...
    + ScHorizontalCellIterator ... (also have ScAddress)

+++ sc/source/ui/view/output.cxx
    + All calls: - use CellInfo
*** AA
AA	+ document.cxx :: ScTableInfo 'FillInfo' method
AA	+ update fillinfo copy constructors etc.

+++ sc/source/ui/unoobj/docuno.cxx
    + ScAnnotationsObj uses ScCellIterator ...
AA	+ add GetNotePtr to that

+ other ScCellIterator fixups:
	+ do we need an ScNoteIterator ? [ easyish ? ]
    +++ sc/source/ui/unoobj/cellsuno.cxx
    +++ sc/source/ui/navipi/content.cxx
    +++ sc/source/ui/docshell/docsh.cxx
    +++ sc/source/ui/docshell/dbdocfun.cxx
    +++ sc/source/filter/xml/xmlexprt.cxx
    +++ sc/source/filter/excel/xetable.cxx
    +++ sc/source/core/data/dociter.cxx

+++ sc/source/core/tool/interpr2.cxx
    + has ScAddress

+++ sc/source/core/data/table6.cxx
    + col/row etc.
AA: + need ScTable::GetNote ().

+++ sc/source/core/data/column.cxx
+++ sc/source/core/data/column3.cxx
+++ sc/source/core/data/column2.cxx
    + hard core, but has doc/column [etc.]

+++ sc/source/core/data/cell.cxx
    + should remove all note logic ...
    + copy constructors ...

+ Currently touched only for 'Delete' ptr. [hmm]
    +++ sc/source/ui/undo/undocell.cxx
	+ needs native storage for notes [ parallel to cell ]
	+ [ ScPostIt ** arrays ? ]
    +++ sc/source/ui/docshell/docfunc.cxx
	+ have ScAddress etc.
AA:	    + Was this used for PostIt setting ?
		+ if so, it won't work now :-)
		+ Audit PutCell usage ...
    +++ sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
	+ ScMyCellInfo - (in .hxx) - unclear ...
    +++ sc/source/core/tool/chgtrack.cxx
	+ ScChangeActionContent : ScChangeAction
	    ScBigRange: row/col/tab all there ...
    +++ sc/source/core/data/validat.cxx
	+ IsDataValid - no note necessary


+ old cell methods:
	// these may live somewhere else more logically
	void			SetNote( const ScPostIt& rNote, ScDocument* pDoc );
	BOOL			GetNote( ScPostIt& rNote, ScDocument* pDoc ) const;
	const ScPostIt*	GetNotePtr( ScDocument *pDoc) const;
	void	    	DeleteNote(ScDocument* pDoc);

+ implement new methods.
    + do we need an 'ScNoteCell ?' - hash on address ?


+ ScDocument::GetNotePtr (...
    + NULL cell -> NULL
    + check / set 'special ...'
+ FIXME:
    + we shouldn't copy 'special' [ we can't use it ... ]
    + SetNote should cope with set to itself elegantly ;-)
      + should create & insert an ScNote cell if absent ...
	+ SetNoteInternal ...
    + Cell's Delete:
	+ *should* have ScDocument *
	    ... pDoc->DeleteNote(pCell) [etc.]
    + Hmm - compromise ...
    + URGH !!! - SetNoteInternal
	+ need to pass the ScNoteTracker - 

+ For this semantic:
    + Column::DeleteNote:
	+ we need to remove the cell itself ...

+ Need DeleteNote ...

	BOOL bEmpty = rNote.IsEmpty();

	SCSIZE nIndex;
	if (Search(nRow, nIndex))
	{
		ScBaseCell* pCell = pItems[nIndex].pCell;
		if (bEmpty && pCell->GetCellType() == CELLTYPE_NOTE && !pCell->GetBroadcaster())
			DeleteAtIndex(nIndex);
		else
			pCell->SetNote(rNote, pDocument);
	}
	else
	{
		if (!bEmpty)
		{
				fprintf (stderr, "inline me!\n");
				ScNoteCell *foo = new ScNoteCell(rNote);
				fprintf (stderr, "don't inline me!\n");
				Insert(nRow, foo);
				fprintf (stderr, "don't inline me!\n");
		}
	}

ScNoteCell - can disappear ...

++ Move 'LoadNote' to Document ... (?)

void ScBaseCell::LoadNote( SvStream& rStream, ScDocument* pDoc )
{
		fprintf (stderr, "LoadNote ran... - FIXME unimplemented ... special = %d\n", bSpecial);

/*	pNote = new ScPostIt(pDoc);
	rStream >> *pNote;
*/
}

TODO:
    + fix Ekie & Dr's comments ...
    + Bin all 'ScNoteCell' constructors -
      that consume ScPostIts ...
	+ Rename ScNostCell - ScPlaceholderCell
	    + ScDepTargetCell ... / whatever.
    + FIXME: do we need all those 'Doc' pointers on
             construction ? [urk?]

    + Add the pDocument to 'Delete' ...
      remove from the hash ... or Column->Delete (?)