Miklos • From Hungary • More blurb: http://vmiklos.hu/ • Google Summer of Code 2010/2011 • Rewrite of the Writer RTF import/export • Writer developer since Feb 2012 • Contractor at Collabora since Sep 2013
model • SdrObject (svx) ↔ TextFrame (sw) • Both have an SwFrmFmt • So far unused RES_CNTNT ("content") property in the SdrObject's SwFrmFmt • Pairing them if both the draw and the fly format point to the same content • Properties of the TextFrame are generated (position, size, etc.)
API • Hides the detail that the TextFrame and the SdrObject are in fact two objects. • When the draw shape has TextBox attached, the editeng text is unused. • A new optional boolean property to see who provides the text. • Everything else is fully transparent. • In contrast with the previous sw vs svx API differences
• “Put TextFrame into an SdrObj as a TextBox” design → not much to be done • Positioning of as-character anchored shapes having TextBoxes is still a challenge • See SwFlyCntPortion::SetBase() • Be careful about layout modifying doc model
• #1 use case: improve Word (and in particular DOCX) compatibility • But now we got much more, e.g. multi-column text could be added easily that's not available in Word, either • DOCX import now avoids setting service name from original to css.text.TextFrame in case shape has shape text • ODF had implicit support already • Except: tables, in extension namespace for now
• Writer Textboxes allow complex shapes with complex content • Available in LibreOffice 4.4 • Improves DOCX experience of out the box • Optionally available in every other document • One more long-standing problem solved • Thanks for listening! :-) • Slides: http://vmiklos.hu/odp