bool s_MIF_Listener::populateStrux(pf_Frag_Strux* /*sdh*/, const PX_ChangeRecord * pcr, fl_ContainerLayout* * 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. switch (pcrx->getStruxType()) { case PTX_Section: { _closeBlock(); return true; } case PTX_Block: { _closeBlock(); m_bInBlock = true; return true; } default: UT_ASSERT(0); return false; } }
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; } }
void ODe_AbiDocListener::finished() { _closeSpan(); _closeField(); _closeBookmark(m_bookmarkName); _closeHyperlink(); _closeBlock(); _closeCell(); _closeTable(); _closeSection(); }
void KLineSrv::onTickCome(TickData tick) { if (_isBlockExist()) { _updateBlock(tick); if (_checkBlockClose(tick)) { _closeBlock(tick); _initBlock(tick);// 两根K线的开闭共享一个tick } } else { _initBlock(tick); } }
void s_XSL_FO_Listener::_closeSection(void) { if (!m_bInSection) return; _closeBlock(); _popListToDepth(0); if(m_bInNote) { UT_ASSERT_HARMLESS(UT_SHOULD_NOT_HAPPEN); if(_tagTop() == TT_FOOTNOTEBODY) { _tagClose(TT_FOOTNOTEBODY, "footnote-body", false); _tagClose(TT_FOOTNOTE, "footnote", false); } } _closeTable(); _tagClose(TT_SECTION, "flow"); _tagClose(TT_PAGE_SEQUENCE, "page-sequence"); m_bInSection = 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; } }
s_MIF_Listener::~s_MIF_Listener() { _closeBlock(); }
bool s_RTF_ListenerGetProps::populateStrux(PL_StruxDocHandle /*sdh*/, const PX_ChangeRecord * pcr, PL_StruxFmtHandle * psfh) { UT_return_val_if_fail(pcr->getType() == PX_ChangeRecord::PXT_InsertStrux, false); 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: { _closeSpan(); _closeBlock(); _closeSection(); m_bInSection = true; m_apiThisSection = pcr->getIndexAP(); return true; } case PTX_SectionHdrFtr: { _closeSpan(); _closeBlock(); _closeSection(); m_bInSection = true; m_apiThisSection = pcr->getIndexAP(); return true; } case PTX_SectionTable: { _closeSpan(); _searchTableAPI(pcr->getIndexAP()); return true; } case PTX_SectionFootnote: { _closeSpan(); m_apiSavedBlock = m_apiThisBlock; return true; } case PTX_EndFootnote: { _closeSpan(); _closeBlock(); m_apiThisBlock = m_apiSavedBlock; return true; } case PTX_SectionAnnotation: { _closeSpan(); m_apiSavedBlock = m_apiThisBlock; return true; } case PTX_EndAnnotation: { _closeSpan(); _closeBlock(); m_apiThisBlock = m_apiSavedBlock; return true; } case PTX_SectionEndnote: { _closeSpan(); m_apiSavedBlock = m_apiThisBlock; return true; } case PTX_SectionTOC: { _closeSpan(); return true; } case PTX_EndTOC: { _closeSpan(); return true; } case PTX_SectionFrame: { _closeSpan(); return true; } case PTX_EndFrame: { _closeSpan(); return true; } case PTX_EndEndnote: { _closeSpan(); _closeBlock(); m_apiThisBlock = m_apiSavedBlock; return true; } case PTX_SectionCell: { _closeSpan(); _searchCellAPI(pcr->getIndexAP()); return true; } case PTX_EndTable: { _closeSpan(); return true; } case PTX_EndCell: { _closeSpan(); return true; } case PTX_Block: { _closeSpan(); _closeBlock(); m_bInBlock = true; m_bHasBlock = true; m_apiThisBlock = pcr->getIndexAP(); // Find colours of the Paragraph borders and shading const PP_AttrProp * pBlockAP = NULL; m_pDocument->getAttrProp(m_apiThisBlock,&pBlockAP); const gchar * szColor = PP_evalProperty("bot-color",pBlockAP,NULL,NULL,m_pDocument,true); UT_sint32 ndxColor = 0; if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } szColor = PP_evalProperty("left-color",pBlockAP,NULL,NULL,m_pDocument,true); if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } szColor = PP_evalProperty("right-color",pBlockAP,NULL,NULL,m_pDocument,true); if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } szColor = PP_evalProperty("top-color",pBlockAP,NULL,NULL,m_pDocument,true); if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } szColor = PP_evalProperty("shading-foreground-color",pBlockAP,NULL,NULL,m_pDocument,true); if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } szColor = PP_evalProperty("shading-background-color",pBlockAP,NULL,NULL,m_pDocument,true); if (szColor) { ndxColor = m_pie->_findColor(static_cast<const char*>(szColor)); if (ndxColor == -1) m_pie->_addColor(static_cast<const char*>(szColor)); } return true; } default: UT_ASSERT_NOT_REACHED(); return false; } }
s_RTF_ListenerGetProps::~s_RTF_ListenerGetProps() { _closeSpan(); _closeBlock(); _closeSection(); }
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; }
bool Text_Listener::populateStrux(PL_StruxDocHandle /*sdh*/, const PX_ChangeRecord * pcr, PL_StruxFmtHandle * psfh) { UT_return_val_if_fail(pcr->getType() == PX_ChangeRecord::PXT_InsertStrux, false); const PX_ChangeRecord_Strux * pcrx = static_cast<const PX_ChangeRecord_Strux *>(pcr); *psfh = 0; // we don't need it. switch (pcrx->getStruxType()) { case PTX_SectionEndnote: case PTX_SectionHdrFtr: case PTX_Section: { _closeBlock(); PT_AttrPropIndex api = pcr->getIndexAP(); const PP_AttrProp * pAP = NULL; bool bHaveProp = m_pDocument->getAttrProp (api, &pAP); if (bHaveProp && pAP) { const gchar *szValue = NULL; if(pAP->getProperty("dom-dir", szValue)) { if(!g_ascii_strcasecmp("rtl",szValue)) { m_eSectionDir = DO_RTL; } else { m_eSectionDir = DO_LTR; } } else { m_eSectionDir = DO_UNSET; } } return true; } case PTX_Block: { _closeBlock(); m_bInBlock = true; const gchar * szValue = NULL; PT_AttrPropIndex api = pcr->getIndexAP(); const PP_AttrProp * pAP = NULL; bool bHaveProp = m_pDocument->getAttrProp (api, &pAP); m_bBreakExtra = false; if (bHaveProp && pAP) { szValue = PP_evalProperty ("margin-top", 0, pAP, 0, m_pDocument, true); if(szValue) { double inches = UT_convertToInches(szValue); if (!m_bFirstWrite && (inches > 0.01)) m_pie->write(static_cast<const char *>(m_mbLineBreak),m_iLineBreakLen); } szValue = PP_evalProperty ("margin-bottom", 0, pAP, 0, m_pDocument, true); if(szValue) { double inches = UT_convertToInches(szValue); if (inches > 0.01) m_bBreakExtra = true; } } // in 16-bit encodings we sometimes have to issue LRM or // RLM to indicate the dominant direction of the block // (the actual insertion will be done in the subsequent // call to _outputData(), since most often the marker is // unnecessary if(m_bUnicode) { if (bHaveProp && pAP) { szValue = NULL; if(pAP->getProperty("dom-dir", szValue)) { if(!g_ascii_strcasecmp("rtl",szValue)) { m_eDirMarkerPending = DO_RTL; } else { m_eDirMarkerPending = DO_LTR; } } else if(m_eSectionDir != DO_UNSET) { m_eDirMarkerPending = m_eSectionDir; } else { m_eDirMarkerPending = m_eDocDir; } } } return true; } // Be nice about these until we figure out what to do with 'em case PTX_SectionTable: case PTX_SectionCell: case PTX_EndTable: case PTX_EndCell: case PTX_EndFrame: case PTX_EndMarginnote: case PTX_EndFootnote: case PTX_SectionFrame: case PTX_SectionMarginnote: case PTX_SectionFootnote: case PTX_EndEndnote: case PTX_SectionTOC: case PTX_EndTOC: case PTX_SectionAnnotation: case PTX_EndAnnotation: return true ; default: UT_ASSERT_HARMLESS(UT_TODO); return true; } }