Sean wrote: Denis Kudriashov wrote
Do you think that presenting any letter with real object (not just character) is sufficient for modern computers? I think not. Of course such model significantly simplified all logic around text layout stuff. But I think it is too expensive.
In a case study on designing a document editor in 'Design Patterns (1995)' , there is a reference to a thesis from 1993 showing that using Flyweight or sharing commonality makes it fast enough. I assume that was c++, but 20 years of hardware improvements should be enough. Paul R Calder. Building User Interfaces with Lightweight Objects. PhD Thesis, Stanford University, 1993
I don't know how efficient it would be, but how much text do we really layout at once? If it makes the code simpler and more beautiful, then it would be my starting point. Doing otherwise is premature optimization.
One book at a time. In multiple columns, with tables. But we don't need to show more than one screenful at a time. I noticed the current strategy seems to be to make a very simple model work, and add abstractions late. That means a lot of refactorings will be needed. Cocoa fundamental abstractions are TextStorage, LayoutManager, TextContainer and TextView. LayoutManager uses TypeSetter(s) to layout glyphs in lines according to the dimensions of one or more text container objects in one or more text views, directs the GlyphGenerator to translate characters in the textstorage into glyphs... Stephan