bool WordPerfect_Listener::populateStrux(pf_Frag_Strux* /*sdh*/, const PX_ChangeRecord * pcr, fl_ContainerLayout* * psfh) { const PX_ChangeRecord_Strux * pcrx = static_cast<const PX_ChangeRecord_Strux *>(pcr); *psfh = 0; // we don't need it. switch (pcrx->getStruxType()) { case PTX_Section: { UT_DEBUGMSG(("WordPerfect Listener::_populateStrux PTX_Section\n")); return true; } case PTX_SectionHdrFtr: { UT_DEBUGMSG(("WordPerfect Listener::_populateStrux PTX_SectionHdrFtr\n")); return true; } case PTX_Block: { UT_DEBUGMSG(("WordPerfect Listener::_populateStrux PTX_Block\n")); _closeBlock(); _openBlock(pcr->getIndexAP()); return true; } default: UT_ASSERT_NOT_REACHED(); return false; } }
bool s_XSL_FO_Listener::populateStrux(PL_StruxDocHandle sdh, const PX_ChangeRecord * pcr, PL_StruxFmtHandle * psfh) { UT_ASSERT(pcr->getType() == PX_ChangeRecord::PXT_InsertStrux); const PX_ChangeRecord_Strux * pcrx = static_cast<const PX_ChangeRecord_Strux *> (pcr); *psfh = 0; // we don't need it. PT_AttrPropIndex api = pcr->getIndexAP(); switch (pcrx->getStruxType()) { case PTX_Section: { _closeSection(); const PP_AttrProp* pAP = NULL; if (m_pDocument->getAttrProp(api, &pAP) && pAP) { const gchar* pszSectionType = NULL; pAP->getAttribute("type", pszSectionType); if ( !pszSectionType || (0 == strcmp(pszSectionType, "doc")) ) { _openSection(pcr->getIndexAP()); m_bInSection = true; } else { m_bInSection = false; } } else { m_bInSection = false; } return true; } case PTX_SectionHdrFtr: { _closeBlock(); _popListToDepth(0); // <fo:static-content flow-name="xsl-region-before"> // <fo:block> // </fo:block> // </fo:static-content> // TODO??? return true; } case PTX_Block: { _closeBlock(); _openBlock(api); return true; } case PTX_SectionTable: { mTableHelper.OpenTable(sdh,api); _closeBlock(); _openTable(api); return true; } case PTX_SectionCell: { mTableHelper.OpenCell(api); _closeBlock(); _popListToDepth(0); _openCell(api); return true; } case PTX_EndTable: { _closeBlock(); _popListToDepth(0); _closeTable(); mTableHelper.CloseTable(); return true; } case PTX_EndCell: { _closeBlock(); _closeCell(); mTableHelper.CloseCell(); return true; } case PTX_SectionFrame: { _popListToDepth(0); _handleFrame(api); return true; } case PTX_EndFrame: { UT_ASSERT(UT_TODO); return true; } case PTX_SectionFootnote: { if(_tagTop() != TT_FOOTNOTE) //can happen with certain .doc files { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); _tagOpen(TT_FOOTNOTE, "footnote", false); _tagOpenClose("inline", false, false); } _tagOpen(TT_FOOTNOTEBODY, "footnote-body", false); m_bInNote = true; return true; } case PTX_EndFootnote: { if(m_bInNote) { _closeBlock(); if(_tagTop() == TT_FOOTNOTEBODY) { _tagClose(TT_FOOTNOTEBODY, "footnote-body", false); _tagClose(TT_FOOTNOTE, "footnote", false); } else { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); } m_bInNote = false; } else { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); } return true; } case PTX_SectionEndnote: { m_bInNote = true; return true; } case PTX_EndEndnote: { if(m_bInNote) { m_bInNote = false; } else { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); } return true; } case PTX_SectionTOC: case PTX_EndTOC: { UT_ASSERT(UT_TODO); return true; } case PTX_EndMarginnote: case PTX_SectionMarginnote: default: UT_ASSERT(UT_TODO); return true; } }
bool ODe_AbiDocListener::populateStrux(PL_StruxDocHandle /*sdh*/, const PX_ChangeRecord* pcr, PL_StruxFmtHandle* psfh) { UT_return_val_if_fail(pcr->getType() == PX_ChangeRecord::PXT_InsertStrux, false); bool returnVal = true; const PX_ChangeRecord_Strux * pcrx = static_cast<const PX_ChangeRecord_Strux *> (pcr); *psfh = 0; // we don't need it. PT_AttrPropIndex api = pcr->getIndexAP(); //const gchar* image_name = // _getObjectKey(api, static_cast<const gchar*>(PT_STRUX_IMAGE_DATAID)); switch (pcrx->getStruxType()) { case PTX_Section: case PTX_SectionHdrFtr: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeSection(); _openSection(api); } break; case PTX_SectionTable: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _openTable(api); } break; case PTX_SectionCell: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _openCell(api); } break; case PTX_SectionFootnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _openFootnote(api); } break; case PTX_SectionEndnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _openEndnote(api); } break; case PTX_SectionAnnotation: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _openAnnotation(api); } break; case PTX_SectionTOC: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _openTOC(api); } break; case PTX_SectionMarginnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); //_openTag("margin","",true,pcr->getIndexAP(),pcr->getXID()); } break; case PTX_SectionFrame: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _openFrame(api); } break; case PTX_EndTable: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeTable(); } break; case PTX_EndCell: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeCell(); } break; case PTX_EndFootnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeFootnote(); } break; case PTX_EndEndnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeEndnote(); } break; case PTX_EndAnnotation: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeAnnotation(); } break; case PTX_EndTOC: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeTOC(); } break; case PTX_EndMarginnote: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); } break; case PTX_EndFrame: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeFrame(); } break; case PTX_Block: { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _openBlock(api); } break; default: UT_ASSERT_HARMLESS(UT_TODO); returnVal = true; } return returnVal; }