本文整理汇总了C++中PD_Document::tellListener方法的典型用法代码示例。如果您正苦于以下问题:C++ PD_Document::tellListener方法的具体用法?C++ PD_Document::tellListener怎么用?C++ PD_Document::tellListener使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PD_Document
的用法示例。
在下文中一共展示了PD_Document::tellListener方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pasteFromBuffer
bool IE_Imp_EPUB::pasteFromBuffer(PD_DocumentRange* pDocRange,
const unsigned char* pData, UT_uint32 lenData, const char* /*szEncoding*/)
{
UT_return_val_if_fail(getDoc() == pDocRange->m_pDoc,false);
UT_return_val_if_fail(pDocRange->m_pos1 == pDocRange->m_pos2,false);
PD_Document * newDoc = new PD_Document();
newDoc->createRawDocument();
IE_Imp_EPUB * pEPUBImp = new IE_Imp_EPUB(newDoc);
//
// Turn pData into something that can be imported by the open documenb
// importer.
//
GsfInput * pInStream = gsf_input_memory_new((const guint8 *) pData,
(gsf_off_t) lenData, FALSE);
pEPUBImp->loadFile(newDoc, pInStream);
newDoc->finishRawCreation();
IE_Imp_PasteListener * pPasteListen = new IE_Imp_PasteListener(getDoc(),
pDocRange->m_pos1, newDoc);
newDoc->tellListener(static_cast<PL_Listener *> (pPasteListen));
delete pPasteListen;
delete pEPUBImp;
UNREFP( newDoc);
return true;
}
示例2: pasteFromBuffer
bool IE_Imp_OpenDocument::pasteFromBuffer(PD_DocumentRange * pDocRange,
const unsigned char * pData,
UT_uint32 lenData,
const char * /*szEncoding*/)
{
UT_return_val_if_fail(getDoc() == pDocRange->m_pDoc,false);
UT_return_val_if_fail(pDocRange->m_pos1 == pDocRange->m_pos2,false);
PD_Document * newDoc = new PD_Document();
newDoc->createRawDocument();
IE_Imp_OpenDocument * pODImp = new IE_Imp_OpenDocument(newDoc);
//
// Turn pData into something that can be imported by the open documenb
// importer.
//
GsfInput * pInStream = gsf_input_memory_new((const guint8 *) pData,
(gsf_off_t) lenData,
FALSE);
pODImp->loadFile(newDoc, pInStream);
// pInStream deleted after load.
newDoc->finishRawCreation();
// Handle RDF for the newdoc
{
PD_DocumentRDFHandle rdf = newDoc->getDocumentRDF();
rdf->dumpModel("about to broadcast...");
PD_DocumentRDFMutationHandle m = getDoc()->getDocumentRDF()->createMutation();
m->add( rdf );
m->commit();
}
//
// OK Broadcast from the just filled source document into our current
// doc via the paste listener
//
IE_Imp_PasteListener * pPasteListen = new IE_Imp_PasteListener(getDoc(),pDocRange->m_pos1,newDoc);
newDoc->tellListener(static_cast<PL_Listener *>(pPasteListen));
delete pPasteListen;
delete pODImp;
UNREFP( newDoc);
return true;
}
示例3: readStructure
UT_Error IE_Imp_EPUB::readStructure()
{
getDoc()->createRawDocument();
getDoc()->finishRawCreation();
for (std::vector<std::string>::iterator i = m_spine.begin(); i
!= m_spine.end(); i++)
{
std::map<std::string, std::string>::iterator iter =
m_manifestItems.find(*i);
if (iter == m_manifestItems.end())
{
UT_DEBUGMSG(("Manifest item with id %s not found\n", (*i).c_str()));
return UT_ERROR;
}
std::string itemPath = m_tmpDir + G_DIR_SEPARATOR_S + (iter->second);
PT_DocPosition posEnd = 0;
getDoc()->getBounds(true, posEnd);
if (i != m_spine.begin())
{
getDoc()->insertStrux(posEnd, PTX_Section, NULL, NULL);
getDoc()->insertStrux(posEnd+1, PTX_Block, NULL, NULL);
posEnd+=2;
}
GsfInput* itemInput = UT_go_file_open(itemPath.c_str(), NULL);
if (itemInput == NULL)
{
UT_DEBUGMSG(("Can`t open item for reading\n"));
return UT_ERROR;
}
PD_Document *currentDoc = new PD_Document();
currentDoc->createRawDocument();
const char *suffix = strchr(itemPath.c_str(), '.');
XAP_App::getApp()->getPrefs()->setIgnoreNextRecent();
if (currentDoc->importFile(itemPath.c_str(),
IE_Imp::fileTypeForSuffix(suffix), true, false, NULL) != UT_OK)
{
UT_DEBUGMSG(("Failed to import file %s\n", itemPath.c_str()));
return UT_ERROR;
}
currentDoc->finishRawCreation();
// const gchar * attributes[3] = {
// "listid",
// "0",
// 0
// };
// PT_DocPosition pos;
// currentDoc->getBounds(true, pos);
// currentDoc->insertStrux(pos, PTX_Block, attributes, NULL, NULL);
IE_Imp_PasteListener * pPasteListener = new IE_Imp_PasteListener(
getDoc(), posEnd, currentDoc);
currentDoc->tellListener(static_cast<PL_Listener *> (pPasteListener));
DELETEP(pPasteListener);
UNREFP(currentDoc);
g_object_unref(G_OBJECT(itemInput));
}
return UT_OK;
}