mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-15 12:25:57 +08:00
Compare commits
57 Commits
core/devel
...
core/devel
| Author | SHA1 | Date | |
|---|---|---|---|
| 048c2fd034 | |||
| 8977e2c792 | |||
| bd5863a02d | |||
| bf6bfce051 | |||
| 805c24ff1a | |||
| 2c4bb7c808 | |||
| 15a711396f | |||
| 3d8403346b | |||
| 5700503efe | |||
| d01b1e7d41 | |||
| 584cc6ab80 | |||
| 4b727edde8 | |||
| 9d10c4ddce | |||
| d5026d014d | |||
| ac0b7e4e22 | |||
| 623fe25415 | |||
| c4c9d50aae | |||
| 5d8dda02ec | |||
| bc3461147d | |||
| 80d4e6057b | |||
| 2dc5c2916a | |||
| 5f9631a3c5 | |||
| ef7df69036 | |||
| b3961994d2 | |||
| 927a847607 | |||
| 674cc6c1a2 | |||
| 5d77cf9473 | |||
| 512dad1d24 | |||
| 3d684934f1 | |||
| dd6ac185fb | |||
| 9825b6e32e | |||
| 653008ebfc | |||
| 236e93aa9c | |||
| 164c7faf94 | |||
| 4c07ddbcc7 | |||
| 7be543c3a6 | |||
| ccb47b0bda | |||
| 8aefacd411 | |||
| 6cd5fbcaca | |||
| 7c964b3f9c | |||
| 8c43c781bd | |||
| 7496de06f0 | |||
| fdd443a2d7 | |||
| 037c4046eb | |||
| 4e5ac14ca9 | |||
| dedf74b366 | |||
| 6f2eef1137 | |||
| 9a8d3edbef | |||
| 305ebda78d | |||
| 114050c23e | |||
| 7eee0755bf | |||
| c329f29e9a | |||
| 0f3a02ca7c | |||
| 62d4860873 | |||
| 21666ee309 | |||
| 47ff766e4e | |||
| 50cbc671b3 |
@ -876,7 +876,7 @@ public:
|
||||
pCStringWriter->WriteString(CellPr);
|
||||
pCStringWriter->WriteString(L"</w:tcPr>");
|
||||
}
|
||||
for(int i = 0, length = TblStylePr.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)TblStylePr.size(); i < length; ++i)
|
||||
{
|
||||
pCStringWriter->WriteString(TblStylePr[i]);
|
||||
}
|
||||
@ -1241,7 +1241,7 @@ public:
|
||||
}
|
||||
~docLvl()
|
||||
{
|
||||
for(int i = 0,length = Text.size(); i < length; i++)
|
||||
for(int i = 0,length = (int)Text.size(); i < length; i++)
|
||||
{
|
||||
delete Text[i];
|
||||
}
|
||||
@ -1297,7 +1297,7 @@ public:
|
||||
if(bText)
|
||||
{
|
||||
std::wstring sText;
|
||||
for(int i = 0, length = Text.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)Text.size(); i < length; ++i)
|
||||
{
|
||||
docLvlText* item = Text[i];
|
||||
if(item->bText)
|
||||
@ -1360,7 +1360,7 @@ public:
|
||||
}
|
||||
~docANum()
|
||||
{
|
||||
for(int i = 0, length = Lvls.size(); i < length; i++)
|
||||
for(int i = 0, length = (int)Lvls.size(); i < length; i++)
|
||||
{
|
||||
delete Lvls[i];
|
||||
}
|
||||
@ -1380,7 +1380,7 @@ public:
|
||||
std::wstring sCorrectNumStyleLink = XmlUtils::EncodeXmlString(NumStyleLink);
|
||||
oWriterANum.WriteString(L"<w:numStyleLink w:val=\"" + sCorrectNumStyleLink + L"\"/>");
|
||||
}
|
||||
for(int i = 0, length = Lvls.size(); i < length; ++i)
|
||||
for(int i = 0, length = (int)Lvls.size(); i < length; ++i)
|
||||
{
|
||||
Lvls[i]->Write(oWriterANum, i);
|
||||
}
|
||||
@ -1453,7 +1453,8 @@ public:
|
||||
std::vector<std::wstring> aItems;
|
||||
std::wstring sCurItem;
|
||||
bool bDQuot = false;
|
||||
for(int i = 0, length = fld.length(); i < length; ++i)
|
||||
|
||||
for(int i = 0, length = (int)fld.length(); i < length; ++i)
|
||||
{
|
||||
wchar_t sCurLetter = fld[i];
|
||||
if('\"' == sCurLetter)
|
||||
@ -1476,7 +1477,8 @@ public:
|
||||
}
|
||||
if(sCurItem.length() > 0)
|
||||
aItems.push_back(sCurItem);
|
||||
for(int i = 0, length = aItems.size(); i < length; ++i)
|
||||
|
||||
for(int i = 0, length = (int)aItems.size(); i < length; ++i)
|
||||
{
|
||||
std::wstring item = aItems[i];
|
||||
if(bNextLink)
|
||||
@ -1500,7 +1502,7 @@ public:
|
||||
res = new WriteHyperlink();
|
||||
boost::algorithm::trim(sLink);
|
||||
|
||||
int nAnchorIndex = sLink.find(L"#");
|
||||
int nAnchorIndex = (int)sLink.find(L"#");
|
||||
if(-1 != nAnchorIndex)
|
||||
{
|
||||
res->href = sLink.substr(0, nAnchorIndex);
|
||||
@ -1589,7 +1591,7 @@ public:
|
||||
}
|
||||
~CComment()
|
||||
{
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
for(size_t i = 0; i <replies.size(); ++i)
|
||||
{
|
||||
delete replies[i];
|
||||
}
|
||||
@ -1597,32 +1599,37 @@ public:
|
||||
}
|
||||
int getCount()
|
||||
{
|
||||
return replies.size() + 1;
|
||||
return (int)replies.size() + 1;
|
||||
}
|
||||
void setFormatStart(int IdFormatStart)
|
||||
{
|
||||
bIdFormat = true;
|
||||
IdFormat = IdFormatStart;
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i < replies.size(); ++i)
|
||||
{
|
||||
CComment* pComment = replies[i];
|
||||
CComment* pComment = replies[i];
|
||||
pComment->bIdFormat = true;
|
||||
pComment->IdFormat = IdFormatStart + i + 1;
|
||||
pComment->IdFormat = (int)(IdFormatStart + i + 1);
|
||||
}
|
||||
}
|
||||
std::wstring writeRef(const std::wstring& sBefore, const std::wstring& sRef, const std::wstring& sAfter)
|
||||
{
|
||||
std::wstring sRes;
|
||||
sRes += (writeRef(this, sBefore, sRef, sAfter));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i< replies.size(); ++i)
|
||||
{
|
||||
sRes += (writeRef(replies[i], sBefore, sRef, sAfter));
|
||||
}
|
||||
return sRes;
|
||||
}
|
||||
std::wstring writeTemplates(funcArg fReadFunction)
|
||||
{
|
||||
std::wstring sRes;
|
||||
sRes += (fReadFunction(this));
|
||||
for(int i = 0, length = replies.size(); i < length; ++i)
|
||||
|
||||
for(size_t i = 0; i < replies.size(); ++i)
|
||||
sRes += (fReadFunction(replies[i]));
|
||||
return sRes;
|
||||
}
|
||||
@ -1708,7 +1715,7 @@ public:
|
||||
|
||||
bool bFirst = true;
|
||||
int nPrevIndex = 0;
|
||||
for(int i = 0, length = sText.length(); i < length; i++)
|
||||
for(size_t i = 0; i < sText.length(); i++)
|
||||
{
|
||||
wchar_t cToken = sText[i];
|
||||
if('\n' == cToken)
|
||||
@ -1717,7 +1724,7 @@ public:
|
||||
nPrevIndex = i + 1;
|
||||
}
|
||||
}
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, sText.length(), bFirst, sRes);
|
||||
writeContentWritePart(pComment, sText, nPrevIndex, (int)sText.length(), bFirst, sRes);
|
||||
}
|
||||
sRes += L"</w:comment>";
|
||||
return sRes;
|
||||
@ -1736,7 +1743,7 @@ w15:paraIdParent=\"" + pComment->m_sParaIdParent + L"\" w15:done=\"" + sDone + L
|
||||
else
|
||||
sRes += L"<w15:commentEx w15:paraId=\"" + pComment->m_sParaId + L"\" w15:done=\"" + sDone + L"\"/>";
|
||||
//расставляем paraIdParent
|
||||
for(int i = 0, length = pComment->replies.size(); i < length; i++)
|
||||
for(size_t i = 0; i < pComment->replies.size(); i++)
|
||||
pComment->replies[i]->m_sParaIdParent = pComment->m_sParaId;
|
||||
}
|
||||
return sRes;
|
||||
@ -1782,7 +1789,7 @@ public:
|
||||
{
|
||||
m_mapComments[pComment->IdOpen] = pComment;
|
||||
addAuthor(pComment);
|
||||
for(int i = 0, length = pComment->replies.size(); i < length; i++)
|
||||
for(size_t i = 0; i < pComment->replies.size(); i++)
|
||||
addAuthor(pComment->replies[i]);
|
||||
}
|
||||
}
|
||||
@ -1866,7 +1873,7 @@ public:
|
||||
}
|
||||
~CDrawingPropertyWrap()
|
||||
{
|
||||
for(int i = 0, length = Points.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < Points.size(); ++i)
|
||||
delete Points[i];
|
||||
Points.clear();
|
||||
}
|
||||
@ -2055,7 +2062,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
int nSimplePos = 0;
|
||||
if(bBSimplePos && BSimplePos)
|
||||
nSimplePos = 1;
|
||||
int nRelativeHeight = 0;
|
||||
unsigned long nRelativeHeight = 0;
|
||||
if(bRelativeHeight)
|
||||
nRelativeHeight = RelativeHeight;
|
||||
int nBehindDoc = 0;
|
||||
@ -2211,7 +2218,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
sXml += L"<wp:start x=\"" + std::to_wstring(emuX) + L"\" y=\"" + std::to_wstring(emuY) + L"\"/>";
|
||||
}
|
||||
|
||||
for(int i = 0, length = DrawingPropertyWrap.Points.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < DrawingPropertyWrap.Points.size(); ++i)
|
||||
{
|
||||
CDrawingPropertyWrapPoint* pWrapPoint = DrawingPropertyWrap.Points[i];
|
||||
if(pWrapPoint->bX && pWrapPoint->bY)
|
||||
|
||||
@ -760,11 +760,11 @@ public:
|
||||
{
|
||||
Tabs oTabs;
|
||||
res = Read2(length, &Binary_pPrReader::ReadTabs, this, &oTabs);
|
||||
int nLen = oTabs.m_aTabs.size();
|
||||
size_t nLen = oTabs.m_aTabs.size();
|
||||
if(nLen > 0)
|
||||
{
|
||||
pCStringWriter->WriteString(std::wstring(_T("<w:tabs>")));
|
||||
for(int i = 0; i < nLen; ++i)
|
||||
for(size_t i = 0; i < nLen; ++i)
|
||||
{
|
||||
Tab& oTab = oTabs.m_aTabs[i];
|
||||
long nTab = SerializeCommon::Round( g_dKoef_mm_to_twips * oTab.Pos);
|
||||
@ -1386,7 +1386,7 @@ public:
|
||||
if( c_oSerProp_secPrType::hdrftrelem == type )
|
||||
{
|
||||
int nHdrFtrIndex = m_oBufferedStream.GetLong();
|
||||
if(nHdrFtrIndex >= 0 && nHdrFtrIndex <= m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders.size())
|
||||
if(nHdrFtrIndex >= 0 && nHdrFtrIndex <= (int)m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders.size())
|
||||
{
|
||||
Writers::HdrFtrItem* pHdrFtrItem = m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders[nHdrFtrIndex];
|
||||
pHdrFtrItem->m_sFilename;
|
||||
@ -1411,7 +1411,7 @@ public:
|
||||
if( c_oSerProp_secPrType::hdrftrelem == type )
|
||||
{
|
||||
int nHdrFtrIndex = m_oBufferedStream.GetLong();
|
||||
if(nHdrFtrIndex >= 0 && nHdrFtrIndex <= oBinary_HdrFtrTableReader.m_oHeaderFooterWriter.m_aFooters.size())
|
||||
if(nHdrFtrIndex >= 0 && nHdrFtrIndex <= (int)oBinary_HdrFtrTableReader.m_oHeaderFooterWriter.m_aFooters.size())
|
||||
{
|
||||
Writers::HdrFtrItem* pHdrFtrItem = oBinary_HdrFtrTableReader.m_oHeaderFooterWriter.m_aFooters[nHdrFtrIndex];
|
||||
pHdrFtrItem->m_sFilename;
|
||||
@ -1979,7 +1979,7 @@ public:
|
||||
if(true == orowPrAfterBefore.bGridAfter && orowPrAfterBefore.nGridAfter > 0 && false == orowPrAfterBefore.oAfterWidth.bW)
|
||||
{
|
||||
//ищем по tblGrid
|
||||
long nGridLength = m_aCurTblGrid.size();
|
||||
long nGridLength = (long)m_aCurTblGrid.size();
|
||||
if(orowPrAfterBefore.nGridAfter < nGridLength)
|
||||
{
|
||||
double nSumW = 0;
|
||||
@ -2396,14 +2396,14 @@ public:
|
||||
int Read()
|
||||
{
|
||||
int res = ReadTable(&Binary_NumberingTableReader::ReadNumberingContent, this);
|
||||
for(int i = 0, length = m_aDocANums.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < m_aDocANums.size(); ++i)
|
||||
{
|
||||
docANum* pdocANum = m_aDocANums[i];
|
||||
pdocANum->Write(oNumberingWriters.m_oANum);
|
||||
delete m_aDocANums[i];
|
||||
}
|
||||
m_aDocANums.clear();
|
||||
for(int i = 0, length = m_aDocNums.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < m_aDocNums.size(); ++i)
|
||||
{
|
||||
m_aDocNums[i]->Write(oNumberingWriters.m_oNumList);
|
||||
delete m_aDocNums[i];
|
||||
@ -3366,7 +3366,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:interSp m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -3398,7 +3398,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:intraSp m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -3411,7 +3411,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:lMargin m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -3462,7 +3462,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:postSp m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -3475,7 +3475,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:preSp m:val=\"" + std::to_wstring(lVal)+ L"\"/>");
|
||||
}
|
||||
@ -3488,7 +3488,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:rMargin m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -3518,7 +3518,7 @@ public:
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
if ( c_oSer_OMathBottomNodesValType::Val == type )
|
||||
{
|
||||
LONG lVal = Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
LONG lVal = (LONG)Mm_To_Dx(m_oBufferedStream.GetDouble());
|
||||
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<m:wrapIndent m:val=\"" + std::to_wstring(lVal) + L"\"/>");
|
||||
}
|
||||
@ -6526,7 +6526,9 @@ public:
|
||||
}
|
||||
int Read_Background(BYTE type, long length, void* poResult)
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
m_oFileWriter.m_oSettingWriter.AddSetting(L"<w:displayBackgroundShape/>");
|
||||
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
Background* pBackground = static_cast<Background*>(poResult);
|
||||
|
||||
if( c_oSerBackgroundType::Color == type )
|
||||
@ -6587,10 +6589,13 @@ public:
|
||||
OOX::CPath pathChartsWorksheetDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + _T("word") + FILE_SEPARATOR_STR +_T("embeddings");
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsWorksheetDir.GetPath());
|
||||
|
||||
bool oldValueType = m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_bIsWord;
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_bIsWord = false;
|
||||
m_oFileWriter.m_pDrawingConverter->SetDstContentRels();
|
||||
|
||||
std::wstring sThemeDir;
|
||||
int nIndex = m_oFileWriter.m_sThemePath.rfind(FILE_SEPARATOR_CHAR);
|
||||
int nIndex = (int)m_oFileWriter.m_sThemePath.rfind(FILE_SEPARATOR_CHAR);
|
||||
if(-1 != nIndex)
|
||||
sThemeDir = m_oFileWriter.m_sThemePath.substr(0, nIndex);
|
||||
|
||||
@ -6638,6 +6643,8 @@ public:
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(bstrChartRelType, sRelsName, std::wstring(), &rIdChart);
|
||||
|
||||
pDrawingProperty->sChartRels = L"rId" + std::to_wstring( rIdChart);
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_bIsWord = oldValueType;
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
@ -6687,7 +6694,7 @@ public:
|
||||
else if ( c_oSerImageType2::RelativeHeight == type )
|
||||
{
|
||||
pDrawingProperty->bRelativeHeight = true;
|
||||
pDrawingProperty->RelativeHeight = m_oBufferedStream.GetLong();
|
||||
pDrawingProperty->RelativeHeight = m_oBufferedStream.GetULong();
|
||||
}
|
||||
else if ( c_oSerImageType2::BSimplePos == type )
|
||||
{
|
||||
@ -7129,12 +7136,12 @@ int Binary_HdrFtrTableReader::ReadHdrFtrItem(BYTE type, long length, void* poRes
|
||||
if(nCurType == c_oSerHdrFtrTypes::Header)
|
||||
{
|
||||
m_oHeaderFooterWriter.m_aHeaders.push_back(poHdrFtrItem);
|
||||
poHdrFtrItem->m_sFilename = L"header" + std::to_wstring(m_oHeaderFooterWriter.m_aHeaders.size()) + L".xml";
|
||||
poHdrFtrItem->m_sFilename = L"header" + std::to_wstring((int)m_oHeaderFooterWriter.m_aHeaders.size()) + L".xml";
|
||||
}
|
||||
else
|
||||
{
|
||||
m_oHeaderFooterWriter.m_aFooters.push_back(poHdrFtrItem);
|
||||
poHdrFtrItem->m_sFilename = L"footer" + std::to_wstring(m_oHeaderFooterWriter.m_aFooters.size()) + L".xml";
|
||||
poHdrFtrItem->m_sFilename = L"footer" + std::to_wstring((int)m_oHeaderFooterWriter.m_aFooters.size()) + L".xml";
|
||||
}
|
||||
m_oFileWriter.m_pDrawingConverter->SetDstContentRels();
|
||||
Binary_DocumentTableReader oBinary_DocumentTableReader(m_oBufferedStream, m_oFileWriter, poHdrFtrItem->Header, m_pComments);
|
||||
@ -7371,7 +7378,7 @@ public: BinaryFileReader(std::wstring& sFileInDir, NSBinPptxRW::CBinaryFileReade
|
||||
return res;
|
||||
}
|
||||
|
||||
for(int i = 0, length = aTypes.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < aTypes.size(); ++i)
|
||||
{
|
||||
BYTE mtiType = aTypes[i];
|
||||
long mtiOffBits = aOffBits[i];
|
||||
@ -7437,7 +7444,7 @@ public: BinaryFileReader(std::wstring& sFileInDir, NSBinPptxRW::CBinaryFileReade
|
||||
long rId;
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(std::wstring(_T("http://schemas.openxmlformats.org/officeDocument/2006/relationships/endnotes")), std::wstring(_T("endnotes.xml")), std::wstring(), &rId);
|
||||
}
|
||||
for(int i = 0, length = m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders.size(); ++i)
|
||||
{
|
||||
Writers::HdrFtrItem* pHeader = m_oFileWriter.m_oHeaderFooterWriter.m_aHeaders[i];
|
||||
if(false == pHeader->IsEmpty())
|
||||
@ -7447,7 +7454,7 @@ public: BinaryFileReader(std::wstring& sFileInDir, NSBinPptxRW::CBinaryFileReade
|
||||
pHeader->rId = L"rId" + std::to_wstring( rId );
|
||||
}
|
||||
}
|
||||
for(int i = 0, length = m_oFileWriter.m_oHeaderFooterWriter.m_aFooters.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < m_oFileWriter.m_oHeaderFooterWriter.m_aFooters.size(); ++i)
|
||||
{
|
||||
Writers::HdrFtrItem* pFooter = m_oFileWriter.m_oHeaderFooterWriter.m_aFooters[i];
|
||||
if(false == pFooter->IsEmpty())
|
||||
|
||||
@ -61,7 +61,7 @@ namespace BinDocxRW
|
||||
void BinaryHeaderFooterTableWriter::WriteHdrFtrContent(std::vector<OOX::CHdrFtr*>& aHdrFtrs, std::vector<SimpleTypes::EHdrFtr>& aHdrFtrTypes, std::vector<OOX::Logic::CSectionProperty*>& aHdrSectPrs, bool bHdr)
|
||||
{
|
||||
int nCurPos = 0;
|
||||
for(int i = 0, length = aHdrFtrs.size(); i < length; ++i)
|
||||
for(size_t i = 0; i < aHdrFtrs.size(); ++i)
|
||||
{
|
||||
OOX::CHdrFtr* pHdrFtr = aHdrFtrs[i];
|
||||
SimpleTypes::EHdrFtr eType = aHdrFtrTypes[i];
|
||||
|
||||
@ -780,28 +780,22 @@ namespace BinDocxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBOOL(rPr.m_oVanish->m_oVal.ToBool());
|
||||
}
|
||||
if (false != rPr.m_sTextOutline.IsInit())
|
||||
if (false != rPr.m_oTextOutline.IsInit())
|
||||
{
|
||||
std::wstring sTextOutline = rPr.m_sTextOutline.get2();
|
||||
//делаем replace потому что читать имена node без namespace можем а атрибуты нет, потому что храним их в map
|
||||
XmlUtils::replace_all(sTextOutline, L"w14:", L"");
|
||||
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::TextOutline);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::TextOutline);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
int nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
m_pOfficeDrawingConverter->GetRecordBinary(XMLWRITER_RECORD_TYPE_TEXT_OUTLINE, sTextOutline);
|
||||
|
||||
m_oBcw.m_oStream.WriteRecord2(0, rPr.m_oTextOutline);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if (false != rPr.m_sTextFill.IsInit())
|
||||
if (rPr.m_oTextFill.getType() != OOX::et_Unknown)
|
||||
{
|
||||
std::wstring sTextFill = rPr.m_sTextFill.get2();
|
||||
//делаем replace потому что читать имена node без namespace можем а атрибуты нет, потому что храним их в map
|
||||
XmlUtils::replace_all(sTextFill, L"w14:", L"");
|
||||
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::TextFill);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
int nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
m_pOfficeDrawingConverter->GetRecordBinary(XMLWRITER_RECORD_TYPE_TEXT_FILL, sTextFill);
|
||||
|
||||
m_oBcw.m_oStream.WriteRecord1(0, rPr.m_oTextFill);
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(rPr.m_oDel.IsInit())
|
||||
@ -5182,7 +5176,7 @@ namespace BinDocxRW
|
||||
m_eFldState = SimpleTypes::fldchartypeEnd;
|
||||
if(m_aFldChars.size() > 0)
|
||||
{
|
||||
int nIndex = m_aFldChars.size() - 1;
|
||||
int nIndex = (int)m_aFldChars.size() - 1;
|
||||
FldStruct* pFldStruct = m_aFldChars[nIndex];
|
||||
RELEASEOBJECT(pFldStruct);
|
||||
m_aFldChars.erase(m_aFldChars.begin() + nIndex);
|
||||
@ -5657,7 +5651,7 @@ namespace BinDocxRW
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::RelativeHeight);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Long);
|
||||
m_oBcw.m_oStream.WriteLONG(pAnchor.m_oRelativeHeight->GetValue());
|
||||
m_oBcw.m_oStream.WriteULONG(pAnchor.m_oRelativeHeight->GetValue());
|
||||
}
|
||||
if(pAnchor.m_bSimplePos.IsInit())
|
||||
{
|
||||
|
||||
@ -61,7 +61,7 @@ bool BinDocxRW::CDocxSerializer::ConvertDocxToDoct(const std::wstring& sSrcFileN
|
||||
|
||||
if(S_OK == oCOfficeUtils.ExtractToDirectory(sSrcFileName, strDirSrc, NULL, 0))
|
||||
if(saveToFile(strEditorBin, strDirSrc, sXMLOptions))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, -1))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName))
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
@ -88,7 +88,7 @@ bool BinDocxRW::CDocxSerializer::ConvertDoctToDocx(const std::wstring& sSrcFileN
|
||||
|
||||
if(loadFromFile(sEditorBin, strDirDst, sXMLOptions, sThemePath, sMediaPath, sEmbedPath))
|
||||
{
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, -1))
|
||||
if(S_OK == oCOfficeUtils.CompressFileOrDirectory(strDirDst, sDstFileName, true))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@ -219,7 +219,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
//проверяем формат
|
||||
bool bValidFormat = false;
|
||||
std::wstring sSignature(g_sFormatSignature);
|
||||
int nSigLength = sSignature.length();
|
||||
int nSigLength = (int)sSignature.length();
|
||||
if(nBase64DataSize > nSigLength)
|
||||
{
|
||||
std::string sCurSig((char*)pBase64Data, nSigLength);
|
||||
@ -263,7 +263,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
|
||||
if(false != Base64::Base64Decode((const char*)(pBase64Data + nIndex), nBase64DataSize - nIndex, pData, &nDataSize))
|
||||
{
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
NSBinPptxRW::CDrawingConverter oDrawingConverter;
|
||||
NSBinPptxRW::CBinaryFileReader& oBufferedStream = *oDrawingConverter.m_pReader;
|
||||
oBufferedStream.Init(pData, 0, nDataSize);
|
||||
|
||||
|
||||
@ -85,9 +85,9 @@ namespace BinXlsxRW{
|
||||
}
|
||||
bool CXlsxSerializer::loadFromFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedDir)
|
||||
{
|
||||
NSBinPptxRW::CDrawingConverter oOfficeDrawingConverter;
|
||||
oOfficeDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oOfficeDrawingConverter.SetEmbedDstPath(sEmbedDir);
|
||||
NSBinPptxRW::CDrawingConverter oOfficeDrawingConverter;
|
||||
oOfficeDrawingConverter.SetMediaDstPath(sMediaDir);
|
||||
oOfficeDrawingConverter.SetEmbedDstPath(sEmbedDir);
|
||||
|
||||
//папка с бинарников
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
@ -95,7 +95,7 @@ namespace BinXlsxRW{
|
||||
oOfficeDrawingConverter.SetSourceFileDir(strFileInDir, 2);
|
||||
|
||||
BinXlsxRW::BinaryFileReader oBinaryFileReader;
|
||||
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oOfficeDrawingConverter, sXMLOptions);
|
||||
oBinaryFileReader.ReadFile(sSrcFileName, sDstPath, &oOfficeDrawingConverter, sXMLOptions);
|
||||
return true;
|
||||
}
|
||||
bool CXlsxSerializer::saveToFile(const std::wstring& sDstFileName, const std::wstring& sSrcPath, const std::wstring& sXMLOptions)
|
||||
@ -275,7 +275,7 @@ namespace BinXlsxRW{
|
||||
oXlsx.Write(oPath, sAdditionalContentTypes);
|
||||
//zip
|
||||
COfficeUtils oOfficeUtils(NULL);
|
||||
oOfficeUtils.CompressFileOrDirectory(sTempDir, sDstFile, -1);
|
||||
oOfficeUtils.CompressFileOrDirectory(sTempDir, sDstFile, true);
|
||||
//clean
|
||||
NSDirectory::DeleteDirectory(sTempDir);
|
||||
}
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
#include <stdio.h>
|
||||
#include <tchar.h>
|
||||
|
||||
|
||||
#include "../../OfficeUtils/src/OfficeUtils.h"
|
||||
#include "../../DesktopEditor/common/Directory.h"
|
||||
#include "../src/ConvertOO2OOX.h"
|
||||
@ -55,7 +54,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
HRESULT hr = S_OK;
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
std::wstring srcFileName = argv[1];
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : srcFileName + L"-my.docx"; //xlsx pptx
|
||||
std::wstring dstPath = argc > 2 ? argv[2] : srcFileName + L"-my.xlsx"; //xlsx pptx docx
|
||||
|
||||
std::wstring outputDir = NSDirectory::GetFolderPath(dstPath);
|
||||
|
||||
@ -73,7 +72,7 @@ int _tmain(int argc, _TCHAR* argv[])
|
||||
|
||||
if (hr != S_OK) return hr;
|
||||
|
||||
if (S_OK != oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), dstPath.c_str(), -1))
|
||||
if (S_OK != oCOfficeUtils.CompressFileOrDirectory(dstTempPath.c_str(), dstPath.c_str(), true))
|
||||
return hr;
|
||||
|
||||
NSDirectory::DeleteDirectory(dstTempPath);
|
||||
|
||||
@ -64,6 +64,8 @@
|
||||
<Tool
|
||||
Name="VCLinkerTool"
|
||||
AdditionalDependencies="gdi32.lib Rpcrt4.lib"
|
||||
ShowProgress="0"
|
||||
Version=""
|
||||
LinkIncremental="2"
|
||||
GenerateDebugInformation="true"
|
||||
SubSystem="1"
|
||||
|
||||
@ -24,7 +24,8 @@ DEFINES += UNICODE \
|
||||
_USE_LIBXML2_READER_ \
|
||||
_USE_XMLLITE_READER_ \
|
||||
USE_LITE_READER \
|
||||
LIBXML_READER_ENABLED
|
||||
LIBXML_READER_ENABLED \
|
||||
DONT_WRITE_EMBEDDED_FONTS
|
||||
|
||||
INCLUDEPATH += ../include
|
||||
INCLUDEPATH += ../../DesktopEditor/freetype-2.5.2/include
|
||||
|
||||
@ -47,12 +47,12 @@ docx_content_types_file::docx_content_types_file()
|
||||
content()->add_default(L"jpg", L"image/jpeg");
|
||||
content()->add_default(L"png", L"image/png");
|
||||
//
|
||||
content()->add_override(L"/_rels/.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/word/_rels/document.xml.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/word/document.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml");
|
||||
content()->add_override(L"/word/settings.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.settings+xml");
|
||||
content()->add_override(L"/word/styles.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.styles+xml");
|
||||
content()->add_override(L"/word/fontTable.xml", L"application/vnd.openxmlformats-officedocument.wordprocessingml.fontTable+xml");
|
||||
//content()->add_override(L"/word/_rels/document.xml.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
//content()->add_override(L"/_rels/.rels", L"application/vnd.openxmlformats-package.relationships+xml");
|
||||
content()->add_override(L"/docProps/app.xml", L"application/vnd.openxmlformats-officedocument.extended-properties+xml");
|
||||
content()->add_override(L"/docProps/core.xml", L"application/vnd.openxmlformats-package.core-properties+xml");
|
||||
}
|
||||
|
||||
@ -166,8 +166,7 @@ std::wstring mediaitems::detectImageFileExtension(std::wstring &fileName)
|
||||
|
||||
std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, bool & isInternal, std::wstring & ref)
|
||||
{
|
||||
bool isMediaInternal = is_internal(href, odf_packet_);
|
||||
|
||||
bool isMediaInternal = true;
|
||||
std::wstring sub_path = L"media/";
|
||||
|
||||
std::wstring inputFileName;
|
||||
@ -175,10 +174,13 @@ std::wstring mediaitems::add_or_find(const std::wstring & href, RelsType type, b
|
||||
{
|
||||
sub_path = L"charts/";
|
||||
}
|
||||
if ( type == typeMsObject || type == typeOleObject)
|
||||
else if ( type == typeMsObject || type == typeOleObject)
|
||||
{
|
||||
sub_path = L"embeddings/";
|
||||
}
|
||||
else
|
||||
isMediaInternal = is_internal(href, odf_packet_);
|
||||
|
||||
int number=0;
|
||||
|
||||
if ( type == typeChart) number = count_charts + 1;
|
||||
|
||||
@ -381,7 +381,7 @@ std::wstring draw_object::office_convert(odf_document * odfDocument, int type)
|
||||
std::wstring temp_file = folderPath + FILE_SEPARATOR_STR + href_result;
|
||||
|
||||
COfficeUtils oCOfficeUtils(NULL);
|
||||
oCOfficeUtils.CompressFileOrDirectory(objectOutPath.c_str(), temp_file.c_str(), -1);
|
||||
oCOfficeUtils.CompressFileOrDirectory(objectOutPath.c_str(), temp_file.c_str(), true);
|
||||
}
|
||||
NSDirectory::DeleteDirectory(objectOutPath);
|
||||
|
||||
|
||||
@ -832,23 +832,11 @@ namespace svg_path
|
||||
|
||||
switch(aCurrChar)
|
||||
{
|
||||
case 'z' :
|
||||
case 'x' :
|
||||
{
|
||||
nPos++;
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
|
||||
bIsClosed = true;
|
||||
|
||||
if( aCurrPoly.points.size() > 0)
|
||||
{
|
||||
const _point aFirst( aCurrPoly.points[0]);
|
||||
nLastX = aFirst.x.get();
|
||||
nLastY = aFirst.y.get();
|
||||
}
|
||||
|
||||
aCurrPoly.command=L"z";
|
||||
Polyline.push_back(aCurrPoly);
|
||||
|
||||
} break;
|
||||
case 'm' :
|
||||
case 't' :
|
||||
@ -906,7 +894,9 @@ namespace svg_path
|
||||
}
|
||||
}break;
|
||||
|
||||
case 'c' :
|
||||
case 'v' :
|
||||
bRelative = true;
|
||||
case 'c' :
|
||||
{
|
||||
nPos++;
|
||||
skipSpaces(nPos, rSvgDStatement, nLen);
|
||||
@ -924,7 +914,16 @@ namespace svg_path
|
||||
if(!importDoubleAndSpaces(nX, nPos, rSvgDStatement, nLen)) return false;
|
||||
if(!importDoubleAndSpaces(nY, nPos, rSvgDStatement, nLen)) return false;
|
||||
|
||||
aCurrPoly.command = L"c";
|
||||
if(bRelative)
|
||||
{
|
||||
nX1 += nLastX;
|
||||
nY1 += nLastY;
|
||||
nX2 += nLastX;
|
||||
nY2 += nLastY;
|
||||
nX += nLastX;
|
||||
nY += nLastY;
|
||||
}
|
||||
aCurrPoly.command = L"c";
|
||||
|
||||
aCurrPoly.points.push_back(_point(nX1, nY1));
|
||||
aCurrPoly.points.push_back(_point(nX2, nY2));
|
||||
|
||||
@ -110,7 +110,7 @@ namespace utils {
|
||||
{
|
||||
if (!a_.empty())
|
||||
{
|
||||
return boost::lexical_cast<int>(a_.length())-1;
|
||||
return boost::lexical_cast<int>(a_) - 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
|
||||
@ -33,8 +33,10 @@
|
||||
#include "../utils.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/Common/SimpleTypes_Drawing.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h"
|
||||
@ -56,6 +58,106 @@ namespace Oox2Odf
|
||||
{
|
||||
return (1.0 * emu / (635 * 20.0));
|
||||
}
|
||||
|
||||
void OoxConverter::convert(PPTX::Logic::GraphicFrame *oox_graphic_frame)
|
||||
{
|
||||
if (!oox_graphic_frame)return;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
odf_context()->drawing_context()->start_drawing();
|
||||
|
||||
convert(&oox_graphic_frame->nvGraphicFramePr);
|
||||
|
||||
if ( oox_graphic_frame->chartRec.IsInit())
|
||||
{
|
||||
convert(oox_graphic_frame->chartRec.GetPointer());
|
||||
}
|
||||
else if ( oox_graphic_frame->smartArt.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->smartArt.GetPointer());
|
||||
}
|
||||
else if ( oox_graphic_frame->pic.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->pic.GetPointer());
|
||||
}
|
||||
else if ( oox_graphic_frame->table.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->table.GetPointer());
|
||||
}
|
||||
else if ( oox_graphic_frame->element.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->element->GetElem().operator->());
|
||||
}
|
||||
odf_context()->drawing_context()->end_drawing();
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::NvGraphicFramePr *oox_framePr)
|
||||
{
|
||||
if (oox_framePr == NULL) return;
|
||||
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::Table *oox_table)
|
||||
{
|
||||
if (oox_table == NULL) return;
|
||||
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::SmartArt *oox_smart_art)
|
||||
{
|
||||
if (oox_smart_art == NULL) return;
|
||||
if (oox_smart_art->id_data.IsInit() == false) return;
|
||||
|
||||
oox_smart_art->LoadDrawing();
|
||||
|
||||
if (oox_smart_art->m_diag.IsInit())
|
||||
{
|
||||
_CP_OPT(double) x, y, width, height, cx, cy;
|
||||
|
||||
odf_context()->drawing_context()->get_size (width, height);
|
||||
odf_context()->drawing_context()->get_position (x, y);
|
||||
|
||||
oox_current_child_document = dynamic_cast<OOX::IFileContainer*>(oox_smart_art->m_oCommonRels.operator->());
|
||||
|
||||
odf_context()->drawing_context()->start_group();
|
||||
|
||||
odf_context()->drawing_context()->set_group_size (width, height, width, height);
|
||||
odf_context()->drawing_context()->set_group_position (x, y, cx, cy);
|
||||
|
||||
convert(oox_smart_art->m_diag.GetPointer());
|
||||
|
||||
odf_context()->drawing_context()->end_group();
|
||||
oox_current_child_document = NULL;
|
||||
}
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::ChartRec *oox_chart)
|
||||
{
|
||||
if (!oox_chart) return;
|
||||
if( !oox_chart->id_data.IsInit()) return;
|
||||
|
||||
_CP_OPT(double) width, height;
|
||||
odf_context()->drawing_context()->get_size (width, height);
|
||||
|
||||
smart_ptr<OOX::File> oFile = find_file_by_id (oox_chart->id_data->get());
|
||||
if (oFile.IsInit())
|
||||
{
|
||||
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
|
||||
|
||||
if (pChart)
|
||||
{
|
||||
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
|
||||
odf_context()->drawing_context()->start_object(odf_context()->get_next_name_object());
|
||||
{
|
||||
odf_context()->start_chart();
|
||||
odf_context()->chart_context()->set_chart_size(width, height);
|
||||
|
||||
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
|
||||
|
||||
OoxConverter::convert(&pChart->m_oChartSpace);
|
||||
odf_context()->end_chart();
|
||||
}
|
||||
odf_context()->drawing_context()->end_object();
|
||||
oox_current_child_document_spreadsheet = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::SpTree *oox_shape_tree)
|
||||
{
|
||||
if (oox_shape_tree == NULL) return;
|
||||
@ -85,9 +187,10 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
|
||||
|
||||
if (type == SimpleTypes::shapetypeRect && oox_shape->txBody.IsInit()) type = 2000;
|
||||
|
||||
if (type == 2000 && oox_shape->txBody->bodyPr.fromWordArt.get_value_or(false))
|
||||
if (type == 2000 && oox_shape->txBody->bodyPr.IsInit()
|
||||
&& oox_shape->txBody->bodyPr->fromWordArt.get_value_or(false))
|
||||
{
|
||||
int wordart_type = convert(oox_shape->txBody->bodyPr.prstTxWarp.GetPointer());
|
||||
int wordart_type = convert(oox_shape->txBody->bodyPr->prstTxWarp.GetPointer());
|
||||
|
||||
if (wordart_type > 0) type = wordart_type;
|
||||
}
|
||||
@ -111,7 +214,7 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
|
||||
odf_context()->drawing_context()->set_text( odf_context()->text_context());
|
||||
|
||||
//наложим внешние настройки для текста
|
||||
convert(&oox_shape->txBody->bodyPr);
|
||||
convert(oox_shape->txBody->bodyPr.GetPointer());
|
||||
|
||||
if (oox_shape->style.IsInit())
|
||||
{
|
||||
@ -281,15 +384,15 @@ void OoxConverter::convert(PPTX::Logic::PathBase *oox_path)
|
||||
}
|
||||
if (cubicBezTo)
|
||||
{
|
||||
std::wstring path_elm = cubicBezTo->x1 + L" " + cubicBezTo->y1 + L" " +
|
||||
cubicBezTo->x2 + L" " + cubicBezTo->y2 + L" " +
|
||||
cubicBezTo->x3 + L" " + cubicBezTo->y3;
|
||||
std::wstring path_elm = cubicBezTo->x[0] + L" " + cubicBezTo->y[0] + L" " +
|
||||
cubicBezTo->x[1] + L" " + cubicBezTo->y[1] + L" " +
|
||||
cubicBezTo->x[2] + L" " + cubicBezTo->y[2];
|
||||
odf_context()->drawing_context()->add_path_element(std::wstring(L"C"), path_elm);
|
||||
}
|
||||
if (quadBezTo)
|
||||
{
|
||||
std::wstring path_elm = quadBezTo->x1 + L" " + quadBezTo->y1 + L" " +
|
||||
quadBezTo->x2 + L" " + quadBezTo->y2;
|
||||
std::wstring path_elm = quadBezTo->x[0] + L" " + quadBezTo->y[0] + L" " +
|
||||
quadBezTo->x[1] + L" " + quadBezTo->y[1];
|
||||
odf_context()->drawing_context()->add_path_element(std::wstring(L"S"), path_elm);
|
||||
}
|
||||
if (arcTo)
|
||||
|
||||
@ -395,7 +395,7 @@ void OoxConverter::convert(OOX::Drawing::CDiagrammParts *oox_diagramm)
|
||||
|
||||
if (oFile.is_init() && OOX::FileTypes::DiagDrawing == oFile->type())
|
||||
{
|
||||
_CP_OPT(double) x, y, width, height, cx = 0, cy = 0;
|
||||
_CP_OPT(double) x, y, width, height, cx, cy;
|
||||
|
||||
odf_context()->drawing_context()->get_size (width, height);
|
||||
odf_context()->drawing_context()->get_position (x, y);
|
||||
|
||||
@ -270,7 +270,6 @@ namespace OOX
|
||||
class CT_Style1;
|
||||
class CT_Style;
|
||||
class CT_TextLanguageID;
|
||||
class CRichText;
|
||||
class CTextProperties;
|
||||
}
|
||||
namespace Vml
|
||||
@ -312,6 +311,7 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
class GraphicFrame;
|
||||
class SpTree;
|
||||
class Shape;
|
||||
class SpPr;
|
||||
@ -343,6 +343,10 @@ namespace PPTX
|
||||
class Fld;
|
||||
class Br;
|
||||
class MathParaWrapper;
|
||||
class NvGraphicFramePr;
|
||||
class Table;
|
||||
class ChartRec;
|
||||
class SmartArt;
|
||||
}
|
||||
}
|
||||
|
||||
@ -428,11 +432,12 @@ public:
|
||||
void convert(OOX::Drawing::CRun *oox_run);
|
||||
void convert(OOX::Drawing::CRunProperty *oox_run_pr, cpdoccore::odf_writer::style_text_properties * text_properties);
|
||||
void convert(OOX::Drawing::CLineSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
|
||||
//.diagram & pptx................................................................................................................................
|
||||
void convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
|
||||
//drawingML & pptx................................................................................................................................
|
||||
void convert(PPTX::Logic::GraphicFrame *oox_graphicFrame);
|
||||
void convert(PPTX::Logic::SpTree *oox_shape_tree);
|
||||
void convert(PPTX::Logic::Shape *oox_shape);
|
||||
void convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle* oox_sp_style = NULL);
|
||||
void convert(PPTX::Logic::TextSpacing *oox_spacing, cpdoccore::odf_types::length_or_percent & length_or_percent);
|
||||
int convert(PPTX::Logic::PrstTxWarp *oox_text_preset);
|
||||
void convert(PPTX::Logic::PrstGeom *oox_geom);
|
||||
void convert(PPTX::Logic::CustGeom *oox_geom);
|
||||
@ -458,6 +463,10 @@ public:
|
||||
void convert(PPTX::Logic::Fld *oox_fld);
|
||||
void convert(PPTX::Logic::Br *oox_br);
|
||||
void convert(PPTX::Logic::MathParaWrapper *oox_math);
|
||||
void convert(PPTX::Logic::NvGraphicFramePr *oox_framePr);
|
||||
void convert(PPTX::Logic::ChartRec *oox_chart);
|
||||
void convert(PPTX::Logic::SmartArt *oox_smart_art);
|
||||
void convert(PPTX::Logic::Table *oox_table);
|
||||
//.chart............................................................................................................................
|
||||
void convert(OOX::Spreadsheet::CT_ChartSpace *oox_chart);
|
||||
void convert(OOX::Spreadsheet::CT_Title *ct_title);
|
||||
@ -495,8 +504,8 @@ public:
|
||||
void convert(OOX::Spreadsheet::CT_LineSer *ser);
|
||||
void convert(OOX::Spreadsheet::CT_AxDataSource *cat, int type);
|
||||
void convert(OOX::Spreadsheet::CT_NumDataSource *val);
|
||||
void convert(OOX::Spreadsheet::CRichText *rich);
|
||||
void convert(OOX::Spreadsheet::CTextProperties *txPr);
|
||||
//void convert(OOX::Spreadsheet::CRichText *rich);
|
||||
//void convert(OOX::Spreadsheet::CTextProperties *txPr);
|
||||
void convert(OOX::Spreadsheet::CT_Tx *ct_tx);
|
||||
void convert(OOX::Spreadsheet::CT_Layout *ct_layout);
|
||||
void convert(OOX::Spreadsheet::CT_ManualLayout *ct_layout);
|
||||
|
||||
@ -73,32 +73,32 @@ void OoxConverter::convert(OOX::Spreadsheet::CT_ChartSpace *oox_chart)
|
||||
odf_context()->chart_context()->end_plot_area();
|
||||
}
|
||||
|
||||
void OoxConverter::convert(OOX::Spreadsheet::CRichText* rich)
|
||||
{
|
||||
if (rich == NULL)return;
|
||||
|
||||
odf_context()->chart_context()->start_text();
|
||||
OoxConverter::convert(rich->m_oBodyPr.GetPointer());
|
||||
|
||||
for (size_t i = 0; i < rich->m_arrItems.size();i++)
|
||||
{
|
||||
OoxConverter::convert(rich->m_arrItems[i]);
|
||||
}
|
||||
odf_context()->chart_context()->end_text();
|
||||
}
|
||||
void OoxConverter::convert(OOX::Spreadsheet::CTextProperties* txPr)
|
||||
{
|
||||
if (txPr == NULL)return;
|
||||
|
||||
odf_context()->chart_context()->start_text();
|
||||
OoxConverter::convert(txPr->m_oBodyPr.GetPointer());
|
||||
|
||||
for (size_t i = 0; i < txPr->m_arrItems.size();i++)
|
||||
{
|
||||
OoxConverter::convert(txPr->m_arrItems[i]);
|
||||
}
|
||||
odf_context()->chart_context()->end_text();
|
||||
}
|
||||
//void OoxConverter::convert(OOX::Spreadsheet::CRichText* rich)
|
||||
//{
|
||||
// if (rich == NULL)return;
|
||||
//
|
||||
// odf_context()->chart_context()->start_text();
|
||||
// OoxConverter::convert(rich->m_oBodyPr.GetPointer());
|
||||
//
|
||||
// for (size_t i = 0; i < rich->m_arrItems.size();i++)
|
||||
// {
|
||||
// OoxConverter::convert(rich->m_arrItems[i]);
|
||||
// }
|
||||
// odf_context()->chart_context()->end_text();
|
||||
//}
|
||||
//void OoxConverter::convert(OOX::Spreadsheet::CTextProperties* txPr)
|
||||
//{
|
||||
// if (txPr == NULL)return;
|
||||
//
|
||||
// odf_context()->chart_context()->start_text();
|
||||
// OoxConverter::convert(txPr->m_oBodyPr.GetPointer());
|
||||
//
|
||||
// for (size_t i = 0; i < txPr->m_arrItems.size();i++)
|
||||
// {
|
||||
// OoxConverter::convert(txPr->m_arrItems[i]);
|
||||
// }
|
||||
// odf_context()->chart_context()->end_text();
|
||||
//}
|
||||
void OoxConverter::convert(OOX::Spreadsheet::CT_Tx* ct_tx)
|
||||
{
|
||||
if (ct_tx == NULL)return;
|
||||
|
||||
@ -2074,8 +2074,9 @@ void DocxConverter::convert(OOX::Logic::CRunProperty *oox_run_pr, odf_writer::st
|
||||
}
|
||||
|
||||
bool set_color = false;
|
||||
if (oox_run_pr->m_oGradFill.IsInit())
|
||||
if (oox_run_pr->m_oTextFill.getType() == OOX::et_a_gradFill)
|
||||
{
|
||||
NSCommon::smart_ptr<PPTX::Logic::GradFill> gradFill = oox_run_pr->m_oTextFill.Fill.smart_dynamic_cast<PPTX::Logic::GradFill>();
|
||||
odf_writer::odf_drawing_context *drawing_context = odf_context()->drawing_context();
|
||||
if (drawing_context)
|
||||
{
|
||||
@ -2083,7 +2084,7 @@ void DocxConverter::convert(OOX::Logic::CRunProperty *oox_run_pr, odf_writer::st
|
||||
{
|
||||
odf_context()->drawing_context()->start_area_properties();
|
||||
{
|
||||
OoxConverter::convert(oox_run_pr->m_oGradFill.GetPointer(), NULL);
|
||||
OoxConverter::convert(gradFill.operator->());
|
||||
}
|
||||
odf_context()->drawing_context()->end_area_properties();
|
||||
|
||||
|
||||
@ -64,7 +64,7 @@ XlsxConverter::XlsxConverter(const std::wstring & path, const ProgressCallback*
|
||||
|
||||
pCallBack = CallBack;
|
||||
|
||||
xlsx_current_drawing = NULL;
|
||||
xlsx_current_container = NULL;
|
||||
|
||||
if (UpdateProgress(400000))return;
|
||||
}
|
||||
@ -98,8 +98,8 @@ smart_ptr<OOX::File> XlsxConverter::find_file_by_id(std::wstring sId)
|
||||
{
|
||||
smart_ptr<OOX::File> oFile;
|
||||
|
||||
if (xlsx_current_drawing)
|
||||
oFile = xlsx_current_drawing->Find(sId);
|
||||
if (xlsx_current_container)
|
||||
oFile = xlsx_current_container->Find(sId);
|
||||
else if (oox_current_child_document)
|
||||
oFile = oox_current_child_document->Find(sId);
|
||||
else if (oox_current_child_document_spreadsheet)
|
||||
@ -113,9 +113,9 @@ std::wstring XlsxConverter::find_link_by_id (std::wstring sId, int type)
|
||||
|
||||
if (type == 1)
|
||||
{
|
||||
if (ref.empty() && xlsx_current_drawing)
|
||||
if (ref.empty() && xlsx_current_container)
|
||||
{
|
||||
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(sId);
|
||||
smart_ptr<OOX::File> oFile = xlsx_current_container->Find(sId);
|
||||
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Image == oFile->type())
|
||||
{
|
||||
OOX::Spreadsheet::Image* pImage = (OOX::Spreadsheet::Image*)oFile.operator->();
|
||||
@ -1760,20 +1760,21 @@ void XlsxConverter::convert(OOX::Spreadsheet::CCellAnchor *oox_anchor)
|
||||
{
|
||||
convert(oox_anchor->m_oConnShape.GetPointer());
|
||||
}
|
||||
else if (oox_anchor->m_oGraphicFrame.IsInit())//chart
|
||||
{
|
||||
convert(oox_anchor->m_oGraphicFrame.GetPointer());
|
||||
}
|
||||
else if (oox_anchor->m_oGroupShape.IsInit())//chart
|
||||
else if (oox_anchor->m_oGroupShape.IsInit())
|
||||
{
|
||||
convert(oox_anchor->m_oGroupShape.GetPointer());
|
||||
}
|
||||
}
|
||||
else if (oox_anchor->m_oGraphicFrame.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_anchor->m_oGraphicFrame.GetPointer());
|
||||
}
|
||||
}
|
||||
|
||||
void XlsxConverter::convert(OOX::Spreadsheet::CDrawing *oox_drawing)
|
||||
{
|
||||
if (!oox_drawing)return;
|
||||
xlsx_current_drawing = oox_drawing;
|
||||
|
||||
xlsx_current_container = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(oox_drawing);
|
||||
|
||||
for (unsigned int dr = 0 ; dr < oox_drawing->m_arrItems.size(); dr++)
|
||||
{
|
||||
@ -1782,7 +1783,7 @@ void XlsxConverter::convert(OOX::Spreadsheet::CDrawing *oox_drawing)
|
||||
ods_context->end_drawings();
|
||||
}
|
||||
|
||||
xlsx_current_drawing = NULL;
|
||||
xlsx_current_container = NULL;
|
||||
}
|
||||
|
||||
|
||||
@ -1840,11 +1841,6 @@ void XlsxConverter::convert(OOX::Spreadsheet::CGroupShape* oox_group_shape)
|
||||
OOX::Spreadsheet::CPic* item = static_cast<OOX::Spreadsheet::CPic*>(oox_group_shape->m_arrItems[i]);
|
||||
convert(item);
|
||||
}break;
|
||||
case OOX::Spreadsheet::et_xdr_GraphicFrame:
|
||||
{
|
||||
OOX::Spreadsheet::CGraphicFrame* item = static_cast<OOX::Spreadsheet::CGraphicFrame*>(oox_group_shape->m_arrItems[i]);
|
||||
convert(item);
|
||||
}break;
|
||||
}
|
||||
}
|
||||
ods_context->drawing_context()->end_group();
|
||||
@ -1913,64 +1909,6 @@ void XlsxConverter::convert(OOX::Spreadsheet::CShape* oox_shape)
|
||||
|
||||
}
|
||||
|
||||
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicFrame* oox_graphic_frame)
|
||||
{
|
||||
if (!oox_graphic_frame)return;
|
||||
|
||||
if (!oox_graphic_frame->m_oGraphic.IsInit()) return;
|
||||
if (!oox_graphic_frame->m_oGraphic->m_oGraphicData.IsInit()) return;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
ods_context->drawing_context()->start_drawing();
|
||||
|
||||
if (oox_graphic_frame->m_oNvGraphicFramePr.IsInit())
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->m_oNvGraphicFramePr->m_oCNvPr.GetPointer());
|
||||
}
|
||||
|
||||
if ( OOX::Drawing::graphictypeChart == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
|
||||
{
|
||||
convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oChart.GetPointer());
|
||||
}
|
||||
else if ( OOX::Drawing::graphictypeDiagram == oox_graphic_frame->m_oGraphic->m_oGraphicData->m_eGraphicType)
|
||||
{
|
||||
OoxConverter::convert(oox_graphic_frame->m_oGraphic->m_oGraphicData->m_oDiagrammParts.GetPointer());
|
||||
}
|
||||
ods_context->drawing_context()->end_drawing();
|
||||
}
|
||||
|
||||
void XlsxConverter::convert(OOX::Spreadsheet::CGraphicChart *oox_chart)
|
||||
{
|
||||
if (!oox_chart) return;
|
||||
if( !oox_chart->m_oRId.IsInit()) return;
|
||||
|
||||
_CP_OPT(double) width, height;
|
||||
odf_context()->drawing_context()->get_size (width, height);
|
||||
|
||||
smart_ptr<OOX::File> oFile = xlsx_current_drawing->Find(oox_chart->m_oRId->GetValue());
|
||||
if (oFile.IsInit() && OOX::Spreadsheet::FileTypes::Charts == oFile->type())
|
||||
{
|
||||
OOX::Spreadsheet::CChartSpace* pChart = (OOX::Spreadsheet::CChartSpace*)oFile.operator->();
|
||||
|
||||
if (pChart)
|
||||
{
|
||||
oox_current_child_document_spreadsheet = dynamic_cast<OOX::Spreadsheet::IFileContainer*>(pChart);
|
||||
odf_context()->drawing_context()->start_object(ods_context->get_next_name_object());
|
||||
{
|
||||
odf_context()->start_chart();
|
||||
odf_context()->chart_context()->set_chart_size(width, height);
|
||||
|
||||
OoxConverter::convert(pChart->m_oChartSpace.m_oSpPr.GetPointer());
|
||||
|
||||
OoxConverter::convert(&pChart->m_oChartSpace);
|
||||
odf_context()->end_chart();
|
||||
}
|
||||
odf_context()->drawing_context()->end_object();
|
||||
oox_current_child_document_spreadsheet = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void XlsxConverter::convert(OOX::Spreadsheet::CConnShape* oox_shape)
|
||||
{
|
||||
if (!oox_shape)return;
|
||||
|
||||
@ -144,7 +144,7 @@ namespace Oox2Odf
|
||||
void convert(OOX::Spreadsheet::WritingElement *oox_unknown);
|
||||
private:
|
||||
OOX::Spreadsheet::CXlsx *xlsx_document;
|
||||
OOX::Spreadsheet::CDrawing *xlsx_current_drawing; //пока сюда .. потом покрасивше, для внешних ссылок
|
||||
OOX::Spreadsheet::IFileContainer *xlsx_current_container;
|
||||
|
||||
odf_writer::ods_conversion_context *ods_context;
|
||||
|
||||
@ -199,9 +199,7 @@ namespace Oox2Odf
|
||||
void convert(OOX::Spreadsheet::CPic *oox_picture);
|
||||
void convert(OOX::Spreadsheet::CShape *oox_shape);
|
||||
void convert(OOX::Spreadsheet::CConnShape *oox_conn_shape);
|
||||
void convert(OOX::Spreadsheet::CGraphicFrame *oox_graphic_frame);
|
||||
void convert(OOX::Spreadsheet::CGroupShape *oox_group_shape);
|
||||
void convert(OOX::Spreadsheet::CGraphicChart *oox_chart);
|
||||
|
||||
void convert(OOX::Spreadsheet::CConditionalFormatting *oox_cond_fmt);
|
||||
void convert(OOX::Spreadsheet::CConditionalFormattingRule *oox_cond_rule);
|
||||
|
||||
@ -668,27 +668,27 @@ void NSPresentationEditor::CPPTXWriter::WriteColorScheme(CStringWriter& oStringW
|
||||
|
||||
oStringWriter.WriteString(L"<a:dk1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[14].GetLONG_RGB(), L"%06X") + L"\"/></a:dk1>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:lt1><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[13].GetLONG_RGB(), L"%06X") + L"\"/></a:lt1>");
|
||||
oStringWriter.WriteString(L"<a:lt1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[13].GetLONG_RGB(), L"%06X") + L"\"/></a:lt1>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:dk2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[16].GetLONG_RGB(), L"%06X") + L"\"/></a:dk2>");
|
||||
oStringWriter.WriteString(L"<a:dk2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[16].GetLONG_RGB(), L"%06X") + L"\"/></a:dk2>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:lt2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[15].GetLONG_RGB(), L"%06X") + L"\"/></a:lt2>");
|
||||
oStringWriter.WriteString(L"<a:lt2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[15].GetLONG_RGB(), L"%06X") + L"\"/></a:lt2>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent1><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[5].GetLONG_RGB(), L"%06X") + L"\"/></a:accent1>");
|
||||
oStringWriter.WriteString(L"<a:accent1><a:srgbClr val=\"" + XmlUtils::IntToString(colors[5].GetLONG_RGB(), L"%06X") + L"\"/></a:accent1>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent2><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[6].GetLONG_RGB(), L"%06X") + L"\"/></a:accent2>");
|
||||
oStringWriter.WriteString(L"<a:accent2><a:srgbClr val=\"" + XmlUtils::IntToString(colors[6].GetLONG_RGB(), L"%06X") + L"\"/></a:accent2>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent3><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[7].GetLONG_RGB(), L"%06X") + L"\"/></a:accent3>");
|
||||
oStringWriter.WriteString(L"<a:accent3><a:srgbClr val=\"" + XmlUtils::IntToString(colors[7].GetLONG_RGB(), L"%06X") + L"\"/></a:accent3>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent4><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[8].GetLONG_RGB(), L"%06X") + L"\"/></a:accent4>");
|
||||
oStringWriter.WriteString(L"<a:accent4><a:srgbClr val=\"" + XmlUtils::IntToString(colors[8].GetLONG_RGB(), L"%06X") + L"\"/></a:accent4>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent5><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[9].GetLONG_RGB(), L"%06X") + L"\"/></a:accent5>");
|
||||
oStringWriter.WriteString(L"<a:accent5><a:srgbClr val=\"" + XmlUtils::IntToString(colors[9].GetLONG_RGB(), L"%06X") + L"\"/></a:accent5>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:accent6><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[10].GetLONG_RGB(), L"%06X") + L"\"/></a:accent6>");
|
||||
oStringWriter.WriteString(L"<a:accent6><a:srgbClr val=\"" + XmlUtils::IntToString(colors[10].GetLONG_RGB(), L"%06X") + L"\"/></a:accent6>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:hlink><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[11].GetLONG_RGB(), L"%06X") + L"\"/></a:hlink>");
|
||||
oStringWriter.WriteString(L"<a:hlink><a:srgbClr val=\"" + XmlUtils::IntToString(colors[11].GetLONG_RGB(), L"%06X") + L"\"/></a:hlink>");
|
||||
|
||||
oStringWriter.WriteString(L"<a:folHlink><a:srgbClr val=\"%" + XmlUtils::IntToString(colors[12].GetLONG_RGB(), L"%06X") + L"\"/></a:folHlink>");
|
||||
oStringWriter.WriteString(L"<a:folHlink><a:srgbClr val=\"" + XmlUtils::IntToString(colors[12].GetLONG_RGB(), L"%06X") + L"\"/></a:folHlink>");
|
||||
|
||||
oStringWriter.WriteString(L"</a:clrScheme>");
|
||||
if (extra)
|
||||
|
||||
@ -124,10 +124,9 @@ static void GetColorWithEffect(const std::wstring& sColor, const int& R, const i
|
||||
}
|
||||
else if (0 == sColor.find(L"blackwhite"))
|
||||
{
|
||||
int nparam = (int)nparam;
|
||||
resR = (R < nparam) ? 0 : 255;
|
||||
resG = (G < nparam) ? 0 : 255;
|
||||
resB = (B < nparam) ? 0 : 255;
|
||||
resR = (R < (int)param) ? 0 : 255;
|
||||
resG = (G < (int)param) ? 0 : 255;
|
||||
resB = (B < (int)param) ? 0 : 255;
|
||||
isEffect = true;
|
||||
}
|
||||
|
||||
@ -148,7 +147,7 @@ namespace NS_DWC_Common
|
||||
{
|
||||
void CorrentCropString(std::wstring& s)
|
||||
{
|
||||
int nLen = s.length();
|
||||
size_t nLen = s.length();
|
||||
if (nLen > 0 && (s[nLen - 1] == ((wchar_t)'f')))
|
||||
{
|
||||
s.erase(nLen - 1);
|
||||
@ -280,7 +279,7 @@ namespace NS_DWC_Common
|
||||
{
|
||||
std::wstring str;
|
||||
|
||||
int pos = colorStr.find(' ');
|
||||
int pos = (int)colorStr.find(' ');
|
||||
if( pos < 0 )
|
||||
str = colorStr;
|
||||
else
|
||||
@ -544,7 +543,7 @@ namespace PPTX
|
||||
{
|
||||
// здесь не будем плодить тормозов - напишем без всяких Mid, Find, чтобы был только один проход
|
||||
wchar_t* pData = (wchar_t*)strParams.c_str();
|
||||
int nCount = strParams.length();
|
||||
int nCount = (int) strParams.length();
|
||||
|
||||
int nPosition = 0;
|
||||
wchar_t* pDataMem = pData;
|
||||
@ -598,7 +597,7 @@ namespace PPTX
|
||||
|
||||
// здесь не будем плодить тормозов - напишем без всяких Mid, Find, чтобы был только один проход
|
||||
wchar_t* pData = (wchar_t*)strParams.c_str();
|
||||
int nCount = strParams.length();
|
||||
int nCount = (int) strParams.length();
|
||||
|
||||
int nPosition = 0;
|
||||
wchar_t* pDataMem = pData;
|
||||
@ -677,7 +676,7 @@ namespace PPTX
|
||||
|
||||
// здесь не будем плодить тормозов - напишем без всяких Mid, Find, чтобы был только один проход
|
||||
wchar_t* pData = (wchar_t*)strParams.c_str();
|
||||
int nCount = strParams.length();
|
||||
int nCount = (int) strParams.length();
|
||||
|
||||
int nPosition = 0;
|
||||
wchar_t* pDataMem = pData;
|
||||
@ -754,7 +753,7 @@ namespace PPTX
|
||||
Clear();
|
||||
|
||||
wchar_t* pData = (wchar_t*)strParams.c_str();
|
||||
int nCount = strParams.length();
|
||||
int nCount = (int) strParams.length();
|
||||
|
||||
int nPosition = 0;
|
||||
int nPositionOld = 0;
|
||||
@ -1088,12 +1087,6 @@ PPTX::Logic::SpTreeElem CDrawingConverter::ObjectFromXml(const std::wstring& sXm
|
||||
std::wstring strVMLShapeXml = GetVMLShapeXml(oElem);
|
||||
#endif
|
||||
}
|
||||
|
||||
if (strCurrentRelsPath != m_strCurrentRelsPath)
|
||||
{
|
||||
m_strCurrentRelsPath = strCurrentRelsPath;
|
||||
SetCurrentRelsPath();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1318,7 +1311,7 @@ std::wstring CDrawingConverter::ObjectToDrawingML(const std::wstring& sXml, LONG
|
||||
std::wstring strMainProps = *pMainProps;
|
||||
std::wstring strMainPropsTail;
|
||||
|
||||
int nIndexF = strMainProps.find(L"</wp:inline>");
|
||||
int nIndexF = (int)strMainProps.find(L"</wp:inline>");
|
||||
if (-1 != nIndexF)
|
||||
{
|
||||
bIsInline = true;
|
||||
@ -1326,7 +1319,7 @@ std::wstring CDrawingConverter::ObjectToDrawingML(const std::wstring& sXml, LONG
|
||||
}
|
||||
else
|
||||
{
|
||||
nIndexF = strMainProps.find(L"</wp:anchor>");
|
||||
nIndexF = (int)strMainProps.find(L"</wp:anchor>");
|
||||
strMainProps = strMainProps.substr(0, nIndexF);
|
||||
}
|
||||
|
||||
@ -1336,7 +1329,7 @@ std::wstring CDrawingConverter::ObjectToDrawingML(const std::wstring& sXml, LONG
|
||||
return oXmlWriter.GetXmlString();
|
||||
}
|
||||
|
||||
int nIndexTail = strMainProps.find(L"<wp14:sizeRel");
|
||||
int nIndexTail = (int)strMainProps.find(L"<wp14:sizeRel");
|
||||
if(-1 != nIndexTail)
|
||||
{
|
||||
strMainPropsTail = strMainProps.substr( nIndexTail );
|
||||
@ -1791,7 +1784,7 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
|
||||
pDiagramData = dynamic_cast<OOX::CDiagramData*>(oFileData.operator->());
|
||||
if (pDiagramData)
|
||||
{
|
||||
for (int i = 0; (pDiagramData->m_oExtLst.IsInit()) && i < pDiagramData->m_oExtLst->m_arrExt.size(); i++)
|
||||
for (size_t i = 0; (pDiagramData->m_oExtLst.IsInit()) && i < pDiagramData->m_oExtLst->m_arrExt.size(); i++)
|
||||
{
|
||||
if (pDiagramData->m_oExtLst->m_arrExt[i]->m_oDataModelExt.IsInit())
|
||||
{
|
||||
@ -1810,7 +1803,7 @@ void CDrawingConverter::doc_LoadDiagram(PPTX::Logic::SpTreeElem *result, XmlUtil
|
||||
{
|
||||
OOX::CPath pathDiagramData = pDiagramData->m_strFilename;
|
||||
|
||||
int a1 = pathDiagramData.GetFilename().find(L".");
|
||||
int a1 = (int)pathDiagramData.GetFilename().find(L".");
|
||||
std::wstring strId = pathDiagramData.GetFilename().substr(4, pathDiagramData.GetFilename().length() - 8);
|
||||
|
||||
OOX::CPath pathDiagramDrawing = pathDiagramData.GetDirectory() + FILE_SEPARATOR_STR + L"drawing" + strId + L".xml";
|
||||
@ -1957,7 +1950,7 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
std::vector<std::wstring> oArray;
|
||||
boost::algorithm::split(oArray, strPoints, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
|
||||
int nSize = oArray.size();
|
||||
int nSize = (int)oArray.size();
|
||||
if ((nSize % 2 == 0) && nSize > 3)
|
||||
{
|
||||
int* _POINTS = new int[nSize];
|
||||
@ -2252,9 +2245,9 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
|
||||
int pos1 = 0, pos2 = 0;
|
||||
|
||||
while(pos1 < tmpString.length() && pos2 < tmpString.length())
|
||||
while(pos1 < (int)tmpString.length() && pos2 < (int)tmpString.length())
|
||||
{
|
||||
pos2 = tmpString.find(L"\n", pos1);
|
||||
pos2 = (int)tmpString.find(L"\n", pos1);
|
||||
if (pos2 > 0)
|
||||
{
|
||||
wordArtString.push_back(tmpString.substr(pos1, pos2 - pos1));
|
||||
@ -2422,9 +2415,9 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
std::vector<std::wstring> arSplit;
|
||||
boost::algorithm::split(arSplit, strColors, boost::algorithm::is_any_of(L";"), boost::algorithm::token_compress_on);
|
||||
|
||||
for (int i = 0 ; i < arSplit.size(); i++)
|
||||
for (size_t i = 0 ; i < arSplit.size(); i++)
|
||||
{
|
||||
int p = arSplit[i].find(L" ");
|
||||
int p = (int)arSplit[i].find(L" ");
|
||||
|
||||
std::wstring strPos = resToken.substr(0, p);
|
||||
std::wstring strColor = resToken.substr(p + 1);
|
||||
@ -2511,9 +2504,9 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
else if (eFillType == etGradFill)
|
||||
{
|
||||
strRPr += L"<w14:gradFill><w14:gsLst>";
|
||||
int nSize = arColors.size();
|
||||
bool bRevert = false;
|
||||
int nColorsLen = arColors.size();
|
||||
int nSize = (int)arColors.size();
|
||||
bool bRevert = false;
|
||||
int nColorsLen = (int)arColors.size();
|
||||
|
||||
int nDiff = nSize - 1;
|
||||
if (nFocus != 1 && nFocus != 0)
|
||||
@ -2553,7 +2546,7 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
if (nAngle != 90)
|
||||
dNewZero *= -1;
|
||||
|
||||
for (int i = 0; i < nColorsLen-1; i++)
|
||||
for (int i = 0; i < nColorsLen - 1; i++)
|
||||
{
|
||||
arColorsNew.push_back(arColors.at(i));
|
||||
|
||||
@ -2562,9 +2555,9 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
}
|
||||
|
||||
arColorsNew.push_back(arColors.at(nColorsLen - 1));
|
||||
arPosNew.push_back(dNewZero);
|
||||
arPosNew.push_back((int)dNewZero);
|
||||
|
||||
for (int i = nColorsLen-2; i >= 0; i--)
|
||||
for (int i = nColorsLen - 2; i >= 0; i--)
|
||||
{
|
||||
arColorsNew.push_back(arColors.at(i));
|
||||
|
||||
@ -2592,7 +2585,7 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
}
|
||||
}
|
||||
|
||||
for (int i = 0; i < arColorsNew.size(); i++)
|
||||
for (size_t i = 0; i < arColorsNew.size(); i++)
|
||||
{
|
||||
int pos = arPosNew.at(i);
|
||||
std::wstring color = arColorsNew.at(i)->toXML();
|
||||
@ -2622,7 +2615,7 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
if (sStrokeWeight.is_init())
|
||||
{
|
||||
std::wstring strW(*sStrokeWeight);
|
||||
int p = strW.find(L"pt");
|
||||
int p = (int)strW.find(L"pt");
|
||||
if (p >= 0)
|
||||
strW.erase(p);
|
||||
|
||||
@ -2761,7 +2754,11 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
{
|
||||
if (pShape->txBody.IsInit() == false)
|
||||
pShape->txBody = new PPTX::Logic::TxBody();
|
||||
pShape->txBody->bodyPr.vert = pShape->TextBoxBodyPr->vert;
|
||||
|
||||
if (!pShape->txBody->bodyPr.IsInit())
|
||||
pShape->txBody->bodyPr = new PPTX::Logic::BodyPr();
|
||||
|
||||
pShape->txBody->bodyPr->vert = pShape->TextBoxBodyPr->vert;
|
||||
}
|
||||
|
||||
pPair = oCSSParser.m_mapSettings.find(L"mso-rotate");
|
||||
@ -2772,7 +2769,11 @@ void CDrawingConverter::doc_LoadShape(PPTX::Logic::SpTreeElem *elem, XmlUtils::C
|
||||
pShape->TextBoxBodyPr->rot = _wtoi(pPair->second.c_str()) * 60000; //для docx, xlsx
|
||||
if (pShape->txBody.IsInit() == false) //для pptx
|
||||
pShape->txBody = new PPTX::Logic::TxBody();
|
||||
pShape->txBody->bodyPr.rot = pShape->TextBoxBodyPr->rot;
|
||||
|
||||
if (!pShape->txBody->bodyPr.IsInit())
|
||||
pShape->txBody->bodyPr = new PPTX::Logic::BodyPr();
|
||||
|
||||
pShape->txBody->bodyPr->rot = pShape->TextBoxBodyPr->rot;
|
||||
}catch(...){}
|
||||
}
|
||||
|
||||
@ -2961,12 +2962,10 @@ void CDrawingConverter::doc_LoadGroup(PPTX::Logic::SpTreeElem *result, XmlUtils:
|
||||
{
|
||||
if (!result) return;
|
||||
|
||||
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree();
|
||||
PPTX::Logic::SpTree* pTree = new PPTX::Logic::SpTree(L"wp");
|
||||
|
||||
if (bIsTop)
|
||||
pTree->m_name = L"wpg:wgp";
|
||||
else
|
||||
pTree->m_name = L"wpg:grpSp";
|
||||
if (bIsTop) pTree->m_lGroupIndex = 0;
|
||||
else pTree->m_lGroupIndex = 1;
|
||||
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (oNode.GetNodes(L"*", oNodes))
|
||||
@ -3419,7 +3418,7 @@ std::wstring CDrawingConverter::GetDrawingMainProps(XmlUtils::CXmlNode& oNode, P
|
||||
std::vector<std::wstring> arPoints;
|
||||
boost::algorithm::split(arPoints, strWrapPoints, boost::algorithm::is_any_of(L","), boost::algorithm::token_compress_on);
|
||||
|
||||
int nCountP = arPoints.size();
|
||||
int nCountP = (int)arPoints.size();
|
||||
if (nCountP > 1 && ((nCountP % 2) == 0))
|
||||
{
|
||||
strWrapPointsResult = L"<wp:wrapPolygon edited=\"1\">";
|
||||
@ -3701,7 +3700,7 @@ std::wstring CDrawingConverter::GetVMLShapeXml(CPPTShape* pPPTShape)
|
||||
strCoordSize = std::to_wstring(lCoordW) + L"," + std::to_wstring(lCoordH);
|
||||
oXmlWriter.WriteAttribute(L"coordsize", strCoordSize);
|
||||
|
||||
int nAdjCount = pPPTShape->m_arAdjustments.size();
|
||||
int nAdjCount = (int)pPPTShape->m_arAdjustments.size();
|
||||
if (nAdjCount > 0)
|
||||
{
|
||||
oXmlWriter.WriteString(L" adj=\"");
|
||||
@ -3726,7 +3725,7 @@ std::wstring CDrawingConverter::GetVMLShapeXml(CPPTShape* pPPTShape)
|
||||
oXmlWriter.EndAttributes();
|
||||
|
||||
std::vector<CFormula>& arGuides = pPPTShape->m_oManager.m_arFormulas;
|
||||
int nGuides = arGuides.size();
|
||||
int nGuides = (int)arGuides.size();
|
||||
if (nGuides != 0)
|
||||
{
|
||||
oXmlWriter.StartNode(L"v:formulas");
|
||||
@ -3820,7 +3819,7 @@ std::wstring CDrawingConverter::GetVMLShapeXml(CPPTShape* pPPTShape)
|
||||
oXmlWriter.WriteString(L"\"/>");
|
||||
}
|
||||
|
||||
int nHandles = pPPTShape->m_arHandles.size();
|
||||
int nHandles = (int)pPPTShape->m_arHandles.size();
|
||||
if (0 < nHandles)
|
||||
{
|
||||
oXmlWriter.StartNode(L"v:handles");
|
||||
@ -4603,7 +4602,7 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
|
||||
bool bIsInline = false;
|
||||
std::wstring strMainProps = bsMainProps;
|
||||
std::wstring strMainPropsTail;
|
||||
int nIndexF = strMainProps.find(L"</wp:inline>");
|
||||
int nIndexF = (int)strMainProps.find(L"</wp:inline>");
|
||||
if (-1 != nIndexF)
|
||||
{
|
||||
bIsInline = true;
|
||||
@ -4611,14 +4610,14 @@ HRESULT CDrawingConverter::SaveObject(LONG lStart, LONG lLength, const std::wstr
|
||||
}
|
||||
else
|
||||
{
|
||||
nIndexF = strMainProps.find(L"</wp:anchor>");
|
||||
nIndexF = (int)strMainProps.find(L"</wp:anchor>");
|
||||
strMainProps = strMainProps.substr(0, nIndexF);
|
||||
}
|
||||
|
||||
if (-1 == nIndexF)
|
||||
return S_FALSE;
|
||||
|
||||
int nIndexTail = strMainProps.find(L"<wp14:sizeRel");
|
||||
int nIndexTail = (int)strMainProps.find(L"<wp14:sizeRel");
|
||||
if(-1 != nIndexTail)
|
||||
{
|
||||
strMainPropsTail = strMainProps.substr( nIndexTail );
|
||||
@ -4840,6 +4839,8 @@ HRESULT CDrawingConverter::SaveObjectEx(LONG lStart, LONG lLength, const std::ws
|
||||
}
|
||||
std::wstring CDrawingConverter::SaveObjectBackground(LONG lStart, LONG lLength)
|
||||
{
|
||||
if (lLength < 1) return L"";
|
||||
|
||||
m_pReader->Seek(lStart);
|
||||
|
||||
++m_nCurrentIndexObject;
|
||||
@ -4943,7 +4944,7 @@ void CDrawingConverter::ConvertTextVML(XmlUtils::CXmlNode &nodeTextBox, PPTX::Lo
|
||||
{
|
||||
run->rPr = new PPTX::Logic::RunProperties();
|
||||
|
||||
for (long r = 0; r < attNames.size(); r++)
|
||||
for (size_t r = 0; r < attNames.size(); r++)
|
||||
{
|
||||
if (attNames[r] == L"color" && attValues[r].length() == 7)
|
||||
{
|
||||
@ -5217,45 +5218,45 @@ void CDrawingConverter::ConvertMainPropsToVML(const std::wstring& bsMainProps, N
|
||||
pWriter.m_strStyleMain = oWriter.GetXmlString();
|
||||
}
|
||||
|
||||
HRESULT CDrawingConverter::GetTxBodyBinary(const std::wstring& bsXml)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
if (!oNode.FromXmlString((std::wstring)bsXml))
|
||||
return S_FALSE;
|
||||
|
||||
PPTX::Logic::TxBody oTxBody(oNode);
|
||||
//HRESULT CDrawingConverter::GetTxBodyBinary(const std::wstring& bsXml)
|
||||
//{
|
||||
// XmlUtils::CXmlNode oNode;
|
||||
// if (!oNode.FromXmlString((std::wstring)bsXml))
|
||||
// return S_FALSE;
|
||||
//
|
||||
// PPTX::Logic::TxBody oTxBody(oNode);
|
||||
//
|
||||
// //m_pBinaryWriter->ClearNoAttack();
|
||||
// //ULONG lOldPos = m_pBinaryWriter->GetPosition();
|
||||
// m_pBinaryWriter->m_pCommon->CheckFontPicker();
|
||||
// //m_pBinaryWriter->m_pCommon->m_pNativePicker->Init(m_strFontDirectory);
|
||||
//
|
||||
// m_pBinaryWriter->WriteRecord1(0, oTxBody);
|
||||
//
|
||||
// //m_pBinaryWriter->SetPosition(lOldPos);
|
||||
//
|
||||
// //m_pBinaryWriter->ClearNoAttack();
|
||||
// return S_OK;
|
||||
//}
|
||||
|
||||
//m_pBinaryWriter->ClearNoAttack();
|
||||
//ULONG lOldPos = m_pBinaryWriter->GetPosition();
|
||||
m_pBinaryWriter->m_pCommon->CheckFontPicker();
|
||||
//m_pBinaryWriter->m_pCommon->m_pNativePicker->Init(m_strFontDirectory);
|
||||
|
||||
m_pBinaryWriter->WriteRecord1(0, oTxBody);
|
||||
|
||||
//m_pBinaryWriter->SetPosition(lOldPos);
|
||||
|
||||
//m_pBinaryWriter->ClearNoAttack();
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
HRESULT CDrawingConverter::GetTxBodyXml(LONG lStart, std::wstring& sXml)
|
||||
{
|
||||
m_pReader->Seek(lStart);
|
||||
|
||||
BYTE type = m_pReader->GetUChar();
|
||||
if (0 != type)
|
||||
return S_FALSE;
|
||||
|
||||
PPTX::Logic::TxBody oTxBody;
|
||||
oTxBody.fromPPTY(m_pReader);
|
||||
|
||||
NSBinPptxRW::CXmlWriter oWriter;
|
||||
oTxBody.toXmlWriterExcel(&oWriter);
|
||||
|
||||
sXml = oWriter.GetXmlString();
|
||||
|
||||
return S_OK;
|
||||
}
|
||||
//HRESULT CDrawingConverter::GetTxBodyXml(LONG lStart, std::wstring& sXml)
|
||||
//{
|
||||
// m_pReader->Seek(lStart);
|
||||
//
|
||||
// BYTE type = m_pReader->GetUChar();
|
||||
// if (0 != type)
|
||||
// return S_FALSE;
|
||||
//
|
||||
// PPTX::Logic::TxBody oTxBody;
|
||||
// oTxBody.fromPPTY(m_pReader);
|
||||
//
|
||||
// NSBinPptxRW::CXmlWriter oWriter;
|
||||
// oTxBody.toXmlWriterExcel(&oWriter);
|
||||
//
|
||||
// sXml = oWriter.GetXmlString();
|
||||
//
|
||||
// return S_OK;
|
||||
//}
|
||||
|
||||
HRESULT CDrawingConverter::SetFontDir(const std::wstring& bsFontDir)
|
||||
{
|
||||
@ -5465,7 +5466,7 @@ HRESULT CDrawingConverter::SaveDstContentRels(const std::wstring& bsRelsPath)
|
||||
|
||||
//if (-1 != m_pReader->m_nCurrentRelsStack)
|
||||
{
|
||||
int nIndex = m_pReader->m_stackRels.size() - 1;
|
||||
int nIndex = (int)m_pReader->m_stackRels.size() - 1;
|
||||
|
||||
if (0 <= nIndex)
|
||||
{
|
||||
|
||||
@ -236,8 +236,6 @@ namespace NSBinPptxRW
|
||||
HRESULT WriteRels (const std::wstring& sType, const std::wstring& sTarget, const std::wstring& sTargetMode, long* lId);
|
||||
HRESULT LoadClrMap (const std::wstring& sXml);
|
||||
|
||||
HRESULT(GetTxBodyBinary) (const std::wstring& sXml);
|
||||
HRESULT(GetTxBodyXml) (long lStart, std::wstring & Xml);
|
||||
HRESULT(SetFontDir) (const std::wstring& sFontDir);
|
||||
|
||||
HRESULT SetFontPicker (COfficeFontPicker* pFontPicker);
|
||||
|
||||
@ -134,7 +134,7 @@ namespace NSGuidesVML
|
||||
void ConvertHandles (std::vector<CHandle_>& arHnd)
|
||||
{
|
||||
|
||||
for (int nIndex=0; nIndex<arHnd.size(); nIndex++)
|
||||
for (size_t nIndex=0; nIndex<arHnd.size(); nIndex++)
|
||||
{
|
||||
CHandle_ oHandle;
|
||||
//TODO переименовать названия формул и прокинуть текстовые атрибуты topleft, rightbottom в полях хендла
|
||||
@ -399,7 +399,7 @@ namespace NSGuidesVML
|
||||
void ConvertGuides ( std::vector<NSGuidesOOXML::CFormula> &strGuides, std::map<std::wstring, long> &mapGuides )
|
||||
{
|
||||
//стандартные формулы для пптх будем добавлять, если только они встретятся
|
||||
for (int nIndex=32; nIndex < strGuides.size(); ++nIndex)
|
||||
for (size_t nIndex=32; nIndex < strGuides.size(); ++nIndex)
|
||||
{
|
||||
NSGuidesOOXML::CFormula pFormula = strGuides[nIndex];
|
||||
|
||||
|
||||
@ -260,7 +260,7 @@ namespace NSBinPptxRW
|
||||
m_oReader.Seek(pPair->second);
|
||||
m_oReader.Skip(6); // type + len + start attr
|
||||
|
||||
int index =0;
|
||||
size_t index =0;
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = m_oReader.GetUChar_TypeNode();
|
||||
@ -1066,7 +1066,7 @@ namespace NSBinPptxRW
|
||||
xfrm->chOffY = 0;
|
||||
xfrm->chExtX = 0;
|
||||
xfrm->chExtY = 0;
|
||||
m_oDefaultNote.cSld.spTree.m_name = _T("p:spTree");
|
||||
|
||||
m_oDefaultNote.cSld.spTree.grpSpPr.xfrm = xfrm;
|
||||
|
||||
// shape comment !!! (TODO:)
|
||||
@ -1090,6 +1090,11 @@ namespace NSBinPptxRW
|
||||
pTxRun->SetText(_T("")); // enter simple comment here
|
||||
|
||||
pShape->txBody = pTxBody;
|
||||
if (pShape->txBody.IsInit())
|
||||
{
|
||||
if (!pShape->txBody->bodyPr.IsInit())
|
||||
pShape->txBody->bodyPr = new PPTX::Logic::BodyPr;
|
||||
}
|
||||
|
||||
PPTX::Logic::RunElem elm;
|
||||
pTxBody->Paragrs[0].RunElems.push_back(elm);
|
||||
|
||||
@ -73,9 +73,9 @@ namespace PPTX
|
||||
{
|
||||
directory = directory.substr(0, pos_ppt - 1); //root directory
|
||||
}
|
||||
CArray<std::wstring> arrFiles = NSDirectory::GetFiles(directory, true);
|
||||
std::vector<std::wstring> arrFiles = NSDirectory::GetFiles(directory, true);
|
||||
|
||||
for (int i = 0 ; i < arrFiles.GetCount(); i++)
|
||||
for (size_t i = 0 ; i < arrFiles.size(); i++)
|
||||
{
|
||||
if (std::wstring::npos != arrFiles[i].find(filename))
|
||||
{
|
||||
@ -110,6 +110,8 @@ namespace PPTX
|
||||
|
||||
OOX::CPath FileContainer::CorrectPathRels(const OOX::CPath& path, OOX::Rels::CRelationShip* relation )
|
||||
{
|
||||
if (relation->IsExternal()) return relation->Target();
|
||||
|
||||
OOX::CPath filename = path / relation->Target();
|
||||
|
||||
if ( NSFile::CFileBinary::Exists(filename.GetPath()) == true ) return filename;
|
||||
|
||||
@ -146,10 +146,11 @@ namespace PPTX
|
||||
{
|
||||
bool bIsDownload = false;
|
||||
std::wstring strFile = relation.Filename().GetPath();
|
||||
int n1 = strFile.find(_T("www"));
|
||||
int n2 = strFile.find(_T("http"));
|
||||
int n3 = strFile.find(_T("ftp"));
|
||||
int n4 = strFile.find(_T("https://"));
|
||||
|
||||
int n1 = (int)strFile.find(_T("www"));
|
||||
int n2 = (int)strFile.find(_T("http"));
|
||||
int n3 = (int)strFile.find(_T("ftp"));
|
||||
int n4 = (int)strFile.find(_T("https://"));
|
||||
|
||||
//если nI сранивать не с 0, то будут проблемы
|
||||
//потому что в инсталяции мы кладем файлы в /var/www...
|
||||
|
||||
@ -63,7 +63,7 @@ namespace PPTX
|
||||
long files = CountFiles(path);
|
||||
if(files == 0)
|
||||
return;
|
||||
m_lPercent = floor(1000000. / files);
|
||||
m_lPercent = (long)floor(1000000. / files);
|
||||
FileContainer::read(rels, path, map, Event);
|
||||
|
||||
long percent = Event->GetPercent();
|
||||
|
||||
@ -45,9 +45,15 @@ namespace PPTX
|
||||
class AhBase : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AhBase)
|
||||
WritingElement_AdditionConstructors(AhBase)
|
||||
PPTX_LOGIC_BASE2(AhBase)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
if (ah.IsInit())
|
||||
return ah->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
@ -58,7 +64,16 @@ namespace PPTX
|
||||
ah.reset(new Logic::AhPolar(node));
|
||||
else ah.reset();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (sName == L"ahXY")
|
||||
ah.reset(new Logic::AhXY(oReader));
|
||||
else if(sName == L"ahPolar")
|
||||
ah.reset(new Logic::AhPolar(oReader));
|
||||
else ah.reset();
|
||||
}
|
||||
virtual void GetAdjustHandleFrom(XmlUtils::CXmlNode& element)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
|
||||
@ -43,9 +43,9 @@ namespace PPTX
|
||||
class AhPolar : public Ah
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AhPolar)
|
||||
WritingElement_AdditionConstructors(AhPolar)
|
||||
PPTX_LOGIC_BASE2(AhPolar)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oPos = node.ReadNode(_T("a:pos"));
|
||||
@ -60,7 +60,46 @@ namespace PPTX
|
||||
node.ReadAttributeBase(L"minAng", minAng);
|
||||
node.ReadAttributeBase(L"minR", minR);
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_ahPolar;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
if (sName == L"a:pos")
|
||||
{
|
||||
ReadAttributes2(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("gdRefR"), gdRefR )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("minR"), minR )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("maxR"), maxR )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("gdRefAng"), gdRefAng )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("minAng"), minAng )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("maxAng"), maxAng )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes2(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("x"), x )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("y"), y )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr1;
|
||||
|
||||
@ -43,9 +43,9 @@ namespace PPTX
|
||||
class AhXY : public Ah
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AhXY)
|
||||
WritingElement_AdditionConstructors(AhXY)
|
||||
PPTX_LOGIC_BASE2(AhXY)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oPos = node.ReadNode(_T("a:pos"));
|
||||
@ -60,7 +60,46 @@ namespace PPTX
|
||||
node.ReadAttributeBase(L"minX", minX);
|
||||
node.ReadAttributeBase(L"minY", minY);
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_ahXY;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
if (sName == L"a:pos")
|
||||
{
|
||||
ReadAttributes2(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("gdRefX"), gdRefX )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("minX"), minX )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("maxX"), maxX )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("gdRefY"), gdRefY )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("minY"), minY )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("maxY"), maxY )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes2(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("x"), x )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("y"), y )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr1;
|
||||
|
||||
@ -43,9 +43,60 @@ namespace PPTX
|
||||
class Backdrop : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Backdrop)
|
||||
WritingElement_AdditionConstructors(Backdrop)
|
||||
PPTX_LOGIC_BASE2(Backdrop)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_backdrop;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
nullable_int x, y, z;
|
||||
|
||||
if (strName == L"a:anchor")
|
||||
{
|
||||
ReadAttributes(oReader, x, y, z);
|
||||
anchorX = x.get_value_or(0);
|
||||
anchorY = y.get_value_or(0);
|
||||
anchorZ = z.get_value_or(0);
|
||||
}
|
||||
else if (strName == L"a:norm")
|
||||
{
|
||||
ReadAttributes(oReader, x, y, z);
|
||||
normX = x.get_value_or(0);
|
||||
normY = y.get_value_or(0);
|
||||
normZ = z.get_value_or(0);
|
||||
}
|
||||
else if (strName == L"a:up")
|
||||
{
|
||||
ReadAttributes(oReader, x, y, z);
|
||||
|
||||
upX = x.get_value_or(0);
|
||||
upY = y.get_value_or(0);
|
||||
upZ = z.get_value_or(0);
|
||||
}
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader, nullable_int & x, nullable_int & y, nullable_int & z )
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("x"), x)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("y"), y)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("z"), z)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("dx"), x)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("dy"), y)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("dz"), z)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oNodeA = node.ReadNode(_T("a:anchor"));
|
||||
|
||||
@ -44,9 +44,27 @@ namespace PPTX
|
||||
class Bevel : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Bevel)
|
||||
WritingElement_AdditionConstructors(Bevel)
|
||||
PPTX_LOGIC_BASE2(Bevel)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_bevel;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("w"), w)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("h"), h)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("prst"), prst)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
|
||||
@ -51,9 +51,67 @@ namespace PPTX
|
||||
class BodyPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BodyPr)
|
||||
WritingElement_AdditionConstructors(BodyPr)
|
||||
|
||||
BodyPr(std::wstring ns = L"a")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (L"a:prstTxWarp" == strName)
|
||||
prstTxWarp = oReader;
|
||||
else if (L"a:scene3d" == strName)
|
||||
scene3d = oReader;
|
||||
else if (L"a:sp3d" == strName)
|
||||
sp3d = oReader;
|
||||
else if (strName == L"a:noAutofit" || strName == L"a:spAutoFit" || strName == L"a:normAutofit")
|
||||
Fit.fromXML(oReader);
|
||||
else if (L"a:flatTx" == strName)
|
||||
{
|
||||
//oNode.ReadAttributeBase(L"z", flatTx);
|
||||
}
|
||||
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("anchor"), anchor )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("anchorCtr"), anchorCtr )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("bIns"), bIns )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("compatLnSpc"), compatLnSpc )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("forceAA"), forceAA )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("fromWordArt"), fromWordArt )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("horzOverflow"), horzOverflow )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("lIns"), lIns )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("numCol"), numCol )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("rIns"), rIns )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("rot"), rot )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("rtlCol"), rtlCol )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("spcCol"), spcCol )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("spcFirstLastPara"), spcFirstLastPara )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("tIns"), tIns )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("upright"), upright )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("vert"), vert )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("vertOverflow"), vertOverflow )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("wrap"), wrap )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
@ -93,6 +151,8 @@ namespace PPTX
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
if (m_namespace.empty()) m_namespace = L"a";
|
||||
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("rot"), rot);
|
||||
oAttr.Write(_T("spcFirstLastPara"), spcFirstLastPara);
|
||||
@ -132,6 +192,8 @@ namespace PPTX
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (m_namespace.empty()) m_namespace = L"a";
|
||||
|
||||
pWriter->StartNode(m_namespace + _T(":bodyPr"));
|
||||
|
||||
pWriter->StartAttributes();
|
||||
@ -172,10 +234,16 @@ namespace PPTX
|
||||
pWriter->EndNode(m_namespace + _T(":bodyPr"));
|
||||
}
|
||||
|
||||
void Merge(BodyPr& bodyPr)const
|
||||
|
||||
void Merge(nullable<BodyPr>& bodyPr)const
|
||||
{
|
||||
if (!bodyPr.IsInit())
|
||||
{
|
||||
bodyPr = new PPTX::Logic::BodyPr();
|
||||
}
|
||||
|
||||
if(Fit.type != TextFit::FitEmpty)
|
||||
Fit.Merge(bodyPr.Fit);
|
||||
Fit.Merge(bodyPr->Fit);
|
||||
/*
|
||||
nullable_property<PrstTxWarp> prstTxWarp;
|
||||
nullable_property<Scene3d> scene3d;
|
||||
@ -184,43 +252,43 @@ namespace PPTX
|
||||
*/
|
||||
// Attributes
|
||||
if(anchor.IsInit())
|
||||
bodyPr.anchor = *anchor;
|
||||
bodyPr->anchor = *anchor;
|
||||
if(anchorCtr.IsInit())
|
||||
bodyPr.anchorCtr = *anchorCtr;
|
||||
bodyPr->anchorCtr = *anchorCtr;
|
||||
if(bIns.IsInit())
|
||||
bodyPr.bIns = *bIns;
|
||||
bodyPr->bIns = *bIns;
|
||||
if(compatLnSpc.IsInit())
|
||||
bodyPr.compatLnSpc = *compatLnSpc;
|
||||
bodyPr->compatLnSpc = *compatLnSpc;
|
||||
if(forceAA.IsInit())
|
||||
bodyPr.forceAA = *forceAA;
|
||||
bodyPr->forceAA = *forceAA;
|
||||
if(fromWordArt.IsInit())
|
||||
bodyPr.fromWordArt = *fromWordArt;
|
||||
bodyPr->fromWordArt = *fromWordArt;
|
||||
if(horzOverflow.IsInit())
|
||||
bodyPr.horzOverflow = *horzOverflow;
|
||||
bodyPr->horzOverflow = *horzOverflow;
|
||||
if(lIns.IsInit())
|
||||
bodyPr.lIns = *lIns;
|
||||
bodyPr->lIns = *lIns;
|
||||
if(numCol.IsInit())
|
||||
bodyPr.numCol = *numCol;
|
||||
bodyPr->numCol = *numCol;
|
||||
if(rIns.IsInit())
|
||||
bodyPr.rIns = *rIns;
|
||||
bodyPr->rIns = *rIns;
|
||||
if(rot.IsInit())
|
||||
bodyPr.rot = *rot;
|
||||
bodyPr->rot = *rot;
|
||||
if(rtlCol.IsInit())
|
||||
bodyPr.rtlCol = *rtlCol;
|
||||
bodyPr->rtlCol = *rtlCol;
|
||||
if(spcCol.IsInit())
|
||||
bodyPr.spcCol = *spcCol;
|
||||
bodyPr->spcCol = *spcCol;
|
||||
if(spcFirstLastPara.IsInit())
|
||||
bodyPr.spcFirstLastPara = *spcFirstLastPara;
|
||||
bodyPr->spcFirstLastPara = *spcFirstLastPara;
|
||||
if(tIns.IsInit())
|
||||
bodyPr.tIns = *tIns;
|
||||
bodyPr->tIns = *tIns;
|
||||
if(upright.IsInit())
|
||||
bodyPr.upright = *upright;
|
||||
bodyPr->upright = *upright;
|
||||
if(vert.IsInit())
|
||||
bodyPr.vert = *vert;
|
||||
bodyPr->vert = *vert;
|
||||
if(vertOverflow.IsInit())
|
||||
bodyPr.vertOverflow = *vertOverflow;
|
||||
bodyPr->vertOverflow = *vertOverflow;
|
||||
if(wrap.IsInit())
|
||||
bodyPr.wrap = *wrap;
|
||||
bodyPr->wrap = *wrap;
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class BuAutoNum : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuAutoNum)
|
||||
WritingElement_AdditionConstructors(BuAutoNum)
|
||||
PPTX_LOGIC_BASE2(BuAutoNum)
|
||||
|
||||
BuAutoNum& operator=(const BuAutoNum& oSrc)
|
||||
{
|
||||
@ -55,8 +56,14 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buChar;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"type", type);
|
||||
@ -64,7 +71,15 @@ namespace PPTX
|
||||
|
||||
Normalize();
|
||||
}
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, L"startAt", startAt)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, L"type", type)
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class BuBlip : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuBlip)
|
||||
WritingElement_AdditionConstructors(BuBlip)
|
||||
PPTX_LOGIC_BASE2(BuBlip)
|
||||
|
||||
BuBlip& operator=(const BuBlip& oSrc)
|
||||
{
|
||||
@ -54,7 +55,28 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (strName == L"blip")
|
||||
{
|
||||
blip = oReader;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_buBlip;
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
blip = node.ReadNodeNoNS(_T("blip"));
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuChar : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuChar)
|
||||
WritingElement_AdditionConstructors(BuChar)
|
||||
PPTX_LOGIC_BASE2(BuChar)
|
||||
|
||||
BuChar& operator=(const BuChar& oSrc)
|
||||
{
|
||||
@ -52,13 +53,27 @@ namespace PPTX
|
||||
Char = oSrc.Char;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buAutoNum;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
public:
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, L"char", Char)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Char = node.GetAttribute(_T("char"));
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
|
||||
@ -43,7 +43,32 @@ namespace PPTX
|
||||
class BuClr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuClr)
|
||||
WritingElement_AdditionConstructors(BuClr)
|
||||
PPTX_LOGIC_BASE2(BuClr)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
}
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_buClr;
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
|
||||
BuClr& operator=(const BuClr& oSrc)
|
||||
{
|
||||
@ -59,7 +84,6 @@ namespace PPTX
|
||||
virtual DWORD GetBGRA()const{return Color.GetBGRA();};
|
||||
virtual DWORD GetABGR()const{return Color.GetABGR();};
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Color.GetColorFrom(node);
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuClrTx : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuClrTx)
|
||||
WritingElement_AdditionConstructors(BuClrTx)
|
||||
PPTX_LOGIC_BASE2(BuClrTx)
|
||||
|
||||
BuClrTx& operator=(const BuClrTx& oSrc)
|
||||
{
|
||||
@ -51,8 +52,29 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_buClrTx;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
public:
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuFontTx : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuFontTx)
|
||||
WritingElement_AdditionConstructors(BuFontTx)
|
||||
PPTX_LOGIC_BASE2(BuFontTx)
|
||||
|
||||
BuFontTx& operator=(const BuFontTx& oSrc)
|
||||
{
|
||||
@ -50,8 +51,31 @@ namespace PPTX
|
||||
parentElement = oSrc.parentElement;
|
||||
return *this;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
}
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_buFontTx;
|
||||
}
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuNone : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuNone)
|
||||
WritingElement_AdditionConstructors(BuNone)
|
||||
PPTX_LOGIC_BASE2(BuNone)
|
||||
|
||||
BuNone& operator=(const BuNone& oSrc)
|
||||
{
|
||||
@ -51,8 +52,13 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buNone;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuSzPct : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuSzPct)
|
||||
WritingElement_AdditionConstructors(BuSzPct)
|
||||
PPTX_LOGIC_BASE2(BuSzPct)
|
||||
|
||||
BuSzPct& operator=(const BuSzPct& oSrc)
|
||||
{
|
||||
@ -52,8 +53,22 @@ namespace PPTX
|
||||
val = oSrc.val;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buSzPct;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
val = node.ReadAttributeInt(_T("val"));
|
||||
@ -79,19 +94,24 @@ namespace PPTX
|
||||
pWriter->StartRecord(BULLET_TYPE_SIZE_PCT);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteInt1(0, val);
|
||||
pWriter->WriteInt1(0, val.get_value_or(0));
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
public:
|
||||
int val;
|
||||
nullable_int val;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds(){};
|
||||
|
||||
AVSINLINE void Normalize()
|
||||
{
|
||||
normalize_value(val, 25000, 400000);
|
||||
if (val.IsInit())
|
||||
{
|
||||
int tmp = *val;
|
||||
normalize_value(tmp, 25000, 400000);
|
||||
val = tmp;
|
||||
}
|
||||
}
|
||||
};
|
||||
} // namespace Logic
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuSzPts : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuSzPts)
|
||||
WritingElement_AdditionConstructors(BuSzPts)
|
||||
PPTX_LOGIC_BASE2(BuSzPts)
|
||||
|
||||
BuSzPts& operator=(const BuSzPts& oSrc)
|
||||
{
|
||||
@ -52,8 +53,20 @@ namespace PPTX
|
||||
val = oSrc.val;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buSzPts;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
val = node.ReadAttributeInt(_T("val"));
|
||||
@ -79,18 +92,23 @@ namespace PPTX
|
||||
pWriter->StartRecord(BULLET_TYPE_SIZE_PTS);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteInt1(0, val);
|
||||
pWriter->WriteInt1(0, val.get_value_or(0));
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
public:
|
||||
int val;
|
||||
nullable_int val;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds(){};
|
||||
AVSINLINE void Normalize()
|
||||
{
|
||||
normalize_value(val, 100, 400000);
|
||||
if (val.IsInit())
|
||||
{
|
||||
int tmp = *val;
|
||||
normalize_value(tmp, 100, 400000);
|
||||
val = tmp;
|
||||
}
|
||||
}
|
||||
};
|
||||
} // namespace Logic
|
||||
|
||||
@ -42,7 +42,8 @@ namespace PPTX
|
||||
class BuSzTx : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BuSzTx)
|
||||
WritingElement_AdditionConstructors(BuSzTx)
|
||||
PPTX_LOGIC_BASE2(BuSzTx)
|
||||
|
||||
BuSzTx& operator=(const BuSzTx& oSrc)
|
||||
{
|
||||
@ -51,8 +52,13 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_buSzTx;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -46,7 +46,8 @@ namespace PPTX
|
||||
class Bullet : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Bullet)
|
||||
WritingElement_AdditionConstructors(Bullet)
|
||||
PPTX_LOGIC_BASE2(Bullet)
|
||||
|
||||
Bullet& operator=(const Bullet& oSrc)
|
||||
{
|
||||
@ -57,8 +58,27 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
if (m_Bullet.IsInit())
|
||||
return m_Bullet->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
public:
|
||||
if (strName == _T("buNone"))
|
||||
m_Bullet.reset(new Logic::BuNone(oReader));
|
||||
else if (strName == _T("buChar"))
|
||||
m_Bullet.reset(new Logic::BuChar(oReader));
|
||||
else if (strName == _T("buAutoNum"))
|
||||
m_Bullet.reset(new Logic::BuAutoNum(oReader));
|
||||
else if (strName == _T("buBlip"))
|
||||
m_Bullet.reset(new Logic::BuBlip(oReader));
|
||||
else
|
||||
m_Bullet.reset();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(node.GetName());
|
||||
@ -71,7 +91,8 @@ namespace PPTX
|
||||
m_Bullet.reset(new Logic::BuAutoNum(node));
|
||||
else if (strName == _T("buBlip"))
|
||||
m_Bullet.reset(new Logic::BuBlip(node));
|
||||
else m_Bullet.reset();
|
||||
else
|
||||
m_Bullet.reset();
|
||||
}
|
||||
|
||||
virtual void ReadBulletFrom(XmlUtils::CXmlNode& element)
|
||||
@ -85,7 +106,8 @@ namespace PPTX
|
||||
m_Bullet.reset(new Logic::BuAutoNum(oNode));
|
||||
else if (element.GetNode(_T("a:buBlip"), oNode))
|
||||
m_Bullet.reset(new Logic::BuBlip(oNode));
|
||||
else m_Bullet.reset();
|
||||
else
|
||||
m_Bullet.reset();
|
||||
}
|
||||
|
||||
virtual bool is_init()const{return (m_Bullet.IsInit());};
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class BulletColor : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BulletColor)
|
||||
WritingElement_AdditionConstructors(BulletColor)
|
||||
PPTX_LOGIC_BASE2(BulletColor)
|
||||
|
||||
BulletColor& operator=(const BulletColor& oColor)
|
||||
{
|
||||
@ -55,8 +56,23 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
if (m_Color.IsInit())
|
||||
return m_Color->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
public:
|
||||
if (strName == _T("a:buClrTx"))
|
||||
m_Color.reset(new Logic::BuClrTx(oReader));
|
||||
else if (strName == _T("a:buClr"))
|
||||
m_Color.reset(new Logic::BuClr(oReader));
|
||||
else
|
||||
m_Color.reset();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring strName = node.GetName();
|
||||
@ -65,7 +81,8 @@ namespace PPTX
|
||||
m_Color.reset(new Logic::BuClrTx(node));
|
||||
else if (strName == _T("a:buClr"))
|
||||
m_Color.reset(new Logic::BuClr(node));
|
||||
else m_Color.reset();
|
||||
else
|
||||
m_Color.reset();
|
||||
}
|
||||
|
||||
void ReadBulletColorFrom(XmlUtils::CXmlNode& element)
|
||||
@ -75,7 +92,8 @@ namespace PPTX
|
||||
m_Color.reset(new Logic::BuClrTx(oNode));
|
||||
else if (element.GetNode(_T("a:buClr"), oNode))
|
||||
m_Color.reset(new Logic::BuClr(oNode));
|
||||
else m_Color.reset();
|
||||
else
|
||||
m_Color.reset();
|
||||
}
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
|
||||
@ -45,7 +45,8 @@ namespace PPTX
|
||||
class BulletSize : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BulletSize)
|
||||
WritingElement_AdditionConstructors(BulletSize)
|
||||
PPTX_LOGIC_BASE2(BulletSize)
|
||||
|
||||
BulletSize& operator=(const BulletSize& oSrc)
|
||||
{
|
||||
@ -56,8 +57,26 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
if (m_Size.IsInit())
|
||||
return m_Size->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == _T("a:buSzTx"))
|
||||
m_Size.reset(new Logic::BuSzTx(oReader));
|
||||
else if (strName == _T("a:buSzPct"))
|
||||
m_Size.reset(new Logic::BuSzPct(oReader));
|
||||
else if (strName == _T("a:buSzPts"))
|
||||
m_Size.reset(new Logic::BuSzPts(oReader));
|
||||
else
|
||||
m_Size.reset();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring strName = node.GetName();
|
||||
@ -68,7 +87,8 @@ namespace PPTX
|
||||
m_Size.reset(new Logic::BuSzPct(node));
|
||||
else if (strName == _T("a:buSzPts"))
|
||||
m_Size.reset(new Logic::BuSzPts(node));
|
||||
else m_Size.reset();
|
||||
else
|
||||
m_Size.reset();
|
||||
}
|
||||
|
||||
virtual void ReadBulletSizeFrom(XmlUtils::CXmlNode& element)
|
||||
@ -80,7 +100,8 @@ namespace PPTX
|
||||
m_Size.reset(new Logic::BuSzPct(oNode));
|
||||
else if(element.GetNode(_T("a:buSzPts"), oNode))
|
||||
m_Size.reset(new Logic::BuSzPts(oNode));
|
||||
else m_Size.reset();
|
||||
else
|
||||
m_Size.reset();
|
||||
}
|
||||
virtual bool is_init()const{return (m_Size.IsInit());};
|
||||
virtual bool has_spec_size()const{return ((is_init()) && (!is<BuSzTx>()));};
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class BulletTypeface : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(BulletTypeface)
|
||||
WritingElement_AdditionConstructors(BulletTypeface)
|
||||
PPTX_LOGIC_BASE2(BulletTypeface)
|
||||
|
||||
BulletTypeface& operator=(const BulletTypeface& oSrc)
|
||||
{
|
||||
@ -55,8 +56,22 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
if (m_Typeface.IsInit())
|
||||
return m_Typeface->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
if (strName == _T("a:buFontTx"))
|
||||
m_Typeface.reset(new Logic::BuFontTx(oReader));
|
||||
else if (strName == _T("a:buFont"))
|
||||
m_Typeface.reset(new Logic::TextFont(oReader));
|
||||
else
|
||||
m_Typeface.reset();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring strName = node.GetName();
|
||||
@ -65,7 +80,8 @@ namespace PPTX
|
||||
m_Typeface.reset(new Logic::BuFontTx(node));
|
||||
else if (strName == _T("a:buFont"))
|
||||
m_Typeface.reset(new Logic::TextFont(node));
|
||||
else m_Typeface.reset();
|
||||
else
|
||||
m_Typeface.reset();
|
||||
}
|
||||
|
||||
virtual void ReadBulletTypefaceFrom(XmlUtils::CXmlNode& element)
|
||||
|
||||
@ -42,8 +42,13 @@ namespace PPTX
|
||||
class CNvCxnSpPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CNvCxnSpPr)
|
||||
WritingElement_AdditionConstructors(CNvCxnSpPr)
|
||||
|
||||
CNvCxnSpPr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CNvCxnSpPr& operator=(const CNvCxnSpPr& oSrc)
|
||||
{
|
||||
parentFile = oSrc.parentFile;
|
||||
@ -68,9 +73,58 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (strName == L"a:cxnSpLocks")
|
||||
{
|
||||
ReadAttributesLocks(oReader);
|
||||
}
|
||||
else if (strName == L"a:stCxn")
|
||||
{
|
||||
ReadAttributes(oReader, stCxn_id, stCxn_idx);
|
||||
}
|
||||
else if (strName == L"a:endCxn")
|
||||
{
|
||||
ReadAttributes(oReader, endCxn_id, endCxn_idx);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader, nullable_int & id, nullable_int & idx )
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("id"), id)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("idx"), idx)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("noAdjustHandles"), noAdjustHandles)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeArrowheads"), noChangeArrowheads)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeAspect"), noChangeAspect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeShapeType"), noChangeShapeType)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noEditPoints"), noEditPoints)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noGrp"), noGrp)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noMove"), noMove)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noResize"), noResize)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noRot"), noRot)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noSelect"), noSelect)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
XmlUtils::CXmlNode l_Locks;
|
||||
if (node.GetNode(_T("a:cxnSpLocks"), l_Locks))
|
||||
{
|
||||
@ -132,17 +186,17 @@ namespace PPTX
|
||||
if (_T("") != oAttr3.m_strValue)
|
||||
oValue.m_strValue += XmlUtils::CreateNode(_T("a:endCxn"), oAttr3);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:cNvCxnSpPr"), oValue);
|
||||
return XmlUtils::CreateNode(m_namespace + L":cNvCxnSpPr", oValue);
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->StartNode(_T("wps:cNvCxnSpPr"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->StartNode(_T("xdr:cNvCxnSpPr"));
|
||||
else
|
||||
pWriter->StartNode(_T("p:cNvCxnSpPr"));
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = _T("wps");
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = _T("xdr");
|
||||
|
||||
pWriter->StartNode(namespace_ + L":cNvCxnSpPr");
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
@ -181,12 +235,7 @@ namespace PPTX
|
||||
pWriter->EndNode(_T("a:endCxn"));
|
||||
}
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->EndNode(_T("wps:cNvCxnSpPr"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->EndNode(_T("xdr:cNvCxnSpPr"));
|
||||
else
|
||||
pWriter->EndNode(_T("p:cNvCxnSpPr"));
|
||||
pWriter->EndNode(namespace_ + L":cNvCxnSpPr");
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -299,7 +348,8 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
std::wstring m_namespace;
|
||||
|
||||
nullable_bool noAdjustHandles;
|
||||
nullable_bool noChangeArrowheads;
|
||||
nullable_bool noChangeAspect;
|
||||
|
||||
@ -42,7 +42,12 @@ namespace PPTX
|
||||
class CNvGraphicFramePr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CNvGraphicFramePr)
|
||||
WritingElement_AdditionConstructors(CNvGraphicFramePr)
|
||||
|
||||
CNvGraphicFramePr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CNvGraphicFramePr& operator=(const CNvGraphicFramePr& oSrc)
|
||||
{
|
||||
@ -56,46 +61,76 @@ namespace PPTX
|
||||
noResize = oSrc.noResize;
|
||||
noSelect = oSrc.noSelect;
|
||||
|
||||
m_namespace = oSrc.m_namespace;
|
||||
|
||||
return *this;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
public:
|
||||
if (strName == L"graphicFrameLocks")
|
||||
{
|
||||
ReadAttributesLocks(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("noChangeAspect"), noChangeAspect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noGrp"), noGrp)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noMove"), noMove)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noResize"), noResize)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noDrilldown"), noDrilldown)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noSelect"), noSelect)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
if (node.GetNode(_T("a:graphicFrameLocks"), oNode))
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
XmlUtils::CXmlNode oNode = node.ReadNodeNoNS(L"graphicFrameLocks");
|
||||
if (oNode.IsValid())
|
||||
{
|
||||
oNode.ReadAttributeBase(L"noChangeAspect", noChangeAspect);
|
||||
oNode.ReadAttributeBase(L"noDrilldown", noDrilldown);
|
||||
oNode.ReadAttributeBase(L"noGrp", noGrp);
|
||||
oNode.ReadAttributeBase(L"noMove", noMove);
|
||||
oNode.ReadAttributeBase(L"noResize", noResize);
|
||||
oNode.ReadAttributeBase(L"noSelect", noSelect);
|
||||
oNode.ReadAttributeBase(L"noChangeAspect", noChangeAspect);
|
||||
oNode.ReadAttributeBase(L"noDrilldown", noDrilldown);
|
||||
oNode.ReadAttributeBase(L"noGrp", noGrp);
|
||||
oNode.ReadAttributeBase(L"noMove", noMove);
|
||||
oNode.ReadAttributeBase(L"noResize", noResize);
|
||||
oNode.ReadAttributeBase(L"noSelect", noSelect);
|
||||
}
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("noChangeAspect"), noChangeAspect);
|
||||
oAttr.Write(_T("noDrilldown"), noDrilldown);
|
||||
oAttr.Write(_T("noGrp"), noGrp);
|
||||
oAttr.Write(_T("noMove"), noMove);
|
||||
oAttr.Write(_T("noResize"), noResize);
|
||||
oAttr.Write(_T("noSelect"), noSelect);
|
||||
oAttr.Write(_T("noChangeAspect"), noChangeAspect);
|
||||
oAttr.Write(_T("noDrilldown"), noDrilldown);
|
||||
oAttr.Write(_T("noGrp"), noGrp);
|
||||
oAttr.Write(_T("noMove"), noMove);
|
||||
oAttr.Write(_T("noResize"), noResize);
|
||||
oAttr.Write(_T("noSelect"), noSelect);
|
||||
|
||||
if (_T("") == oAttr.m_strValue)
|
||||
return _T("<p:cNvGraphicFramePr/>");
|
||||
|
||||
return _T("<p:cNvGraphicFramePr>") + XmlUtils::CreateNode(_T("a:graphicFrameLocks"), oAttr) + _T("</p:cNvGraphicFramePr>");
|
||||
return XmlUtils::CreateNode(m_namespace + L":cNvGraphicFramePr", oAttr.m_strValue.empty() ? L"" : XmlUtils::CreateNode(L"a:graphicFrameLocks", oAttr));
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->StartNode(_T("xdr:cNvGraphicFramePr"));
|
||||
else
|
||||
pWriter->StartNode(_T("p:cNvGraphicFramePr"));
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"wp";
|
||||
|
||||
pWriter->StartNode(namespace_ + L":cNvGraphicFramePr");
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
@ -114,10 +149,7 @@ namespace PPTX
|
||||
|
||||
pWriter->EndNode(_T("a:graphicFrameLocks"));
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->EndNode(_T("xdr:cNvGraphicFramePr"));
|
||||
else
|
||||
pWriter->EndNode(_T("p:cNvGraphicFramePr"));
|
||||
pWriter->EndNode(namespace_ + L":cNvGraphicFramePr");
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -182,8 +214,8 @@ namespace PPTX
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
std::wstring m_namespace;
|
||||
|
||||
public:
|
||||
nullable_bool noChangeAspect;
|
||||
nullable_bool noDrilldown;
|
||||
nullable_bool noGrp;
|
||||
|
||||
@ -35,7 +35,6 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
CNvGrpSpPr& CNvGrpSpPr::operator=(const CNvGrpSpPr& oSrc)
|
||||
{
|
||||
parentFile = oSrc.parentFile;
|
||||
@ -54,6 +53,8 @@ namespace PPTX
|
||||
|
||||
void CNvGrpSpPr::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
XmlUtils::CXmlNode oNode;
|
||||
if (node.GetNode(_T("a:grpSpLocks"), oNode))
|
||||
{
|
||||
@ -66,8 +67,36 @@ namespace PPTX
|
||||
oNode.ReadAttributeBase(L"noUngrp", noUngrp);
|
||||
}
|
||||
}
|
||||
void CNvGrpSpPr::ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("noChangeAspect"), noChangeAspect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noGrp"), noGrp)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noMove"), noMove)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noResize"), noResize)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noRot"), noRot)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noSelect"), noSelect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noUngrp"), noUngrp)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void CNvGrpSpPr::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
|
||||
if (strName == L"a:grpSpLocks")
|
||||
{
|
||||
ReadAttributesLocks(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::wstring CNvGrpSpPr::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
@ -79,10 +108,7 @@ namespace PPTX
|
||||
oAttr.Write(_T("noSelect"), noSelect);
|
||||
oAttr.Write(_T("noUngrp"), noUngrp);
|
||||
|
||||
if (_T("") == oAttr.m_strValue)
|
||||
return _T("<p:cNvGrpSpPr/>");
|
||||
|
||||
return _T("<p:cNvGrpSpPr>") + XmlUtils::CreateNode(_T("a:grpSpLocks"), oAttr) + _T("</p:cNvGrpSpPr>");
|
||||
return XmlUtils::CreateNode(m_namespace + L":cNvGrpSpPr", XmlUtils::CreateNode(_T("a:grpSpLocks"), oAttr));
|
||||
}
|
||||
|
||||
} // namespace Logic
|
||||
|
||||
@ -42,18 +42,26 @@ namespace PPTX
|
||||
class CNvGrpSpPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CNvGrpSpPr)
|
||||
WritingElement_AdditionConstructors(CNvGrpSpPr)
|
||||
|
||||
CNvGrpSpPr& operator=(const CNvGrpSpPr& oSrc);
|
||||
CNvGrpSpPr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CNvGrpSpPr& operator=(const CNvGrpSpPr& oSrc);
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
std::wstring ns = m_namespace;
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
ns = L"xdr";
|
||||
|
||||
if (!noChangeAspect.is_init() &&
|
||||
!noGrp.is_init() &&
|
||||
!noMove.is_init() &&
|
||||
@ -62,17 +70,11 @@ namespace PPTX
|
||||
!noSelect.is_init() &&
|
||||
!noUngrp.is_init())
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->WriteString(_T("<xdr:cNvGrpSpPr/>"));
|
||||
else
|
||||
pWriter->WriteString(_T("<p:cNvGrpSpPr/>"));
|
||||
pWriter->WriteString(L"<" + ns + L":cNvGrpSpPr/>");
|
||||
return;
|
||||
}
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->WriteString(_T("<xdr:cNvGrpSpPr>"));
|
||||
else
|
||||
pWriter->WriteString(_T("<p:cNvGrpSpPr>"));
|
||||
pWriter->WriteString(L"<" + ns + L":cNvGrpSpPr>");
|
||||
|
||||
pWriter->StartNode(_T("a:grpSpLocks"));
|
||||
|
||||
@ -88,10 +90,7 @@ namespace PPTX
|
||||
|
||||
pWriter->EndNode(_T("a:grpSpLocks"));
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->WriteString(_T("</xdr:cNvGrpSpPr>"));
|
||||
else
|
||||
pWriter->WriteString(_T("</p:cNvGrpSpPr>"));
|
||||
pWriter->WriteString(L"</" + ns + L":cNvGrpSpPr>");
|
||||
}
|
||||
|
||||
void toXmlWriter2(const std::wstring& strNS, NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
@ -192,8 +191,8 @@ namespace PPTX
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
std::wstring m_namespace;
|
||||
|
||||
public:
|
||||
nullable_bool noChangeAspect;
|
||||
nullable_bool noGrp;
|
||||
nullable_bool noMove;
|
||||
@ -202,6 +201,7 @@ namespace PPTX
|
||||
nullable_bool noSelect;
|
||||
nullable_bool noUngrp;
|
||||
protected:
|
||||
void ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader);
|
||||
virtual void FillParentPointersForChilds(){};
|
||||
};
|
||||
} // namespace Logic
|
||||
|
||||
@ -44,7 +44,12 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(CNvPicPr)
|
||||
WritingElement_AdditionConstructors(CNvPicPr)
|
||||
|
||||
CNvPicPr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CNvPicPr& operator=(const CNvPicPr& oSrc)
|
||||
{
|
||||
@ -65,10 +70,52 @@ namespace PPTX
|
||||
noRot = oSrc.noRot;
|
||||
noSelect = oSrc.noSelect;
|
||||
|
||||
m_namespace = oSrc.m_namespace;
|
||||
|
||||
return *this;
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle( oReader, _T("preferRelativeResize"), preferRelativeResize )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
public:
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (_T("picLocks") == strName)
|
||||
{
|
||||
ReadAttributesLocks(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("noAdjustHandles"), noAdjustHandles)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeArrowheads"), noChangeArrowheads)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeAspect"), noChangeAspect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeShapeType"), noChangeShapeType)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noCrop"), noCrop)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noEditPoints"), noEditPoints)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noGrp"), noGrp)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noMove"), noMove)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noResize"), noResize)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noRot"), noRot)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noSelect"), noSelect)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"preferRelativeResize", preferRelativeResize);
|
||||
@ -118,12 +165,12 @@ namespace PPTX
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->StartNode(_T("pic:cNvPicPr"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->StartNode(_T("xdr:cNvPicPr"));
|
||||
else
|
||||
pWriter->StartNode(_T("p:cNvPicPr"));
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"pic";
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
|
||||
|
||||
pWriter->StartNode(namespace_ + L":cNvPicPr");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("preferRelativeResize"), preferRelativeResize);
|
||||
@ -157,13 +204,7 @@ namespace PPTX
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("a:picLocks"));
|
||||
}
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->EndNode(_T("pic:cNvPicPr"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->EndNode(_T("xdr:cNvPicPr"));
|
||||
else
|
||||
pWriter->EndNode(_T("p:cNvPicPr"));
|
||||
pWriter->EndNode(namespace_ + L":cNvPicPr");
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -262,8 +303,8 @@ namespace PPTX
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
std::wstring m_namespace;
|
||||
|
||||
public:
|
||||
nullable_bool preferRelativeResize;
|
||||
|
||||
nullable_bool noAdjustHandles;
|
||||
|
||||
@ -44,15 +44,54 @@ namespace PPTX
|
||||
class CNvPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CNvPr)
|
||||
WritingElement_AdditionConstructors(CNvPr)
|
||||
|
||||
CNvPr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_p_cNvPr;
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
nullable_int id_;
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("id"), id_)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("name"), name)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("descr"), descr)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("hidden"), hidden)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("title"), title)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
id = id_.get_value_or(0);
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
if (sName == L"a:hlinkClick")
|
||||
hlinkClick = oReader;
|
||||
else if (sName == L"a:hlinkHover")
|
||||
hlinkHover = oReader;
|
||||
}
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
id = node.ReadAttributeInt(L"id");
|
||||
name = node.GetAttribute(L"name");
|
||||
|
||||
@ -66,40 +105,45 @@ namespace PPTX
|
||||
Normalize();
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
|
||||
std::wstring toXML2(std::wstring node_name) const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("id"), id);
|
||||
oAttr.Write(_T("name"), name);
|
||||
oAttr.Write(_T("descr"), descr);
|
||||
oAttr.Write(_T("hidden"), hidden);
|
||||
oAttr.Write(_T("title"), title);
|
||||
oAttr.Write(_T("id"), id);
|
||||
oAttr.Write(_T("name"), XmlUtils::EncodeXmlString(name));
|
||||
if (descr.IsInit())
|
||||
{
|
||||
std::wstring d = XmlUtils::EncodeXmlString(descr.get());
|
||||
XmlUtils::replace_all(d, L"\n", L"
");
|
||||
|
||||
oAttr.Write(_T("descr"), d);
|
||||
}
|
||||
oAttr.Write(_T("hidden"), hidden);
|
||||
if (title.IsInit()) oAttr.Write(_T("title"), XmlUtils::EncodeXmlString(title.get()));
|
||||
|
||||
XmlUtils::CNodeValue oValue;
|
||||
oValue.WriteNullable(hlinkClick);
|
||||
oValue.WriteNullable(hlinkHover);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:cNvPr"), oAttr, oValue);
|
||||
return XmlUtils::CreateNode(node_name.empty() ? (m_namespace + L":cNvPr") : node_name, oAttr, oValue);
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return toXML2(L"");
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
std::wstring namespace_;
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
namespace_= _T("pic");
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
namespace_= _T("xdr");
|
||||
else
|
||||
namespace_= _T("p");
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_= _T("pic");
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_= _T("xdr");
|
||||
|
||||
toXmlWriter2(namespace_, pWriter);
|
||||
|
||||
}
|
||||
void toXmlWriter2(const std::wstring& strNS, NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
//if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX && id == -1)
|
||||
// return;
|
||||
|
||||
pWriter->StartNode(strNS + _T(":cNvPr"));
|
||||
|
||||
int _id = id;
|
||||
@ -117,11 +161,16 @@ namespace PPTX
|
||||
}
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute (_T("id"), _id);
|
||||
pWriter->WriteAttribute2(_T("name"), name);
|
||||
pWriter->WriteAttribute2(_T("descr"), descr);
|
||||
pWriter->WriteAttribute (_T("hidden"), hidden);
|
||||
pWriter->WriteAttribute (_T("title"), title);
|
||||
pWriter->WriteAttribute (_T("id"), _id);
|
||||
pWriter->WriteAttribute (_T("name"), XmlUtils::EncodeXmlString(name));
|
||||
if (descr.IsInit())
|
||||
{
|
||||
std::wstring d = XmlUtils::EncodeXmlString(descr.get());
|
||||
XmlUtils::replace_all(d, L"\n", L"
");
|
||||
pWriter->WriteAttribute (_T("descr"), d);
|
||||
}
|
||||
pWriter->WriteAttribute (_T("hidden"), hidden);
|
||||
if (title.IsInit()) pWriter->WriteAttribute (_T("title"), XmlUtils::EncodeXmlString(title.get()));
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
@ -196,7 +245,8 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
std::wstring m_namespace;
|
||||
|
||||
int id;
|
||||
std::wstring name;
|
||||
nullable_string descr;
|
||||
|
||||
@ -42,7 +42,12 @@ namespace PPTX
|
||||
class CNvSpPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CNvSpPr)
|
||||
WritingElement_AdditionConstructors(CNvSpPr)
|
||||
|
||||
CNvSpPr(std::wstring ns = L"p")
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CNvSpPr& operator=(const CNvSpPr& oSrc)
|
||||
{
|
||||
@ -65,9 +70,52 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
ReadAttributes(oReader);
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == L"a:spLocks")
|
||||
{
|
||||
ReadAttributesLocks(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributesLocks(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("noAdjustHandles"), noAdjustHandles)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noGrp"), noGrp)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noMove"), noMove)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noRot"), noRot)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noResize"), noResize)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noTextEdit"), noTextEdit)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noSelect"), noSelect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeArrowheads"), noChangeArrowheads)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeShapeType"), noChangeShapeType)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noChangeAspect"), noChangeAspect)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("noEditPoints"), noEditPoints)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle( oReader, _T("txBox"), txBox)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
node.ReadAttributeBase(L"txBox", txBox);
|
||||
|
||||
XmlUtils::CXmlNode l_Locks;
|
||||
@ -105,16 +153,18 @@ namespace PPTX
|
||||
oAttr2.Write(_T("noTextEdit"), noTextEdit);
|
||||
|
||||
if (_T("") == oAttr2.m_strValue)
|
||||
return XmlUtils::CreateNode(_T("p:cNvSpPr"), oAttr1);
|
||||
return XmlUtils::CreateNode(m_namespace + L":cNvSpPr", oAttr1);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:cNvSpPr"), oAttr1, XmlUtils::CreateNode(_T("a:spLocks"), oAttr2));
|
||||
return XmlUtils::CreateNode(m_namespace + L":cNvSpPr", oAttr1, XmlUtils::CreateNode(_T("a:spLocks"), oAttr2));
|
||||
}
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->StartNode(_T("xdr:cNvSpPr"));
|
||||
else
|
||||
pWriter->StartNode(_T("p:cNvSpPr"));
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = _T("wps");
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = _T("xdr");
|
||||
|
||||
pWriter->StartNode(namespace_ + L":cNvSpPr");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("txBox"), txBox);
|
||||
@ -151,10 +201,7 @@ namespace PPTX
|
||||
pWriter->EndNode(_T("a:spLocks"));
|
||||
}
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->EndNode(_T("xdr:cNvSpPr"));
|
||||
else
|
||||
pWriter->EndNode(_T("p:cNvSpPr"));
|
||||
pWriter->EndNode(namespace_ + L":cNvSpPr");
|
||||
}
|
||||
|
||||
void toXmlWriter2(const std::wstring& strNS, NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
@ -296,7 +343,8 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
std::wstring m_namespace;
|
||||
|
||||
nullable_bool txBox;
|
||||
nullable_bool noAdjustHandles;
|
||||
nullable_bool noChangeArrowheads;
|
||||
|
||||
@ -45,9 +45,15 @@ namespace PPTX
|
||||
class CSld : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CSld)
|
||||
WritingElement_AdditionConstructors(CSld)
|
||||
|
||||
CSld() : spTree(L"p")
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"name", attrName);
|
||||
@ -146,7 +152,6 @@ namespace PPTX
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
spTree.m_name = _T("p:spTree");
|
||||
spTree.fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -161,7 +166,6 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
nullable_string attrName;
|
||||
|
||||
nullable<Bg> bg;
|
||||
|
||||
@ -45,9 +45,41 @@ namespace PPTX
|
||||
class Camera : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Camera)
|
||||
WritingElement_AdditionConstructors(Camera)
|
||||
PPTX_LOGIC_BASE2(Camera)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_camera;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == L"a:rot")
|
||||
{
|
||||
rot = oReader;
|
||||
break;
|
||||
}
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("prst"), prst)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("fov"), fov)
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("zoom"), zoom)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
prst = node.GetAttribute(_T("prst"));
|
||||
|
||||
@ -45,15 +45,43 @@ namespace PPTX
|
||||
class Cell3D : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Cell3D)
|
||||
WritingElement_AdditionConstructors(Cell3D)
|
||||
|
||||
public:
|
||||
Cell3D()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (_T("bevel") == strName)
|
||||
bevel = oReader;
|
||||
else if (_T("lightRig") == strName)
|
||||
lightRig = oReader;
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start ( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("prstMaterial"), prstMaterial )
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"prstMaterial", prstMaterial);
|
||||
|
||||
bevel = node.ReadNodeNoNS(_T("bevel"));
|
||||
lightRig = node.ReadNode(_T("a:lightRig"));
|
||||
lightRig = node.ReadNodeNoNS(_T("lightRig"));
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
@ -43,8 +43,13 @@ namespace PPTX
|
||||
class ClrMap : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(ClrMap)
|
||||
WritingElement_AdditionConstructors(ClrMap)
|
||||
PPTX_LOGIC_BASE2(ClrMap)
|
||||
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_clrMap;
|
||||
}
|
||||
ClrMap& operator=(const ClrMap& oSrc)
|
||||
{
|
||||
parentFile = oSrc.parentFile;
|
||||
@ -60,7 +65,57 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_name = oReader.GetName();
|
||||
|
||||
ColorMap.clear();
|
||||
|
||||
ReadAttributes(oReader);
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
Limit::ColorSchemeIndex lColorIndex_accent1;
|
||||
Limit::ColorSchemeIndex lColorIndex_accent2;
|
||||
Limit::ColorSchemeIndex lColorIndex_accent3;
|
||||
Limit::ColorSchemeIndex lColorIndex_accent4;
|
||||
Limit::ColorSchemeIndex lColorIndex_accent5;
|
||||
Limit::ColorSchemeIndex lColorIndex_accent6;
|
||||
Limit::ColorSchemeIndex lColorIndex_bg1;
|
||||
Limit::ColorSchemeIndex lColorIndex_bg2;
|
||||
Limit::ColorSchemeIndex lColorIndex_tx1;
|
||||
Limit::ColorSchemeIndex lColorIndex_tx2;
|
||||
Limit::ColorSchemeIndex lColorIndex_folHlink;
|
||||
Limit::ColorSchemeIndex lColorIndex_hlink;
|
||||
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("accent1"), lColorIndex_accent1)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("accent2"), lColorIndex_accent2 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("accent3"), lColorIndex_accent3 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("accent4"), lColorIndex_accent4 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("accent5"), lColorIndex_accent5 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("accent6"), lColorIndex_accent6 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("bg1"), lColorIndex_bg1 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("bg2"), lColorIndex_bg2 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("tx1"), lColorIndex_tx1 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("tx1"), lColorIndex_tx2 )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("folHlink"), lColorIndex_folHlink )
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("hlink"), lColorIndex_hlink )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent1"), lColorIndex_accent1));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent2"), lColorIndex_accent2));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent3"), lColorIndex_accent3));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent4"), lColorIndex_accent4));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent5"), lColorIndex_accent5));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("accent6"), lColorIndex_accent6));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("bg1"), lColorIndex_bg1));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("bg2"), lColorIndex_bg2));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("tx1"), lColorIndex_tx1));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("tx2"), lColorIndex_tx2));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("folHlink"), lColorIndex_folHlink));
|
||||
ColorMap.insert(std::pair<std::wstring,Limit::ColorSchemeIndex>(_T("hlink"), lColorIndex_hlink));
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = node.GetName();
|
||||
|
||||
@ -43,9 +43,34 @@ namespace PPTX
|
||||
class ClrMapOvr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(ClrMapOvr)
|
||||
WritingElement_AdditionConstructors(ClrMapOvr)
|
||||
PPTX_LOGIC_BASE2(ClrMapOvr)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_clrMapOvr;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if ( L"overrideClrMapping" == sName)
|
||||
{
|
||||
overrideClrMapping = oReader;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (overrideClrMapping.is_init())
|
||||
overrideClrMapping->m_name = _T("a:overrideClrMapping");
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
overrideClrMapping = node.ReadNodeNoNS(_T("overrideClrMapping"));
|
||||
|
||||
@ -42,8 +42,40 @@ namespace PPTX
|
||||
class ColorModifier : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(ColorModifier)
|
||||
public:
|
||||
WritingElement_AdditionConstructors(ColorModifier)
|
||||
PPTX_LOGIC_BASE2(ColorModifier)
|
||||
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_prstClr;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
name = oReader.GetName();
|
||||
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if (XmlUtils::GetNameNoNS(name) == _T("alpha"))
|
||||
{
|
||||
ReadAttributes2( oReader );
|
||||
}
|
||||
}
|
||||
void ReadAttributes2(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
nullable_string sTmp;
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("val"), sTmp)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
if (val.is_init() && sTmp.is_init() && sTmp->find(wchar_t('%')) != -1)
|
||||
*val = (*val) * 1000;
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
name = node.GetName();
|
||||
|
||||
@ -43,9 +43,36 @@ namespace PPTX
|
||||
class PrstClr : public ColorBase
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(PrstClr)
|
||||
WritingElement_AdditionConstructors(PrstClr)
|
||||
PPTX_LOGIC_BASE2(PrstClr)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_prstClr;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
ColorModifier m;
|
||||
Modifiers.push_back(m);
|
||||
Modifiers.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
val = node.GetAttribute(_T("val"));
|
||||
|
||||
@ -49,6 +49,23 @@ namespace PPTX
|
||||
Modifiers.clear();
|
||||
node.LoadArray(_T("*"), Modifiers);
|
||||
}
|
||||
void SchemeClr::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
ColorModifier m;
|
||||
Modifiers.push_back(m);
|
||||
Modifiers.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring SchemeClr::toXML() const
|
||||
{
|
||||
|
||||
@ -44,12 +44,24 @@ namespace PPTX
|
||||
class SchemeClr : public ColorBase
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SchemeClr)
|
||||
WritingElement_AdditionConstructors(SchemeClr)
|
||||
PPTX_LOGIC_BASE2(SchemeClr)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_schemeClr;
|
||||
}
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
std::wstring sNodeNamespace;
|
||||
|
||||
@ -43,9 +43,47 @@ namespace PPTX
|
||||
class SrgbClr : public ColorBase
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SrgbClr)
|
||||
WritingElement_AdditionConstructors(SrgbClr)
|
||||
PPTX_LOGIC_BASE2(SrgbClr)
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_srgbClr;
|
||||
}
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring val;
|
||||
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
if (6 == val.length())
|
||||
{
|
||||
red = HexString2Int(val.substr(0, 2));
|
||||
green = HexString2Int(val.substr(2, 2));
|
||||
blue = HexString2Int(val.substr(4, 2));
|
||||
}
|
||||
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
ColorModifier m;
|
||||
Modifiers.push_back(m);
|
||||
Modifiers.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::wstring val = node.GetAttribute(_T("val"));
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class SysClr : public ColorBase
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SysClr)
|
||||
WritingElement_AdditionConstructors(SysClr)
|
||||
PPTX_LOGIC_BASE2(SysClr)
|
||||
|
||||
virtual DWORD GetRGBA(DWORD RGBA) const
|
||||
{
|
||||
@ -146,7 +147,33 @@ namespace PPTX
|
||||
Modifiers.clear();
|
||||
node.LoadArray(_T("*"), Modifiers);
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_sysClr;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
ColorModifier m;
|
||||
Modifiers.push_back(m);
|
||||
Modifiers.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("val"), val)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
|
||||
@ -126,7 +126,7 @@ namespace PPTX
|
||||
|
||||
void Controls::AddObjectsTo (const std::vector<SpTreeElem> *spTreeElements, NSShapeImageGen::CImageManager* pImageManager) const
|
||||
{
|
||||
for (long i=0; i < arrControls.size(); ++i)
|
||||
for (size_t i=0; i < arrControls.size(); ++i)
|
||||
{
|
||||
if (arrControls[i].spid.IsInit() == false) continue;
|
||||
|
||||
|
||||
@ -47,7 +47,8 @@ namespace PPTX
|
||||
class CustGeom : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CustGeom)
|
||||
WritingElement_AdditionConstructors(CustGeom)
|
||||
PPTX_LOGIC_BASE2(CustGeom)
|
||||
|
||||
CustGeom& operator=(const CustGeom& oSrc)
|
||||
{
|
||||
@ -65,7 +66,122 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_custGeom;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
if (sName == L"a:avLst")
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
continue;
|
||||
|
||||
int nParentDepth1 = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
|
||||
{
|
||||
std::wstring sName1 = oReader.GetName();
|
||||
|
||||
if (sName1 == L"a:gd")
|
||||
{
|
||||
Gd gd;
|
||||
avLst.push_back(gd);
|
||||
avLst.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sName == L"a:gdLst")
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
continue;
|
||||
|
||||
int nParentDepth1 = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
|
||||
{
|
||||
std::wstring sName1 = oReader.GetName();
|
||||
|
||||
if (sName1 == L"a:gd")
|
||||
{
|
||||
Gd gd;
|
||||
gdLst.push_back(gd);
|
||||
gdLst.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sName == L"a:rect")
|
||||
rect = oReader;
|
||||
else if (sName == L"a:pathLst")
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
continue;
|
||||
|
||||
int nParentDepth1 = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
|
||||
{
|
||||
std::wstring sName1 = oReader.GetName();
|
||||
|
||||
if (sName1 == L"a:path")
|
||||
{
|
||||
Path2D gd;
|
||||
pathLst.push_back(gd);
|
||||
pathLst.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sName == L"a:ahLst")
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
continue;
|
||||
|
||||
int nParentDepth1 = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
|
||||
{
|
||||
std::wstring sName1 = oReader.GetName();
|
||||
|
||||
if (sName1 == L"a:ahPolar")
|
||||
{
|
||||
AhBase gd;
|
||||
ahLst.push_back(gd);
|
||||
ahLst.back().fromXML(oReader);
|
||||
}
|
||||
else if (sName1 == L"a:ahXY")
|
||||
{
|
||||
AhBase gd;
|
||||
ahLst.push_back(gd);
|
||||
ahLst.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (sName == L"a:cxnLst")
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
continue;
|
||||
|
||||
int nParentDepth1 = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth1 ) )
|
||||
{
|
||||
std::wstring sName1 = oReader.GetName();
|
||||
|
||||
if (sName1 == L"a:cxn")
|
||||
{
|
||||
Cxn gd;
|
||||
cxnLst.push_back(gd);
|
||||
cxnLst.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class Cxn : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Cxn)
|
||||
WritingElement_AdditionConstructors(Cxn)
|
||||
PPTX_LOGIC_BASE2(Cxn)
|
||||
|
||||
Cxn& operator=(const Cxn& oSrc)
|
||||
{
|
||||
@ -55,8 +56,41 @@ namespace PPTX
|
||||
ang = oSrc.ang;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_cxn;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
public:
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
if (sName == L"a:pos")
|
||||
{
|
||||
ReadAttributes2(oReader);
|
||||
}
|
||||
}
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle( oReader, _T("ang"), ang )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
void ReadAttributes2(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("x"), x )
|
||||
WritingElement_ReadAttributes_Read_else_if ( oReader, _T("y"), y )
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
ang = node.GetAttribute(_T("ang"));
|
||||
@ -110,7 +144,7 @@ namespace PPTX
|
||||
public:
|
||||
std::wstring GetODString()const
|
||||
{
|
||||
return _T("<cxn ang=\"") + ang + _T("\"><pos x=\"") + x + _T("\" y=\"") + y + _T("\" /></cxn>");
|
||||
return _T("<cxn ang=\"") + ang + _T("\"><pos x=\"") + x + _T("\" y=\"") + y + _T("\"/></cxn>");
|
||||
}
|
||||
};
|
||||
} // namespace Logic
|
||||
|
||||
@ -41,28 +41,58 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
CxnSp::CxnSp()
|
||||
CxnSp::CxnSp(std::wstring ns)
|
||||
{
|
||||
m_namespace = ns;
|
||||
}
|
||||
|
||||
CxnSp::~CxnSp()
|
||||
{
|
||||
}
|
||||
|
||||
CxnSp::CxnSp(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
fromXML(node);
|
||||
}
|
||||
|
||||
const CxnSp& CxnSp::operator =(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
fromXML(node);
|
||||
return *this;
|
||||
}
|
||||
CxnSp::CxnSp(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
fromXML(oReader);
|
||||
}
|
||||
const CxnSp& CxnSp::operator =(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
fromXML(oReader);
|
||||
return *this;
|
||||
}
|
||||
void CxnSp::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(oReader.GetName());
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nParentDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nParentDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (_T("nvCxnSpPr") == strName)
|
||||
nvCxnSpPr = oReader;
|
||||
else if (_T("spPr") == strName)
|
||||
spPr = oReader;
|
||||
else if (_T("style") == strName)
|
||||
style = oReader;
|
||||
}
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
void CxnSp::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_namespace = XmlUtils::GetNamespace(node.GetName());
|
||||
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
@ -93,7 +123,7 @@ namespace PPTX
|
||||
oValue.Write(spPr);
|
||||
oValue.WriteNullable(style);
|
||||
|
||||
return XmlUtils::CreateNode(_T("<p:cxnSp>"), oValue);
|
||||
return XmlUtils::CreateNode(m_namespace + L":cxnSp", oValue);
|
||||
}
|
||||
|
||||
void CxnSp::FillParentPointersForChilds()
|
||||
|
||||
@ -46,13 +46,23 @@ namespace PPTX
|
||||
class CxnSp : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
CxnSp();
|
||||
CxnSp(std::wstring ns = L"p");
|
||||
virtual ~CxnSp();
|
||||
|
||||
explicit CxnSp(XmlUtils::CXmlNode& node);
|
||||
const CxnSp& operator =(XmlUtils::CXmlNode& node);
|
||||
|
||||
public:
|
||||
explicit CxnSp(XmlUtils::CXmlLiteReader& oReader);
|
||||
const CxnSp& operator =(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_cxnSp;
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
virtual void GetRect(Aggplus::RECT& pRect)const;
|
||||
|
||||
@ -72,12 +82,12 @@ namespace PPTX
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->StartNode(_T("wps:cxnSp"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->StartNode(_T("xdr:cxnSp"));
|
||||
else
|
||||
pWriter->StartNode(_T("p:cxnSp"));
|
||||
std::wstring namespace_ = m_namespace;
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX) namespace_ = L"wps";
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX) namespace_ = L"xdr";
|
||||
|
||||
pWriter->StartNode(namespace_ + L":cxnSp");
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
@ -87,19 +97,13 @@ namespace PPTX
|
||||
if (style.is_init())
|
||||
{
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
style->m_ns = _T("wps");
|
||||
style->m_namespace = _T("wps");
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
style->m_ns = _T("xdr");
|
||||
style->m_namespace = _T("xdr");
|
||||
|
||||
pWriter->Write(style);
|
||||
}
|
||||
|
||||
if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_DOCX)
|
||||
pWriter->EndNode(_T("wps:cxnSp"));
|
||||
else if (pWriter->m_lDocType == XMLWRITER_DOC_TYPE_XLSX)
|
||||
pWriter->EndNode(_T("xdr:cxnSp"));
|
||||
else
|
||||
pWriter->EndNode(_T("p:cxnSp"));
|
||||
pWriter->EndNode(namespace_ + L":cxnSp");
|
||||
}
|
||||
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
@ -123,8 +127,7 @@ namespace PPTX
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
style = new ShapeStyle();
|
||||
style->m_ns = _T("p");
|
||||
style = new ShapeStyle(L"p");
|
||||
style->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -138,7 +141,8 @@ namespace PPTX
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
public:
|
||||
std::wstring m_namespace;
|
||||
|
||||
NvCxnSpPr nvCxnSpPr;
|
||||
SpPr spPr;
|
||||
nullable<ShapeStyle> style;
|
||||
|
||||
@ -46,7 +46,11 @@ namespace PPTX
|
||||
class DefaultShapeDefinition : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(DefaultShapeDefinition)
|
||||
WritingElement_AdditionConstructors(DefaultShapeDefinition)
|
||||
|
||||
DefaultShapeDefinition()
|
||||
{
|
||||
}
|
||||
|
||||
DefaultShapeDefinition& operator=(const DefaultShapeDefinition& oSrc)
|
||||
{
|
||||
@ -61,11 +65,32 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (_T("spPr") == strName)
|
||||
spPr.fromXML(oReader);
|
||||
else if (_T("bodyPr") == strName)
|
||||
bodyPr = oReader;
|
||||
else if (_T("lstStyle") == strName)
|
||||
lstStyle.fromXML(oReader);
|
||||
else if (_T("style") == strName)
|
||||
style = oReader;
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
|
||||
XmlUtils::CXmlNodes oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
@ -95,7 +120,7 @@ namespace PPTX
|
||||
{
|
||||
XmlUtils::CNodeValue oValue;
|
||||
oValue.Write(spPr);
|
||||
oValue.Write(bodyPr);
|
||||
oValue.WriteNullable(bodyPr);
|
||||
oValue.Write(lstStyle);
|
||||
oValue.WriteNullable(style);
|
||||
|
||||
@ -105,7 +130,7 @@ namespace PPTX
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecord1(0, spPr);
|
||||
pWriter->WriteRecord1(1, bodyPr);
|
||||
pWriter->WriteRecord2(1, bodyPr);
|
||||
pWriter->WriteRecord1(2, lstStyle);
|
||||
pWriter->WriteRecord2(3, style);
|
||||
}
|
||||
@ -127,8 +152,8 @@ namespace PPTX
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
bodyPr.m_namespace = _T("a");
|
||||
bodyPr.fromPPTY(pReader);
|
||||
bodyPr = BodyPr(L"a");
|
||||
bodyPr->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
@ -139,8 +164,7 @@ namespace PPTX
|
||||
}
|
||||
case 3:
|
||||
{
|
||||
style = new ShapeStyle();
|
||||
style->m_ns = _T("a");
|
||||
style = new ShapeStyle(L"a");
|
||||
style->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -160,7 +184,9 @@ namespace PPTX
|
||||
pWriter->m_lFlag = 0x04;
|
||||
spPr.toXmlWriter(pWriter);
|
||||
pWriter->m_lFlag = 0;
|
||||
bodyPr.toXmlWriter(pWriter);
|
||||
|
||||
if (bodyPr.IsInit())
|
||||
bodyPr->toXmlWriter(pWriter);
|
||||
lstStyle.toXmlWriter(pWriter);
|
||||
pWriter->Write(style);
|
||||
|
||||
@ -169,16 +195,19 @@ namespace PPTX
|
||||
|
||||
public:
|
||||
SpPr spPr;
|
||||
BodyPr bodyPr;
|
||||
nullable<BodyPr> bodyPr;
|
||||
TextListStyle lstStyle;
|
||||
nullable<ShapeStyle> style;
|
||||
public:
|
||||
std::wstring m_name;
|
||||
|
||||
std::wstring m_name;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
spPr.SetParentPointer(this);
|
||||
bodyPr.SetParentPointer(this);
|
||||
|
||||
if (bodyPr.IsInit())
|
||||
bodyPr->SetParentPointer(this);
|
||||
|
||||
lstStyle.SetParentPointer(this);
|
||||
if(style.IsInit())
|
||||
style->SetParentPointer(this);
|
||||
|
||||
@ -35,7 +35,24 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
void EffectDag::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
Effects.clear();
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring sName = oReader.GetName();
|
||||
|
||||
UniEffect uni;
|
||||
Effects.push_back(uni);
|
||||
Effects.back().fromXML(oReader);
|
||||
}
|
||||
}
|
||||
void EffectDag::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = node.GetName();
|
||||
|
||||
@ -44,10 +44,10 @@ namespace PPTX
|
||||
|
||||
class EffectDag : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
public:
|
||||
WritingElement_AdditionConstructors(EffectDag)
|
||||
PPTX_LOGIC_BASE2(EffectDag)
|
||||
|
||||
PPTX_LOGIC_BASE(EffectDag)
|
||||
|
||||
EffectDag& operator=(const EffectDag& oSrc)
|
||||
{
|
||||
parentFile = oSrc.parentFile;
|
||||
@ -59,11 +59,22 @@ namespace PPTX
|
||||
m_name = oSrc.m_name;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_effectDag;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS ( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, L"name", name)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, L"type", type)
|
||||
WritingElement_ReadAttributes_End ( oReader )
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
@ -93,7 +104,7 @@ namespace PPTX
|
||||
std::vector<UniEffect> Effects;
|
||||
nullable_string name;
|
||||
nullable_limit<Limit::EffectContainerType> type;
|
||||
std::wstring m_name;
|
||||
std::wstring m_name;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
|
||||
@ -35,8 +35,6 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
|
||||
void EffectLst::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
blur = node.ReadNode(_T("a:blur"));
|
||||
@ -50,7 +48,37 @@ namespace PPTX
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void EffectLst::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == L"a:blur")
|
||||
blur = oReader;
|
||||
if (strName == L"a:fillOverlay")
|
||||
fillOverlay = oReader;
|
||||
if (strName == L"a:glow")
|
||||
glow = oReader;
|
||||
if (strName == L"a:innerShdw")
|
||||
innerShdw = oReader;
|
||||
if (strName == L"a:outerShdw")
|
||||
outerShdw = oReader;
|
||||
if (strName == L"a:prstShdw")
|
||||
prstShdw = oReader;
|
||||
if (strName == L"a:reflection")
|
||||
reflection = oReader;
|
||||
if (strName == L"a:softEdge")
|
||||
softEdge = oReader;
|
||||
|
||||
}
|
||||
}
|
||||
std::wstring EffectLst::toXML() const
|
||||
{
|
||||
std::wstring str = _T("<a:effectLst>");
|
||||
|
||||
@ -47,17 +47,25 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
class EffectLst : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(EffectLst)
|
||||
public:
|
||||
WritingElement_AdditionConstructors(EffectLst)
|
||||
PPTX_LOGIC_BASE2(EffectLst)
|
||||
|
||||
EffectLst& operator=(const EffectLst& oSrc);
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
return OOX::et_a_effectLst;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
@ -78,14 +86,14 @@ namespace PPTX
|
||||
}
|
||||
|
||||
public:
|
||||
nullable<Blur> blur;
|
||||
nullable<FillOverlay> fillOverlay;
|
||||
nullable<Glow> glow;
|
||||
nullable<InnerShdw> innerShdw;
|
||||
nullable<OuterShdw> outerShdw;
|
||||
nullable<PrstShdw> prstShdw;
|
||||
nullable<Reflection> reflection;
|
||||
nullable<SoftEdge> softEdge;
|
||||
nullable<Blur> blur;
|
||||
nullable<FillOverlay> fillOverlay;
|
||||
nullable<Glow> glow;
|
||||
nullable<InnerShdw> innerShdw;
|
||||
nullable<OuterShdw> outerShdw;
|
||||
nullable<PrstShdw> prstShdw;
|
||||
nullable<Reflection> reflection;
|
||||
nullable<SoftEdge> softEdge;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class EffectProperties : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EffectProperties)
|
||||
WritingElement_AdditionConstructors(EffectProperties)
|
||||
PPTX_LOGIC_BASE2(EffectProperties)
|
||||
|
||||
EffectProperties& operator=(const EffectProperties& oSrc)
|
||||
{
|
||||
@ -54,7 +55,23 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType () const
|
||||
{
|
||||
if (List.IsInit())
|
||||
return List->getType();
|
||||
return OOX::et_Unknown;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oReader.GetName());
|
||||
|
||||
if (strName == _T("effectLst"))
|
||||
List.reset(new Logic::EffectLst(oReader));
|
||||
else if(strName == _T("effectDag"))
|
||||
List.reset(new Logic::EffectDag(oReader));
|
||||
else
|
||||
List.reset();
|
||||
}
|
||||
|
||||
virtual bool is_init() const {return (List.IsInit());};
|
||||
|
||||
|
||||
@ -44,7 +44,24 @@ namespace PPTX
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void EffectStyle::fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
if (strName == L"a:scene3d")
|
||||
scene3d = oReader;
|
||||
else if (strName == L"a:sp3d")
|
||||
sp3d = oReader;
|
||||
else
|
||||
EffectList.fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
std::wstring EffectStyle::toXML() const
|
||||
{
|
||||
|
||||
@ -46,7 +46,8 @@ namespace PPTX
|
||||
class EffectStyle : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EffectStyle)
|
||||
WritingElement_AdditionConstructors(EffectStyle)
|
||||
PPTX_LOGIC_BASE2(EffectStyle)
|
||||
|
||||
EffectStyle& operator=(const EffectStyle& oSrc)
|
||||
{
|
||||
@ -58,8 +59,11 @@ namespace PPTX
|
||||
sp3d = oSrc.sp3d;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_effectStyle;
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlLiteReader& oReader);
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class AlphaBiLevel : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaBiLevel)
|
||||
WritingElement_AdditionConstructors(AlphaBiLevel)
|
||||
PPTX_LOGIC_BASE2(AlphaBiLevel)
|
||||
|
||||
AlphaBiLevel& operator=(const AlphaBiLevel& oSrc)
|
||||
{
|
||||
@ -54,7 +55,22 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaBiLevel;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_ReadSingle ( oReader, _T("thresh"), thresh)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"thresh", thresh);
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class AlphaCeiling : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaCeiling)
|
||||
WritingElement_AdditionConstructors(AlphaCeiling)
|
||||
PPTX_LOGIC_BASE2(AlphaCeiling)
|
||||
|
||||
AlphaCeiling& operator=(const AlphaCeiling& oSrc)
|
||||
{
|
||||
@ -59,7 +60,13 @@ namespace PPTX
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaCeiling;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class AlphaFloor : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaFloor)
|
||||
WritingElement_AdditionConstructors(AlphaFloor)
|
||||
PPTX_LOGIC_BASE2(AlphaFloor)
|
||||
|
||||
AlphaFloor& operator=(const AlphaFloor& oSrc)
|
||||
{
|
||||
@ -52,12 +53,16 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaFloor;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return _T("<a:alphaFloor/>");
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class AlphaInv : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaInv)
|
||||
WritingElement_AdditionConstructors(AlphaInv)
|
||||
PPTX_LOGIC_BASE2(AlphaInv)
|
||||
|
||||
AlphaInv& operator=(const AlphaInv& oSrc)
|
||||
{
|
||||
@ -55,7 +56,23 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaInv;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
Color.fromXML(oReader);
|
||||
}
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Color.GetColorFrom(node);
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class AlphaMod : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaMod)
|
||||
WritingElement_AdditionConstructors(AlphaMod)
|
||||
PPTX_LOGIC_BASE2(AlphaMod)
|
||||
|
||||
AlphaMod& operator=(const AlphaMod& oSrc)
|
||||
{
|
||||
@ -54,8 +55,28 @@ namespace PPTX
|
||||
cont = oSrc.cont;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaMod;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
if (strName == L"a:cont")
|
||||
{
|
||||
cont = oReader;
|
||||
break;
|
||||
}
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cont = node.ReadNode(_T("a:cont"));
|
||||
|
||||
@ -43,8 +43,8 @@ namespace PPTX
|
||||
class AlphaModFix : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(AlphaModFix)
|
||||
WritingElement_AdditionConstructors(AlphaModFix)
|
||||
PPTX_LOGIC_BASE2(AlphaModFix)
|
||||
|
||||
AlphaModFix& operator=(const AlphaModFix& oSrc)
|
||||
{
|
||||
@ -53,9 +53,23 @@ namespace PPTX
|
||||
|
||||
amt = oSrc.amt;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaModFix;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("amt"), amt)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"amt", amt);
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(AlphaOutset)
|
||||
WritingElement_AdditionConstructors(AlphaOutset)
|
||||
PPTX_LOGIC_BASE2(AlphaOutset)
|
||||
|
||||
AlphaOutset& operator=(const AlphaOutset& oSrc)
|
||||
{
|
||||
@ -54,8 +55,20 @@ namespace PPTX
|
||||
rad = oSrc.rad;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaOutset;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"rad", rad);
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class AlphaRepl : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(AlphaRepl)
|
||||
WritingElement_AdditionConstructors(AlphaRepl)
|
||||
PPTX_LOGIC_BASE2(AlphaRepl)
|
||||
|
||||
AlphaRepl& operator=(const AlphaRepl& oSrc)
|
||||
{
|
||||
@ -53,8 +54,22 @@ namespace PPTX
|
||||
a = oSrc.a;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_alphaRepl;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("a"), a)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"a", a);
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(BiLevel)
|
||||
WritingElement_AdditionConstructors(BiLevel)
|
||||
PPTX_LOGIC_BASE2(BiLevel)
|
||||
|
||||
BiLevel& operator=(const BiLevel& oSrc)
|
||||
{
|
||||
@ -54,8 +55,22 @@ namespace PPTX
|
||||
thresh = oSrc.thresh;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_biLevel;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("thresh"), thresh)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"thresh", thresh);
|
||||
|
||||
@ -45,8 +45,8 @@ namespace PPTX
|
||||
class Blend : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(Blend)
|
||||
WritingElement_AdditionConstructors(Blend)
|
||||
PPTX_LOGIC_BASE2(Blend)
|
||||
|
||||
Blend& operator=(const Blend& oSrc)
|
||||
{
|
||||
@ -57,8 +57,32 @@ namespace PPTX
|
||||
blend = oSrc.blend;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_blend;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
public:
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == L"a:cont")
|
||||
cont = oReader;
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("blend"), blend)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cont = node.ReadNode(_T("a:cont"));
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(Blur)
|
||||
WritingElement_AdditionConstructors(Blur)
|
||||
PPTX_LOGIC_BASE2(Blur)
|
||||
|
||||
Blur& operator=(const Blur& oSrc)
|
||||
{
|
||||
@ -55,7 +56,21 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_blur;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("grow"), grow)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"rad", rad);
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
class ClrChange : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(ClrChange)
|
||||
WritingElement_AdditionConstructors(ClrChange)
|
||||
PPTX_LOGIC_BASE2(ClrChange)
|
||||
|
||||
ClrChange& operator=(const ClrChange& oSrc)
|
||||
{
|
||||
@ -56,8 +57,35 @@ namespace PPTX
|
||||
useA = oSrc.useA;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_clrChange;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
if (strName == L"a:clrTo")
|
||||
ClrTo.fromXMLParent(oReader);
|
||||
else if (strName == L"a:clrFrom")
|
||||
ClrFrom.fromXMLParent(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("useA"), useA)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode node1 = node.ReadNode(_T("a:clrFrom"));
|
||||
|
||||
@ -45,7 +45,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(ClrRepl)
|
||||
WritingElement_AdditionConstructors(ClrRepl)
|
||||
PPTX_LOGIC_BASE2(ClrRepl)
|
||||
|
||||
ClrRepl& operator=(const ClrRepl& oSrc)
|
||||
{
|
||||
@ -55,8 +56,24 @@ namespace PPTX
|
||||
Color = oSrc.Color;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_clrRepl;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
public:
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
Color.fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Color.GetColorFrom(node);
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class Duotone : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Duotone)
|
||||
WritingElement_AdditionConstructors(Duotone)
|
||||
PPTX_LOGIC_BASE2(Duotone)
|
||||
|
||||
Duotone& operator=(const Duotone& oSrc)
|
||||
{
|
||||
@ -53,15 +54,32 @@ namespace PPTX
|
||||
Colors = oSrc.Colors;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_duotone;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
public:
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
UniColor col;
|
||||
Colors.push_back(col);
|
||||
Colors.back().fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Colors.clear();
|
||||
node.LoadArray(_T("*"), Colors);
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
XmlUtils::CNodeValue oValue;
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(EffectElement)
|
||||
WritingElement_AdditionConstructors(EffectElement)
|
||||
PPTX_LOGIC_BASE2(EffectElement)
|
||||
|
||||
EffectElement& operator=(const EffectElement& oSrc)
|
||||
{
|
||||
@ -54,8 +55,21 @@ namespace PPTX
|
||||
ref = oSrc.ref;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_effect;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("ref"), ref)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"ref", ref);
|
||||
|
||||
@ -44,7 +44,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(FillEffect)
|
||||
WritingElement_AdditionConstructors(FillEffect)
|
||||
PPTX_LOGIC_BASE2(FillEffect)
|
||||
|
||||
FillEffect& operator=(const FillEffect& oSrc)
|
||||
{
|
||||
@ -54,8 +55,24 @@ namespace PPTX
|
||||
Fill = oSrc.Fill;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_fill;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
public:
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
Fill.fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Fill.GetFillFrom(node);
|
||||
|
||||
@ -46,7 +46,8 @@ namespace PPTX
|
||||
{
|
||||
public:
|
||||
|
||||
PPTX_LOGIC_BASE(FillOverlay)
|
||||
WritingElement_AdditionConstructors(FillOverlay)
|
||||
PPTX_LOGIC_BASE2(FillOverlay)
|
||||
|
||||
FillOverlay& operator=(const FillOverlay& oSrc)
|
||||
{
|
||||
@ -58,7 +59,32 @@ namespace PPTX
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_fillOverlay;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
Fill.fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("blend"), blend)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Fill.GetFillFrom(node);
|
||||
|
||||
@ -40,11 +40,11 @@ namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
class Glow : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Glow)
|
||||
WritingElement_AdditionConstructors(Glow)
|
||||
PPTX_LOGIC_BASE2(Glow)
|
||||
|
||||
Glow& operator=(const Glow& oSrc)
|
||||
{
|
||||
@ -55,14 +55,40 @@ namespace PPTX
|
||||
rad = oSrc.rad;
|
||||
return *this;
|
||||
}
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_clrRepl;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
|
||||
public:
|
||||
if ( oReader.IsEmptyNode() )
|
||||
return;
|
||||
|
||||
int nCurDepth = oReader.GetDepth();
|
||||
while( oReader.ReadNextSiblingNode( nCurDepth ) )
|
||||
{
|
||||
std::wstring strName = oReader.GetName();
|
||||
|
||||
Color.fromXML(oReader);
|
||||
}
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("rad"), rad)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Color.GetColorFrom(node);
|
||||
node.ReadAttributeBase(L"rad", rad);
|
||||
|
||||
FillParentPointersForChilds();
|
||||
|
||||
Normalize();
|
||||
}
|
||||
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class Grayscl : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Grayscl)
|
||||
WritingElement_AdditionConstructors(Grayscl)
|
||||
PPTX_LOGIC_BASE2(Grayscl)
|
||||
|
||||
Grayscl& operator=(const Grayscl& oSrc)
|
||||
{
|
||||
@ -52,8 +53,13 @@ namespace PPTX
|
||||
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_grayscl;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
}
|
||||
|
||||
@ -43,7 +43,8 @@ namespace PPTX
|
||||
class HslEffect : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(HslEffect)
|
||||
WritingElement_AdditionConstructors(HslEffect)
|
||||
PPTX_LOGIC_BASE2(HslEffect)
|
||||
|
||||
HslEffect& operator=(const HslEffect& oSrc)
|
||||
{
|
||||
@ -55,8 +56,24 @@ namespace PPTX
|
||||
sat = oSrc.sat;
|
||||
return *this;
|
||||
}
|
||||
|
||||
public:
|
||||
virtual OOX::EElementType getType() const
|
||||
{
|
||||
return OOX::et_a_hsl;
|
||||
}
|
||||
void fromXML(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
ReadAttributes( oReader );
|
||||
}
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
WritingElement_ReadAttributes_Start_No_NS( oReader )
|
||||
WritingElement_ReadAttributes_Read_if ( oReader, _T("hue"), hue)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("sat"), sat)
|
||||
WritingElement_ReadAttributes_Read_else_if( oReader, _T("lum"), lum)
|
||||
WritingElement_ReadAttributes_End( oReader )
|
||||
|
||||
Normalize();
|
||||
}
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
node.ReadAttributeBase(L"hue", hue);
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user