mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-10 18:05:41 +08:00
fix bug #76361 (add custom xml in pptx)
This commit is contained in:
@ -1643,15 +1643,15 @@ namespace NSBinPptxRW
|
||||
|
||||
m_lNextRelsID = 3;
|
||||
}
|
||||
void CRelsGenerator::WriteMasters(int nCount)
|
||||
std::wstring CRelsGenerator::WriteMaster(int nIndex)
|
||||
{
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
std::wstring strRels = L"<Relationship Id=\"rId" + std::to_wstring( m_lNextRelsID++ ) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster\" Target=\"slideMasters/slideMaster" +
|
||||
std::to_wstring(i + 1) + L".xml\"/>";
|
||||
m_pWriter->WriteString(strRels);
|
||||
}
|
||||
std::wstring rid = L"rId" + std::to_wstring(m_lNextRelsID++);
|
||||
std::wstring strRels = L"<Relationship Id=\"" + rid +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slideMaster\" Target=\"slideMasters/slideMaster"
|
||||
+ std::to_wstring(nIndex) + L".xml\"/>";
|
||||
m_pWriter->WriteString(strRels);
|
||||
|
||||
return rid;
|
||||
}
|
||||
void CRelsGenerator::WriteThemes(int nCount)
|
||||
{
|
||||
@ -1663,23 +1663,26 @@ namespace NSBinPptxRW
|
||||
m_pWriter->WriteString(strRels);
|
||||
}
|
||||
}
|
||||
void CRelsGenerator::WriteSlides(int nCount)
|
||||
std::wstring CRelsGenerator::WriteSlide(int nIndex)
|
||||
{
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
std::wstring strRels = L"<Relationship Id=\"rId" + std::to_wstring( m_lNextRelsID++ ) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide\" Target=\"slides/slide" +
|
||||
std::to_wstring(i + 1) + L".xml\"/>";
|
||||
m_pWriter->WriteString(strRels);
|
||||
}
|
||||
std::wstring rid = L"rId" + std::to_wstring(m_lNextRelsID++);
|
||||
|
||||
std::wstring strRels = L"<Relationship Id=\"" + rid +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/slide\" Target=\"slides/slide" +
|
||||
std::to_wstring(nIndex) + L".xml\"/>";
|
||||
m_pWriter->WriteString(strRels);
|
||||
|
||||
return rid;
|
||||
}
|
||||
void CRelsGenerator::WriteSlideComments(int nComment)
|
||||
std::wstring CRelsGenerator::WriteSlideComments(int nIndexComment)
|
||||
{
|
||||
std::wstring strRels = L"<Relationship Id=\"rId" + std::to_wstring( m_lNextRelsID++ ) +
|
||||
std::wstring rid = L"rId" + std::to_wstring(m_lNextRelsID++);
|
||||
std::wstring strRels = L"<Relationship Id=\"" + rid +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments\" Target=\"../comments/comment" +
|
||||
std::to_wstring(nComment) + L".xml\"/>";
|
||||
std::to_wstring(nIndexComment) + L".xml\"/>";
|
||||
|
||||
m_pWriter->WriteString(strRels);
|
||||
return rid;
|
||||
}
|
||||
void CRelsGenerator::WriteNotesMaster()
|
||||
{
|
||||
@ -1687,23 +1690,23 @@ namespace NSBinPptxRW
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/notesMaster\" Target=\"notesMasters/notesMaster1.xml\"/>";
|
||||
m_pWriter->WriteString(strRels0);
|
||||
}
|
||||
void CRelsGenerator::WritePresentationComments(int nComment)
|
||||
std::wstring CRelsGenerator::WritePresentationComments(int nIndexComment)
|
||||
{
|
||||
std::wstring strRels = L"<Relationship Id=\"rId" + std::to_wstring( m_lNextRelsID++ ) +
|
||||
std::wstring rid = L"rId" + std::to_wstring(m_lNextRelsID++);
|
||||
std::wstring strRels = L"<Relationship Id=\"" + rid +
|
||||
L"\" Type=\"http://schemas.onlyoffice.com/comments\" Target=\"comments/comment" +
|
||||
std::to_wstring(nComment) + L".xml\"/>";
|
||||
std::to_wstring(nIndexComment) + L".xml\"/>";
|
||||
|
||||
m_pWriter->WriteString(strRels);
|
||||
return rid;
|
||||
}
|
||||
void CRelsGenerator::WriteCustoms(int nCount)
|
||||
std::wstring CRelsGenerator::WriteCustom(const std::wstring & file_name)
|
||||
{
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
std::wstring strRels = L"<Relationship Id=\"rId" + std::to_wstring(m_lNextRelsID++) +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\" Target=\"../customXml/item" +
|
||||
std::to_wstring(i + 1) + L".xml\"/>";
|
||||
std::wstring rid = L"rId" + std::to_wstring(m_lNextRelsID++);
|
||||
std::wstring strRels = L"<Relationship Id=\"" + rid +
|
||||
L"\" Type=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships/customXml\" Target=\"../customXml/" + file_name + L"\"/>";
|
||||
m_pWriter->WriteString(strRels);
|
||||
}
|
||||
return rid;
|
||||
}
|
||||
void CRelsGenerator::EndPresentationRels(bool bIsCommentsAuthors, bool bIsVbaProject, bool bIsJsaProject)
|
||||
{
|
||||
|
||||
@ -500,16 +500,16 @@ namespace NSBinPptxRW
|
||||
void StartNotes (int nIndexSlide);
|
||||
void StartThemeNotesMaster(int nIndexTheme);
|
||||
|
||||
void WriteMasters (int nCount);
|
||||
void WriteThemes (int nCount);
|
||||
void WriteSlides (int nCount);
|
||||
void WriteNotesMaster();
|
||||
|
||||
void WriteSlideComments (int nComment);
|
||||
void WritePresentationComments (int nComment);
|
||||
std::wstring WriteSlideComments(int nIndexComment);
|
||||
std::wstring WritePresentationComments(int nIndexComment);
|
||||
|
||||
std::wstring WriteCustom(const std::wstring& file_name);
|
||||
std::wstring WriteMaster(int nIndex);
|
||||
std::wstring WriteSlide(int nIndex);
|
||||
|
||||
void WriteCustoms(int nCount);
|
||||
|
||||
unsigned int WriteRels (const std::wstring& bsType, const std::wstring& bsTarget, const std::wstring& bsTargetMode);
|
||||
unsigned int WriteHyperlink (const std::wstring& strLink, const bool& bIsActionInit);
|
||||
|
||||
|
||||
@ -31,7 +31,7 @@
|
||||
*/
|
||||
|
||||
#include "Converter.h"
|
||||
#include "../../PPTXFormat/Presentation/SldSz.h"
|
||||
#include "../../PPTXFormat/Presentation/PresentationChildElements.h"
|
||||
#include "../../PPTXFormat/NotesSlide.h"
|
||||
|
||||
namespace PPTX2EditorAdvanced
|
||||
|
||||
@ -703,46 +703,6 @@ namespace NSBinPptxRW
|
||||
SetRequiredDefaultsCore();
|
||||
}
|
||||
|
||||
pPair = m_mainTables.find(NSBinPptxRW::NSMainTables::CustomProperties);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
try
|
||||
{
|
||||
m_oCustomProperties = new PPTX::CustomProperties(&m_oDocument);
|
||||
m_oCustomProperties->fromPPTY(&m_oReader);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
||||
// customs
|
||||
pPair = m_mainTables.find(NSBinPptxRW::NSMainTables::Customs);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
OOX::CPath pathFolder = m_strDstFolder + FILE_SEPARATOR_STR + _T("customXml");
|
||||
OOX::CPath pathFolderRels = pathFolder + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
NSDirectory::CreateDirectory(pathFolder.GetPath());
|
||||
NSDirectory::CreateDirectory(pathFolderRels.GetPath());
|
||||
|
||||
m_oReader.Seek(pPair->second);
|
||||
int nCountCustoms = m_oReader.GetLong();
|
||||
|
||||
for (int i = 0; i < nCountCustoms; ++i)
|
||||
{
|
||||
smart_ptr<OOX::CCustomXML> pCustomXml = new OOX::CCustomXML(NULL, false);
|
||||
|
||||
pCustomXml->fromPPTY(&m_oReader);
|
||||
|
||||
//smart_ptr<OOX::File> pCustomXmlFile = pCustomXml.smart_dynamic_cast<OOX::File>();
|
||||
//m_oPresentation.Add(pCustomXmlFile);
|
||||
OOX::CPath filename(L"item" + std::to_wstring(i + 1) + L".xml");
|
||||
pCustomXml->write(pathFolder / filename, OOX::CPath(m_strDstFolder), *m_oImageManager.m_pContentTypes);
|
||||
}
|
||||
m_oReader.m_pRels->WriteCustoms(nCountCustoms);
|
||||
}
|
||||
|
||||
// presProps
|
||||
pPair = m_mainTables.find(NSBinPptxRW::NSMainTables::PresProps);
|
||||
if (m_mainTables.end() != pPair)
|
||||
@ -836,6 +796,45 @@ namespace NSBinPptxRW
|
||||
m_oReader.m_pRels->Clear();
|
||||
m_oReader.m_pRels->StartRels();
|
||||
|
||||
pPair = m_mainTables.find(NSBinPptxRW::NSMainTables::CustomProperties);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
m_oReader.Seek(pPair->second);
|
||||
try
|
||||
{
|
||||
m_oCustomProperties = new PPTX::CustomProperties(&m_oDocument);
|
||||
m_oCustomProperties->fromPPTY(&m_oReader);
|
||||
}
|
||||
catch (...)
|
||||
{
|
||||
}
|
||||
}
|
||||
// customs
|
||||
pPair = m_mainTables.find(NSBinPptxRW::NSMainTables::Customs);
|
||||
if (m_mainTables.end() != pPair)
|
||||
{
|
||||
OOX::CPath pathFolder = m_strDstFolder + FILE_SEPARATOR_STR + _T("customXml");
|
||||
OOX::CPath pathFolderRels = pathFolder + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
NSDirectory::CreateDirectory(pathFolder.GetPath());
|
||||
NSDirectory::CreateDirectory(pathFolderRels.GetPath());
|
||||
|
||||
m_oReader.Seek(pPair->second);
|
||||
int nCountCustoms = m_oReader.GetLong();
|
||||
|
||||
for (int i = 0; i < nCountCustoms; ++i)
|
||||
{
|
||||
smart_ptr<OOX::CCustomXML> pCustomXml = new OOX::CCustomXML(NULL, false);
|
||||
|
||||
pCustomXml->fromPPTY(&m_oReader);
|
||||
|
||||
OOX::CPath filename(L"item" + std::to_wstring(i + 1) + L".xml");
|
||||
pCustomXml->write(pathFolder / filename, OOX::CPath(m_strDstFolder), *m_oImageManager.m_pContentTypes);
|
||||
|
||||
std::wstring rid = m_oReader.m_pRels->WriteCustom(filename.GetPath());
|
||||
m_oPresentation.custDataLst.push_back(rid);
|
||||
}
|
||||
}
|
||||
// tablestyles
|
||||
oXmlWriter.ClearNoAttack();
|
||||
m_oTableStyles.toXmlWriter(&oXmlWriter);
|
||||
@ -869,16 +868,14 @@ namespace NSBinPptxRW
|
||||
|
||||
std::wstring sId = std::to_wstring((_UINT64)(0x80000000 + (_UINT64)nCountLayouts));
|
||||
|
||||
std::wstring rid = m_oReader.m_pRels->WriteMaster(i + 1);
|
||||
m_oPresentation.sldMasterIdLst[i].id = sId;
|
||||
m_oPresentation.sldMasterIdLst[i].rid = (size_t)(i + 1);
|
||||
m_oPresentation.sldMasterIdLst[i].rid = rid;
|
||||
nCountLayouts += (LONG)(m_arSlideMasters_Theme[i].m_arLayouts.size() + 1);
|
||||
}
|
||||
|
||||
m_oReader.m_pRels->WriteMasters(nCountMasters);
|
||||
m_oReader.m_pRels->WriteThemes(nCountThemes);
|
||||
|
||||
unsigned int nCurrentRels = m_oReader.m_pRels->m_lNextRelsID;
|
||||
|
||||
m_oPresentation.sldIdLst.clear();
|
||||
for (LONG i = 0; i < nCountSlides; ++i)
|
||||
{
|
||||
@ -887,9 +884,8 @@ namespace NSBinPptxRW
|
||||
std::wstring sId = std::to_wstring(256 + i);
|
||||
|
||||
m_oPresentation.sldIdLst[i].id = sId;
|
||||
m_oPresentation.sldIdLst[i].rid = nCurrentRels++;
|
||||
m_oPresentation.sldIdLst[i].rid = m_oReader.m_pRels->WriteSlide(i + 1);
|
||||
}
|
||||
m_oReader.m_pRels->WriteSlides(nCountSlides);
|
||||
|
||||
m_oPresentation.notesMasterIdLst.clear();
|
||||
if (bNotesMasterPresent)
|
||||
|
||||
@ -232,13 +232,6 @@ namespace PPTX
|
||||
RGB = parentFileAs<Theme>().GetABGRFromScheme(str);
|
||||
}
|
||||
}
|
||||
else if(parentFileIs<Presentation>())
|
||||
RGB = parentFileAs<Presentation>().GetARGBFromMap(str);
|
||||
//{
|
||||
// if(val.get() == "phClr")
|
||||
// RGB = rgb;
|
||||
// else RGB = parentFileAs<Theme>().GetARGBFromScheme(str);
|
||||
//}
|
||||
|
||||
blue = static_cast<unsigned char>(RGB & 0xFF);
|
||||
green = static_cast<unsigned char>((RGB & 0xFF00)>>8);
|
||||
|
||||
@ -32,62 +32,12 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "../Presentation/SectionLst.h"
|
||||
#include "../Presentation/PresentationChildElements.h"
|
||||
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<p:ext uri="{DAA4B4D4-6D71-4841-9C94-3DE7FCFB9230}">
|
||||
//<p14:media xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main" r:embed="rId2">
|
||||
//<p14:trim st="93333.0816" end="96583.4816"/>
|
||||
//</p14:media>
|
||||
//</p:ext>
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<ext uri="{05C60535-1F16-4fd2-B633-F4F36F0B64E0}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main">
|
||||
// <x14:sparklineGroups xmlns:xm="http://schemas.microsoft.com/office/excel/2006/main">
|
||||
// <x14:sparklineGroup displayEmptyCellsAs="gap">
|
||||
// <x14:colorSeries theme="5" tint="-0.499984740745262"/>
|
||||
// <x14:colorNegative theme="6"/>
|
||||
// <x14:colorAxis rgb="FF000000"/>
|
||||
// <x14:colorMarkers theme="5" tint="-0.499984740745262"/>
|
||||
// <x14:colorFirst theme="5" tint="0.39997558519241921"/>
|
||||
// <x14:colorLast theme="5" tint="0.39997558519241921"/>
|
||||
// <x14:colorHigh theme="5"/>
|
||||
// <x14:colorLow theme="5"/>
|
||||
// <x14:sparklines>
|
||||
// <x14:sparkline>
|
||||
// <xm:f>Лист1!D10:D12</xm:f>
|
||||
// <xm:sqref>H12</xm:sqref>
|
||||
// </x14:sparkline>
|
||||
// </x14:sparklines>
|
||||
// </x14:sparklineGroup>
|
||||
// </x14:sparklineGroups>
|
||||
//</ext>
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
//<a:ext uri="{63B3BB69-23CF-44E3-9099-C40C66FF867C}">
|
||||
// <a14:compatExt spid="_x0000_s1025"/>
|
||||
//</a:ext>
|
||||
//--------------------------------------------------------------------------------------------------------------
|
||||
// <p:ext uri="{521415D9-36F7-43E2-AB2F-B90AF26B5E84}">
|
||||
// <p14:sectionLst xmlns:p14="http://schemas.microsoft.com/office/powerpoint/2010/main">
|
||||
// <p14:section name="123" id="{775558AA-D529-4C59-9762-B6F3CDAC8092}">
|
||||
// <p14:sldIdLst>
|
||||
// <p14:sldId id="256"/>
|
||||
// <p14:sldId id="257"/>
|
||||
// </p14:sldIdLst>
|
||||
// </p14:section>
|
||||
// <p14:section name="qwerty" id="{296A3C58-7D47-4848-A546-3C86980BE927}">
|
||||
// <p14:sldIdLst>
|
||||
// <p14:sldId id="258"/>
|
||||
// </p14:sldIdLst>
|
||||
// </p14:section>
|
||||
// <p14:section name="Раздел без заголовка" id="{DA908BF8-2A15-4E46-B49B-C1BB4B4AAF31}">
|
||||
// <p14:sldIdLst/>
|
||||
// </p14:section>
|
||||
// </p14:sectionLst>
|
||||
// </p:ext>
|
||||
// <p:ext uri="{EFAFB233-063F-42B5-8137-9DF3F51BA10A}">
|
||||
// <p15:sldGuideLst xmlns:p15="http://schemas.microsoft.com/office/powerpoint/2012/main"/>
|
||||
// </p:ext>
|
||||
//</p:extLst>
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
|
||||
@ -34,7 +34,6 @@
|
||||
|
||||
#include "ShowPr/PresentationPr.h"
|
||||
#include "ShowPr/Browse.h"
|
||||
#include "ShowPr/CustShow.h"
|
||||
#include "ShowPr/Kiosk.h"
|
||||
#include "ShowPr/Present.h"
|
||||
#include "ShowPr/SldAll.h"
|
||||
@ -55,7 +54,7 @@ namespace PPTX
|
||||
void PresProps::read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
oNode.FromXmlFile(filename.m_strFilename);
|
||||
oNode.FromXmlFile(filename.m_strFilename); //
|
||||
|
||||
ClrMru.clear();
|
||||
XmlUtils::CXmlNode oNodeClr;
|
||||
@ -141,12 +140,12 @@ namespace PPTX
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
showPr = new nsPresentationPr::ShowPr();
|
||||
showPr = new nsPresentation::ShowPr();
|
||||
showPr->fromPPTY(pReader);
|
||||
}break;
|
||||
case 2:
|
||||
{
|
||||
printPr = new nsPresentationPr::PrintPr();
|
||||
printPr = new nsPresentation::PrintPr();
|
||||
printPr->fromPPTY(pReader);
|
||||
}break;
|
||||
default:
|
||||
|
||||
@ -39,7 +39,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class ShowPr;
|
||||
class PrintPr;
|
||||
@ -64,7 +64,7 @@ namespace PPTX
|
||||
virtual const OOX::CPath DefaultFileName() const;
|
||||
|
||||
std::vector<Logic::UniColor> ClrMru;
|
||||
nullable<nsPresentationPr::ShowPr> showPr;
|
||||
nullable<nsPresentationPr::PrintPr> printPr;
|
||||
nullable<nsPresentation::ShowPr> showPr;
|
||||
nullable<nsPresentation::PrintPr> printPr;
|
||||
};
|
||||
} // namespace PPTX
|
||||
|
||||
@ -33,11 +33,6 @@
|
||||
#include "FileContainer.h"
|
||||
#include "FileTypes.h"
|
||||
|
||||
#include "Presentation/EmbeddedFont.h"
|
||||
#include "Presentation/Kinsoku.h"
|
||||
#include "Presentation/NotesSz.h"
|
||||
#include "Presentation/PhotoAlbum.h"
|
||||
#include "Presentation/SldSz.h"
|
||||
#include "CommentAuthors.h"
|
||||
|
||||
#include "Limit/Conformance.h"
|
||||
@ -68,118 +63,137 @@ namespace PPTX
|
||||
}
|
||||
void Presentation::read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
XmlUtils::CXmlNode oNode;
|
||||
oNode.FromXmlFile(filename.m_strFilename);
|
||||
|
||||
XmlMacroReadAttributeBase(oNode, L"autoCompressPictures", attrAutoCompressPictures);
|
||||
XmlMacroReadAttributeBase(oNode, L"bookmarkIdSeed", attrBookmarkIdSeed);
|
||||
XmlMacroReadAttributeBase(oNode, L"compatMode", attrCompatMode);
|
||||
XmlMacroReadAttributeBase(oNode, L"conformance", attrConformance);
|
||||
XmlMacroReadAttributeBase(oNode, L"embedTrueTypeFonts", attrEmbedTrueTypeFonts);
|
||||
XmlMacroReadAttributeBase(oNode, L"firstSlideNum", attrFirstSlideNum);
|
||||
XmlMacroReadAttributeBase(oNode, L"removePersonalInfoOnSave", attrRemovePersonalInfoOnSave);
|
||||
XmlMacroReadAttributeBase(oNode, L"rtl", attrRtl);
|
||||
XmlMacroReadAttributeBase(oNode, L"saveSubsetFonts", attrSaveSubsetFonts);
|
||||
XmlMacroReadAttributeBase(oNode, L"serverZoom", attrServerZoom);
|
||||
XmlMacroReadAttributeBase(oNode, L"showSpecialPlsOnTitleSld", attrShowSpecialPlsOnTitleSld);
|
||||
XmlMacroReadAttributeBase(oNode, L"strictFirstAndLastChars", attrStrictFirstAndLastChars);
|
||||
|
||||
//custDataLst (Customer Data List)
|
||||
//custShowLst (List of Custom Shows)
|
||||
defaultTextStyle = oNode.ReadNode(_T("p:defaultTextStyle"));
|
||||
if (defaultTextStyle.is_init())
|
||||
defaultTextStyle->SetParentFilePointer(this);
|
||||
|
||||
embeddedFontLst.clear();
|
||||
XmlUtils::CXmlNode oNodeEmbeddedFonts;
|
||||
if (oNode.GetNode(_T("p:embeddedFontLst"), oNodeEmbeddedFonts))
|
||||
{
|
||||
XmlMacroLoadArray(oNodeEmbeddedFonts, _T("p:embeddedFont"), embeddedFontLst, nsPresentation::EmbeddedFont);
|
||||
|
||||
for (size_t i = 0; i < embeddedFontLst.size(); ++i)
|
||||
embeddedFontLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
handoutMasterIdLst.clear();
|
||||
XmlUtils::CXmlNode oNodeHMList;
|
||||
if (oNode.GetNode(_T("p:handoutMasterIdLst"), oNodeHMList))
|
||||
{
|
||||
XmlMacroLoadArray(oNodeHMList, _T("p:handoutMasterId"), handoutMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < handoutMasterIdLst.size(); ++i)
|
||||
handoutMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
|
||||
kinsoku = oNode.ReadNode(_T("p:kinsoku"));
|
||||
if (kinsoku.is_init())
|
||||
kinsoku->SetParentFilePointer(this);
|
||||
|
||||
//modifyVerifier (Modification Verifier)
|
||||
notesMasterIdLst.clear();
|
||||
XmlUtils::CXmlNode oNodeMIDList;
|
||||
if (oNode.GetNode(_T("p:notesMasterIdLst"), oNodeMIDList))
|
||||
{
|
||||
XmlMacroLoadArray(oNodeMIDList, _T("p:notesMasterId"), notesMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < notesMasterIdLst.size(); ++i)
|
||||
notesMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
notesSz = oNode.ReadNode(_T("p:notesSz"));
|
||||
if (notesSz.is_init())
|
||||
notesSz->SetParentFilePointer(this);
|
||||
|
||||
photoAlbum = oNode.ReadNode(_T("p:photoAlbum"));
|
||||
if (photoAlbum.is_init())
|
||||
photoAlbum->SetParentFilePointer(this);
|
||||
|
||||
sldIdLst.clear();
|
||||
XmlUtils::CXmlNode oNode_sldId;
|
||||
if (oNode.GetNode(_T("p:sldIdLst"), oNode_sldId))
|
||||
{
|
||||
XmlMacroLoadArray(oNode_sldId, _T("p:sldId"), sldIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < sldIdLst.size(); ++i)
|
||||
sldIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
sldMasterIdLst.clear();
|
||||
XmlUtils::CXmlNode oNode_sldM_Id;
|
||||
if (oNode.GetNode(_T("p:sldMasterIdLst"), oNode_sldM_Id))
|
||||
|
||||
XmlUtils::CXmlNode oNodeRoot;
|
||||
oNodeRoot.FromXmlFile(filename.m_strFilename);
|
||||
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"autoCompressPictures", attrAutoCompressPictures);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"bookmarkIdSeed", attrBookmarkIdSeed);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"compatMode", attrCompatMode);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"conformance", attrConformance);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"embedTrueTypeFonts", attrEmbedTrueTypeFonts);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"firstSlideNum", attrFirstSlideNum);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"removePersonalInfoOnSave", attrRemovePersonalInfoOnSave);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"rtl", attrRtl);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"saveSubsetFonts", attrSaveSubsetFonts);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"serverZoom", attrServerZoom);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"showSpecialPlsOnTitleSld", attrShowSpecialPlsOnTitleSld);
|
||||
XmlMacroReadAttributeBase(oNodeRoot, L"strictFirstAndLastChars", attrStrictFirstAndLastChars);
|
||||
|
||||
//smartTags (Smart Tags)
|
||||
//modifyVerifier (Modification Verifier)
|
||||
|
||||
std::vector<XmlUtils::CXmlNode> oNodes;
|
||||
if (oNodeRoot.GetNodes(L"*", oNodes))
|
||||
{
|
||||
XmlMacroLoadArray(oNode_sldM_Id, _T("p:sldMasterId"), sldMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < sldMasterIdLst.size(); ++i)
|
||||
sldMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
|
||||
sldSz = oNode.ReadNode(_T("p:sldSz"));
|
||||
if (sldSz.is_init())
|
||||
sldSz->SetParentFilePointer(this);
|
||||
|
||||
XmlUtils::CXmlNode list = oNode.ReadNodeNoNS(_T("extLst"));
|
||||
if (list.IsValid())
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oNodes;
|
||||
if (list.GetNodes(_T("*"), oNodes))
|
||||
for (size_t i = 0; i < oNodes.size(); ++i)
|
||||
{
|
||||
size_t nCount = oNodes.size();
|
||||
for (size_t i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode& oNode = oNodes[i];
|
||||
XmlUtils::CXmlNode& oNode = oNodes[i];
|
||||
|
||||
PPTX::Logic::Ext ext;
|
||||
ext.fromXML(oNode);
|
||||
if (ext.sectionLst.IsInit())
|
||||
std::wstring strName = XmlUtils::GetNameNoNS(oNode.GetName());
|
||||
|
||||
if (L"custDataLst" == strName)
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oCustDataLstNodes;
|
||||
if (oNode.GetNodes(L"custData", oCustDataLstNodes))
|
||||
{
|
||||
sectionLst = ext.sectionLst;
|
||||
for (auto n : oCustDataLstNodes)
|
||||
{
|
||||
custDataLst.emplace_back();
|
||||
XmlMacroReadAttributeBase(n, L"r:id", custDataLst.back());
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (L"custShowLst" == strName)
|
||||
{
|
||||
custShowLst = oNode;
|
||||
if (custShowLst.is_init()) custShowLst->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"defaultTextStyle" == strName)
|
||||
{
|
||||
defaultTextStyle = oNode;
|
||||
if (defaultTextStyle.is_init()) defaultTextStyle->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"embeddedFontLst" == strName)
|
||||
{
|
||||
XmlMacroLoadArray(oNode, L"p:embeddedFont", embeddedFontLst, nsPresentation::EmbeddedFont);
|
||||
|
||||
for (size_t i = 0; i < embeddedFontLst.size(); ++i)
|
||||
embeddedFontLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"handoutMasterIdLst" == strName)
|
||||
{
|
||||
XmlMacroLoadArray(oNode, L"p:handoutMasterId", handoutMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < handoutMasterIdLst.size(); ++i)
|
||||
handoutMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"kinsoku" == strName)
|
||||
{
|
||||
kinsoku = oNode;
|
||||
if (kinsoku.is_init()) kinsoku->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"notesMasterIdLst" == strName)
|
||||
{
|
||||
XmlMacroLoadArray(oNode, L"p:notesMasterId", notesMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < notesMasterIdLst.size(); ++i)
|
||||
notesMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"notesSz" == strName)
|
||||
{
|
||||
notesSz = oNode;
|
||||
if (notesSz.is_init()) notesSz->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"photoAlbum" == strName)
|
||||
{
|
||||
photoAlbum = oNode;
|
||||
if (photoAlbum.is_init()) photoAlbum->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"sldIdLst" == strName)
|
||||
{
|
||||
XmlMacroLoadArray(oNode, L"p:sldId", sldIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < sldIdLst.size(); ++i)
|
||||
sldIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"sldMasterIdLst" == strName)
|
||||
{
|
||||
XmlMacroLoadArray(oNode, L"p:sldMasterId", sldMasterIdLst, Logic::XmlId);
|
||||
|
||||
for (size_t i = 0; i < sldMasterIdLst.size(); ++i)
|
||||
sldMasterIdLst[i].SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"sldSz" == strName)
|
||||
{
|
||||
sldSz = oNode;
|
||||
if (sldSz.is_init()) sldSz->SetParentFilePointer(this);
|
||||
}
|
||||
else if (L"extLst" == strName)
|
||||
{
|
||||
if (oNode.IsValid())
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oExtLstNodes;
|
||||
if (oNode.GetNodes(L"*", oExtLstNodes))
|
||||
{
|
||||
for (auto n : oExtLstNodes)
|
||||
{
|
||||
PPTX::Logic::Ext ext;
|
||||
ext.fromXML(n);
|
||||
if (ext.sectionLst.IsInit())
|
||||
{
|
||||
sectionLst = ext.sectionLst;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//smartTags (Smart Tags)
|
||||
Normalize();
|
||||
}
|
||||
void Presentation::write(const OOX::CPath& filename, const OOX::CPath& directory, OOX::CContentTypes& content)const
|
||||
@ -277,7 +291,7 @@ namespace PPTX
|
||||
case 0:
|
||||
{
|
||||
defaultTextStyle = PPTX::Logic::TextListStyle();
|
||||
defaultTextStyle->m_name = _T("p:defaultTextStyle");
|
||||
defaultTextStyle->m_name = L"p:defaultTextStyle";
|
||||
defaultTextStyle->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -378,28 +392,28 @@ namespace PPTX
|
||||
|
||||
void Presentation::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:presentation"));
|
||||
pWriter->StartNode(L"p:presentation");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(_T("xmlns:a"), PPTX::g_Namespaces.a.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:r"), PPTX::g_Namespaces.r.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:p"), PPTX::g_Namespaces.p.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:m"), PPTX::g_Namespaces.m.m_strLink);
|
||||
pWriter->WriteAttribute(_T("xmlns:w"), PPTX::g_Namespaces.w.m_strLink);
|
||||
pWriter->WriteAttribute(L"xmlns:a", PPTX::g_Namespaces.a.m_strLink);
|
||||
pWriter->WriteAttribute(L"xmlns:r", PPTX::g_Namespaces.r.m_strLink);
|
||||
pWriter->WriteAttribute(L"xmlns:p", PPTX::g_Namespaces.p.m_strLink);
|
||||
pWriter->WriteAttribute(L"xmlns:m", PPTX::g_Namespaces.m.m_strLink);
|
||||
pWriter->WriteAttribute(L"xmlns:w", PPTX::g_Namespaces.w.m_strLink);
|
||||
|
||||
pWriter->WriteAttribute(_T("autoCompressPictures"), attrAutoCompressPictures);
|
||||
pWriter->WriteAttribute(_T("bookmarkIdSeed"), attrBookmarkIdSeed);
|
||||
pWriter->WriteAttribute(_T("compatMode"), attrCompatMode);
|
||||
pWriter->WriteAttribute(_T("conformance"), attrConformance);
|
||||
pWriter->WriteAttribute(_T("embedTrueTypeFonts"), attrEmbedTrueTypeFonts);
|
||||
pWriter->WriteAttribute(_T("firstSlideNum"), attrFirstSlideNum);
|
||||
pWriter->WriteAttribute(_T("removePersonalInfoOnSave"), attrRemovePersonalInfoOnSave);
|
||||
pWriter->WriteAttribute(_T("rtl"), attrRtl);
|
||||
pWriter->WriteAttribute(_T("saveSubsetFonts"), attrSaveSubsetFonts);
|
||||
pWriter->WriteAttribute(_T("serverZoom"), attrServerZoom);
|
||||
pWriter->WriteAttribute(_T("showSpecialPlsOnTitleSld"), attrShowSpecialPlsOnTitleSld);
|
||||
pWriter->WriteAttribute(_T("strictFirstAndLastChars"), attrStrictFirstAndLastChars);
|
||||
pWriter->WriteAttribute(L"autoCompressPictures", attrAutoCompressPictures);
|
||||
pWriter->WriteAttribute(L"bookmarkIdSeed", attrBookmarkIdSeed);
|
||||
pWriter->WriteAttribute(L"compatMode", attrCompatMode);
|
||||
pWriter->WriteAttribute(L"conformance", attrConformance);
|
||||
pWriter->WriteAttribute(L"embedTrueTypeFonts", attrEmbedTrueTypeFonts);
|
||||
pWriter->WriteAttribute(L"firstSlideNum", attrFirstSlideNum);
|
||||
pWriter->WriteAttribute(L"removePersonalInfoOnSave", attrRemovePersonalInfoOnSave);
|
||||
pWriter->WriteAttribute(L"rtl", attrRtl);
|
||||
pWriter->WriteAttribute(L"saveSubsetFonts", attrSaveSubsetFonts);
|
||||
pWriter->WriteAttribute(L"serverZoom", attrServerZoom);
|
||||
pWriter->WriteAttribute(L"showSpecialPlsOnTitleSld", attrShowSpecialPlsOnTitleSld);
|
||||
pWriter->WriteAttribute(L"strictFirstAndLastChars", attrStrictFirstAndLastChars);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
@ -413,6 +427,26 @@ namespace PPTX
|
||||
pWriter->Write(notesSz);
|
||||
pWriter->Write(photoAlbum);
|
||||
pWriter->Write(kinsoku);
|
||||
|
||||
if (false == custDataLst.empty())
|
||||
{
|
||||
pWriter->StartNode(L"p:custDataLst");
|
||||
pWriter->EndAttributes();
|
||||
|
||||
for (auto cust : custDataLst)
|
||||
{
|
||||
pWriter->StartNode(L"p:custData");
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"r:id", cust.ToString());
|
||||
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(L"p:custData");
|
||||
}
|
||||
|
||||
pWriter->EndNode(L"p:custDataLst");
|
||||
}
|
||||
pWriter->Write(custShowLst);
|
||||
|
||||
pWriter->Write(defaultTextStyle);
|
||||
|
||||
std::vector<Logic::Ext> extLst;
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
#include "FileContainer.h"
|
||||
#include "FileTypes.h"
|
||||
|
||||
#include "Presentation/EmbeddedFont.h"
|
||||
#include "Presentation/PresentationChildElements.h"
|
||||
#include "CommentAuthors.h"
|
||||
|
||||
#include "Limit/Conformance.h"
|
||||
@ -88,9 +88,6 @@ namespace PPTX
|
||||
return type().DefaultFileName();
|
||||
}
|
||||
|
||||
//Childs
|
||||
//custDataLst (Customer Data List)
|
||||
//property<std::list<Presentation::CustShow> > custShowLst (List of Custom Shows)
|
||||
nullable<Logic::TextListStyle> defaultTextStyle;
|
||||
std::vector<nsPresentation::EmbeddedFont> embeddedFontLst;
|
||||
std::vector<Logic::XmlId> handoutMasterIdLst;
|
||||
@ -101,11 +98,12 @@ namespace PPTX
|
||||
nullable<nsPresentation::PhotoAlbum> photoAlbum;
|
||||
std::vector<Logic::XmlId> sldIdLst;
|
||||
std::vector<Logic::XmlId> sldMasterIdLst;
|
||||
std::vector<OOX::RId> custDataLst;
|
||||
nullable<nsPresentation::CustShowLst> custShowLst;
|
||||
nullable<nsPresentation::SldSz> sldSz;
|
||||
nullable<nsPresentation::SectionLst> sectionLst;
|
||||
//smartTags (Smart Tags)
|
||||
|
||||
// Attrs
|
||||
nullable_bool attrAutoCompressPictures;
|
||||
nullable_int attrBookmarkIdSeed;
|
||||
nullable_bool attrCompatMode;
|
||||
@ -119,36 +117,12 @@ namespace PPTX
|
||||
nullable_bool attrShowSpecialPlsOnTitleSld;
|
||||
nullable_bool attrStrictFirstAndLastChars;
|
||||
|
||||
smart_ptr<PPTX::Authors> commentAuthors;
|
||||
smart_ptr<PPTX::Authors> commentAuthors;
|
||||
smart_ptr<PPTX::Comments> comments;
|
||||
|
||||
private:
|
||||
Logic::ClrMap m_clrMap;
|
||||
nsTheme::ClrScheme m_clrScheme;
|
||||
public:
|
||||
bool m_bMacroEnabled;
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
smart_ptr<OOX::JsaProject> m_pJsaProject;
|
||||
smart_ptr<PPTX::Comments> comments;
|
||||
|
||||
void SetClrMap(Logic::ClrMap map) {m_clrMap = map;}
|
||||
void SetClrScheme(nsTheme::ClrScheme scheme) {m_clrScheme = scheme;}
|
||||
|
||||
DWORD GetRGBAFromMap(const std::wstring& str)const
|
||||
{
|
||||
return m_clrScheme.GetRGBAFromScheme(m_clrMap.GetColorSchemeIndex(str));
|
||||
}
|
||||
DWORD GetARGBFromMap(const std::wstring& str)const
|
||||
{
|
||||
return m_clrScheme.GetARGBFromScheme(m_clrMap.GetColorSchemeIndex(str));
|
||||
}
|
||||
DWORD GetBGRAFromMap(const std::wstring& str)const
|
||||
{
|
||||
return m_clrScheme.GetBGRAFromScheme(m_clrMap.GetColorSchemeIndex(str));
|
||||
}
|
||||
DWORD GetABGRFromMap(const std::wstring& str)const
|
||||
{
|
||||
return m_clrScheme.GetABGRFromScheme(m_clrMap.GetColorSchemeIndex(str));
|
||||
}
|
||||
smart_ptr<OOX::JsaProject> m_pJsaProject;
|
||||
|
||||
private:
|
||||
void Normalize();
|
||||
|
||||
@ -1,73 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "EmbeddedFont.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void EmbeddedFont::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Bold = node.ReadNode(_T("p:bold"));
|
||||
BoldItalic = node.ReadNode(_T("p:boldItalic"));
|
||||
Italic = node.ReadNode(_T("p:italic"));
|
||||
Regular = node.ReadNode(_T("p:regular"));
|
||||
Font = node.ReadNode(_T("p:font"));
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
std::wstring EmbeddedFont::toXML() const
|
||||
{
|
||||
XmlUtils::CNodeValue oValue;
|
||||
oValue.WriteNullable(Bold);
|
||||
oValue.WriteNullable(BoldItalic);
|
||||
oValue.WriteNullable(Italic);
|
||||
oValue.WriteNullable(Regular);
|
||||
oValue.Write(Font);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:embeddedFont"), oValue);
|
||||
}
|
||||
void EmbeddedFont::FillParentPointersForChilds()
|
||||
{
|
||||
if(Bold.is_init())
|
||||
Bold->SetParentPointer(this);
|
||||
if(BoldItalic.is_init())
|
||||
BoldItalic->SetParentPointer(this);
|
||||
if(Italic.is_init())
|
||||
Italic->SetParentPointer(this);
|
||||
if(Regular.is_init())
|
||||
Regular->SetParentPointer(this);
|
||||
Font.SetParentPointer(this);
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,66 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_PRESENTATION_EMBEDDEDFONT_INCLUDE_H_
|
||||
#define PPTX_PRESENTATION_EMBEDDEDFONT_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "EmbeddedFontDataId.h"
|
||||
#include "./../Logic/TextFont.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class EmbeddedFont : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EmbeddedFont)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
public:
|
||||
nullable<EmbeddedFontDataId> Bold;
|
||||
nullable<EmbeddedFontDataId> BoldItalic;
|
||||
nullable<EmbeddedFontDataId> Italic;
|
||||
nullable<EmbeddedFontDataId> Regular;
|
||||
Logic::TextFont Font;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_PRESENTATION_EMBEDDEDFONT_INCLUDE_H_
|
||||
@ -1,56 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "EmbeddedFontDataId.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void EmbeddedFontDataId::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
|
||||
rid = node.GetAttribute(L"r:id");
|
||||
}
|
||||
std::wstring EmbeddedFontDataId::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(L"r:id", rid);
|
||||
|
||||
return XmlUtils::CreateNode(L"p:" + m_name, oAttr);
|
||||
}
|
||||
void EmbeddedFontDataId::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,55 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class EmbeddedFontDataId : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EmbeddedFontDataId)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
std::wstring rid;
|
||||
std::wstring m_name;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Kinsoku.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void Kinsoku::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
invalEndChars = node.GetAttribute(_T("invalEndChars"));
|
||||
invalStChars = node.GetAttribute(_T("invalStChars"));
|
||||
|
||||
XmlMacroReadAttributeBase(node, L"lang", lang);
|
||||
}
|
||||
std::wstring Kinsoku::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("invalEndChars"), invalEndChars);
|
||||
oAttr.Write(_T("invalStChars"), invalStChars);
|
||||
oAttr.Write(_T("lang"), lang);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:kinsoku"), oAttr);
|
||||
}
|
||||
void Kinsoku::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
// TODO:
|
||||
}
|
||||
void Kinsoku::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,63 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_PRESENTATION_KINSOKU_INCLUDE_H_
|
||||
#define PPTX_PRESENTATION_KINSOKU_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Kinsoku : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Kinsoku)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
std::wstring invalEndChars;
|
||||
std::wstring invalStChars;
|
||||
nullable_string lang;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_PRESENTATION_KINSOKU_INCLUDE_H_
|
||||
@ -1,83 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "NotesSz.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void NotesSz::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cx = node.ReadAttributeInt(L"cx");
|
||||
cy = node.ReadAttributeInt(L"cy");
|
||||
|
||||
Normalize();
|
||||
}
|
||||
std::wstring NotesSz::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("cx"), cx);
|
||||
oAttr.Write(_T("cy"), cy);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:notesSz"), oAttr);
|
||||
}
|
||||
void NotesSz::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteInt1(0, cx);
|
||||
pWriter->WriteInt1(1, cy);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void NotesSz::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:notesSz"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("cx"), cx);
|
||||
pWriter->WriteAttribute(_T("cy"), cy);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("p:notesSz"));
|
||||
}
|
||||
void NotesSz::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void NotesSz::Normalize()
|
||||
{
|
||||
if (cx < 0)
|
||||
cx = 0;
|
||||
if (cy < 0)
|
||||
cy = 0;
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,65 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_PRESENTATION_NOTESSZ_INCLUDE_H_
|
||||
#define PPTX_PRESENTATION_NOTESSZ_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class NotesSz : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(NotesSz)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
int cx;
|
||||
int cy;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
void Normalize();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_PRESENTATION_NOTESSZ_INCLUDE_H_
|
||||
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "PhotoAlbum.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void PhotoAlbum::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"bw", bw);
|
||||
XmlMacroReadAttributeBase(node, L"frame", frame);
|
||||
XmlMacroReadAttributeBase(node, L"layout", layout);
|
||||
XmlMacroReadAttributeBase(node, L"showCaptions", showCaptions);
|
||||
}
|
||||
std::wstring PhotoAlbum::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("bw"), bw);
|
||||
oAttr.WriteLimitNullable(_T("frame"), frame);
|
||||
oAttr.WriteLimitNullable(_T("layout"), layout);
|
||||
oAttr.Write(_T("showCaptions"), showCaptions);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:photoAlbum"), oAttr);
|
||||
}
|
||||
void PhotoAlbum::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -1,65 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "./../Limit/FrameShape.h"
|
||||
#include "./../Limit/AlbumLayout.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class PhotoAlbum : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(PhotoAlbum)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
nullable_bool bw;
|
||||
nullable_limit<Limit::FrameShape> frame;
|
||||
nullable_limit<Limit::AlbumLayout> layout;
|
||||
nullable_bool showCaptions;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
571
OOXML/PPTXFormat/Presentation/PresentationChildElements.cpp
Normal file
571
OOXML/PPTXFormat/Presentation/PresentationChildElements.cpp
Normal file
@ -0,0 +1,571 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "PresentationChildElements.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void EmbeddedFont::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
Bold = node.ReadNode(_T("p:bold"));
|
||||
BoldItalic = node.ReadNode(_T("p:boldItalic"));
|
||||
Italic = node.ReadNode(_T("p:italic"));
|
||||
Regular = node.ReadNode(_T("p:regular"));
|
||||
Font = node.ReadNode(_T("p:font"));
|
||||
|
||||
FillParentPointersForChilds();
|
||||
}
|
||||
std::wstring EmbeddedFont::toXML() const
|
||||
{
|
||||
XmlUtils::CNodeValue oValue;
|
||||
oValue.WriteNullable(Bold);
|
||||
oValue.WriteNullable(BoldItalic);
|
||||
oValue.WriteNullable(Italic);
|
||||
oValue.WriteNullable(Regular);
|
||||
oValue.Write(Font);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:embeddedFont"), oValue);
|
||||
}
|
||||
void EmbeddedFont::FillParentPointersForChilds()
|
||||
{
|
||||
if (Bold.is_init())
|
||||
Bold->SetParentPointer(this);
|
||||
if (BoldItalic.is_init())
|
||||
BoldItalic->SetParentPointer(this);
|
||||
if (Italic.is_init())
|
||||
Italic->SetParentPointer(this);
|
||||
if (Regular.is_init())
|
||||
Regular->SetParentPointer(this);
|
||||
Font.SetParentPointer(this);
|
||||
}
|
||||
void EmbeddedFontDataId::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_name = XmlUtils::GetNameNoNS(node.GetName());
|
||||
|
||||
rid = node.GetAttribute(L"r:id");
|
||||
}
|
||||
std::wstring EmbeddedFontDataId::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(L"r:id", rid);
|
||||
|
||||
return XmlUtils::CreateNode(L"p:" + m_name, oAttr);
|
||||
}
|
||||
void EmbeddedFontDataId::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void NotesSz::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cx = node.ReadAttributeInt(L"cx");
|
||||
cy = node.ReadAttributeInt(L"cy");
|
||||
|
||||
Normalize();
|
||||
}
|
||||
std::wstring NotesSz::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("cx"), cx);
|
||||
oAttr.Write(_T("cy"), cy);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:notesSz"), oAttr);
|
||||
}
|
||||
void NotesSz::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteInt1(0, cx);
|
||||
pWriter->WriteInt1(1, cy);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void NotesSz::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:notesSz"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("cx"), cx);
|
||||
pWriter->WriteAttribute(_T("cy"), cy);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("p:notesSz"));
|
||||
}
|
||||
void NotesSz::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void NotesSz::Normalize()
|
||||
{
|
||||
if (cx < 0)
|
||||
cx = 0;
|
||||
if (cy < 0)
|
||||
cy = 0;
|
||||
}
|
||||
void Kinsoku::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
invalEndChars = node.GetAttribute(_T("invalEndChars"));
|
||||
invalStChars = node.GetAttribute(_T("invalStChars"));
|
||||
|
||||
XmlMacroReadAttributeBase(node, L"lang", lang);
|
||||
}
|
||||
std::wstring Kinsoku::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("invalEndChars"), invalEndChars);
|
||||
oAttr.Write(_T("invalStChars"), invalStChars);
|
||||
oAttr.Write(_T("lang"), lang);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:kinsoku"), oAttr);
|
||||
}
|
||||
void Kinsoku::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
// TODO:
|
||||
}
|
||||
void Kinsoku::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"bw", bw);
|
||||
XmlMacroReadAttributeBase(node, L"frame", frame);
|
||||
XmlMacroReadAttributeBase(node, L"layout", layout);
|
||||
XmlMacroReadAttributeBase(node, L"showCaptions", showCaptions);
|
||||
}
|
||||
std::wstring PhotoAlbum::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("bw"), bw);
|
||||
oAttr.WriteLimitNullable(_T("frame"), frame);
|
||||
oAttr.WriteLimitNullable(_T("layout"), layout);
|
||||
oAttr.Write(_T("showCaptions"), showCaptions);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:photoAlbum"), oAttr);
|
||||
}
|
||||
void PhotoAlbum::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
}
|
||||
void PhotoAlbum::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void SldSz::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cx = node.ReadAttributeInt(L"cx");
|
||||
cy = node.ReadAttributeInt(L"cy");
|
||||
|
||||
XmlMacroReadAttributeBase(node, L"type", type);
|
||||
|
||||
Normalize();
|
||||
}
|
||||
std::wstring SldSz::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("cx"), cx);
|
||||
oAttr.Write(_T("cy"), cy);
|
||||
oAttr.WriteLimitNullable(_T("type"), type);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:sldSz"), oAttr);
|
||||
}
|
||||
void SldSz::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteInt1(0, cx);
|
||||
pWriter->WriteInt1(1, cy);
|
||||
pWriter->WriteLimit2(2, type);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void SldSz::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:sldSz"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("cx"), cx);
|
||||
pWriter->WriteAttribute(_T("cy"), cy);
|
||||
pWriter->WriteAttribute(_T("type"), type);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("p:sldSz"));
|
||||
}
|
||||
void SldSz::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void SldSz::Normalize()
|
||||
{
|
||||
cx = (std::min)((std::max)(cx, 914400), 51206400);
|
||||
cy = (std::min)((std::max)(cy, 914400), 51206400);
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------------------
|
||||
void SectionLst::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
size_t nCount = oNodes.size();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode& oNode = oNodes[i];
|
||||
|
||||
Section sect;
|
||||
arSectionLst.push_back(sect);
|
||||
|
||||
arSectionLst.back().fromXML(oNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::wstring SectionLst::toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
void SectionLst::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG end = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
while (pReader->GetPos() < end)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Section sect;
|
||||
|
||||
arSectionLst.push_back(sect);
|
||||
arSectionLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(end);
|
||||
}
|
||||
void SectionLst::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecordArray(0, 0, arSectionLst);
|
||||
}
|
||||
void SectionLst::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:sectionLst");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"xmlns:p14", PPTX::g_Namespaces.p14.m_strLink);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteArray2(arSectionLst);
|
||||
|
||||
pWriter->EndNode(L"p14:sectionLst");
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
void Section::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"id", id);
|
||||
XmlMacroReadAttributeBase(node, L"name", name);
|
||||
|
||||
XmlUtils::CXmlNode oNodeSldIdLst;
|
||||
if (node.GetNode(L"p14:sldIdLst", oNodeSldIdLst))
|
||||
{
|
||||
XmlMacroLoadArray(oNodeSldIdLst, L"p14:sldId", arSldIdLst, Logic::XmlId);
|
||||
}
|
||||
}
|
||||
std::wstring Section::toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
void Section::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:section");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute2(L"name", name);
|
||||
pWriter->WriteAttribute(L"id", id);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"p14:sldIdLst");
|
||||
pWriter->EndAttributes();
|
||||
pWriter->WriteArray2(arSldIdLst);
|
||||
pWriter->EndNode(L"p14:sldIdLst");
|
||||
|
||||
pWriter->EndNode(L"p14:section");
|
||||
}
|
||||
void Section::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteString2(0, id);
|
||||
pWriter->WriteString2(1, name);
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->WriteRecordArray(0, 0, arSldIdLst);
|
||||
|
||||
}
|
||||
void Section::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
id = pReader->GetString2();
|
||||
break;
|
||||
case 1:
|
||||
name = pReader->GetString2();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
while (pReader->GetPos() < _end_rec)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Logic::XmlId sldId(L"p14:sldId");
|
||||
|
||||
arSldIdLst.push_back(sldId);
|
||||
arSldIdLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
void CustShowLst::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
size_t nCount = oNodes.size();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode& oNode = oNodes[i];
|
||||
|
||||
arCustShowLst.emplace_back();
|
||||
arCustShowLst.back().fromXML(oNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
std::wstring CustShowLst::toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
void CustShowLst::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG end = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
while (pReader->GetPos() < end)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
CustShow custShow;
|
||||
|
||||
arCustShowLst.push_back(custShow);
|
||||
arCustShowLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(end);
|
||||
}
|
||||
void CustShowLst::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecordArray(0, 0, arCustShowLst);
|
||||
}
|
||||
void CustShowLst::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p:custShowLst");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteArray2(arCustShowLst);
|
||||
|
||||
pWriter->EndNode(L"p:custShowLst");
|
||||
}
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
void CustShow::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlUtils::CXmlNode oNodeSldIdLst;
|
||||
if (node.GetNode(L"p:sldIdLst", oNodeSldIdLst))
|
||||
{
|
||||
if (oNodeSldIdLst.IsValid())
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> arrNodeSldId;
|
||||
if (oNodeSldIdLst.GetNodes(L"sldId", arrNodeSldId))
|
||||
|
||||
for (auto n : arrNodeSldId)
|
||||
{
|
||||
arSldIdLst.emplace_back();
|
||||
XmlMacroReadAttributeBase(n, L"r:id", arSldIdLst.back());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
std::wstring CustShow::toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
void CustShow::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p:custShow");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"p:sldIdLst");
|
||||
pWriter->EndAttributes();
|
||||
for (auto sld : arSldIdLst)
|
||||
{
|
||||
pWriter->StartNode(L"p:sldId");
|
||||
std::wstring sRid = sld.ToString();
|
||||
if (sRid.empty() == false)
|
||||
{
|
||||
pWriter->WriteAttribute(L"r:id", sRid);
|
||||
}
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(L"p:sldId");
|
||||
}
|
||||
pWriter->EndNode(L"p:sldIdLst");
|
||||
|
||||
pWriter->EndNode(L"p:custShow");
|
||||
}
|
||||
void CustShow::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartRecord(0);
|
||||
|
||||
_UINT32 len = (_UINT32)arSldIdLst.size();
|
||||
pWriter->WriteULONG(len);
|
||||
|
||||
for (_UINT32 i = 0; i < len; ++i)
|
||||
{
|
||||
pWriter->WriteString(arSldIdLst[i].ToString());
|
||||
}
|
||||
|
||||
pWriter->EndRecord();
|
||||
}
|
||||
void CustShow::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
while (pReader->GetPos() < _end_rec)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
arSldIdLst.emplace_back();
|
||||
arSldIdLst.back() = pReader->GetString2();
|
||||
}
|
||||
|
||||
}break;
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
} // namespace
|
||||
} // namespace PPTX
|
||||
230
OOXML/PPTXFormat/Presentation/PresentationChildElements.h
Normal file
230
OOXML/PPTXFormat/Presentation/PresentationChildElements.h
Normal file
@ -0,0 +1,230 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Logic/XmlId.h"
|
||||
#include "./../Limit/FrameShape.h"
|
||||
#include "./../Limit/AlbumLayout.h"
|
||||
#include "./../Limit/SlideSize.h"
|
||||
#include "./../Logic/TextFont.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Section : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Section)
|
||||
|
||||
nullable_string id;
|
||||
nullable_string name;
|
||||
std::vector<Logic::XmlId> arSldIdLst;
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
virtual void FillParentPointersForChilds() {}
|
||||
};
|
||||
|
||||
class SectionLst : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SectionLst)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
std::vector<Section> arSectionLst;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds() {};
|
||||
};
|
||||
|
||||
class SldSz : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SldSz)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
int cx;
|
||||
int cy;
|
||||
nullable_limit<Limit::SlideSize> type;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
void Normalize();
|
||||
};
|
||||
class PhotoAlbum : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(PhotoAlbum)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
nullable_bool bw;
|
||||
nullable_limit<Limit::FrameShape> frame;
|
||||
nullable_limit<Limit::AlbumLayout> layout;
|
||||
nullable_bool showCaptions;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
class NotesSz : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(NotesSz)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
int cx;
|
||||
int cy;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
void Normalize();
|
||||
};
|
||||
class Kinsoku : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Kinsoku)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
std::wstring invalEndChars;
|
||||
std::wstring invalStChars;
|
||||
nullable_string lang;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
class EmbeddedFontDataId : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EmbeddedFontDataId)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
std::wstring rid;
|
||||
std::wstring m_name;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
class EmbeddedFont : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(EmbeddedFont)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
public:
|
||||
nullable<EmbeddedFontDataId> Bold;
|
||||
nullable<EmbeddedFontDataId> BoldItalic;
|
||||
nullable<EmbeddedFontDataId> Italic;
|
||||
nullable<EmbeddedFontDataId> Regular;
|
||||
Logic::TextFont Font;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
class CustShow : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CustShow)
|
||||
|
||||
std::vector<OOX::RId> arSldIdLst;
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
virtual void FillParentPointersForChilds() {}
|
||||
};
|
||||
class CustShowLst : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CustShowLst)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
std::vector<CustShow> arCustShowLst;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds() {};
|
||||
};
|
||||
}
|
||||
} // namespace PPTX
|
||||
@ -1,31 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
@ -1,247 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../Logic/XmlId.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
class Section : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Section)
|
||||
|
||||
nullable_string id;
|
||||
nullable_string name;
|
||||
std::vector<Logic::XmlId> arSldIdLst;
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"id", id);
|
||||
XmlMacroReadAttributeBase(node, L"name", name);
|
||||
|
||||
XmlUtils::CXmlNode oNodeSldIdLst;
|
||||
if (node.GetNode(L"p14:sldIdLst", oNodeSldIdLst))
|
||||
{
|
||||
XmlMacroLoadArray(oNodeSldIdLst, L"p14:sldId", arSldIdLst, Logic::XmlId);
|
||||
}
|
||||
}
|
||||
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:section");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute2(L"name", name);
|
||||
pWriter->WriteAttribute(L"id", id);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->StartNode(L"p14:sldIdLst");
|
||||
pWriter->EndAttributes();
|
||||
pWriter->WriteArray2(arSldIdLst);
|
||||
pWriter->EndNode(L"p14:sldIdLst");
|
||||
|
||||
pWriter->EndNode(L"p14:section");
|
||||
}
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteString2(0, id);
|
||||
pWriter->WriteString2(1, name);
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->WriteRecordArray(0, 0, arSldIdLst);
|
||||
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
id = pReader->GetString2();
|
||||
break;
|
||||
case 1:
|
||||
name = pReader->GetString2();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
while (pReader->GetPos() < _end_rec)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Logic::XmlId sldId(L"p14:sldId");
|
||||
|
||||
arSldIdLst.push_back(sldId);
|
||||
arSldIdLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
|
||||
virtual void FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
namespace nsPresentation
|
||||
{
|
||||
class SectionLst : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SectionLst)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
std::vector<XmlUtils::CXmlNode> oNodes;
|
||||
if (node.GetNodes(_T("*"), oNodes))
|
||||
{
|
||||
size_t nCount = oNodes.size();
|
||||
for (int i = 0; i < nCount; ++i)
|
||||
{
|
||||
XmlUtils::CXmlNode & oNode = oNodes[i];
|
||||
|
||||
Logic::Section sect;
|
||||
arSectionLst.push_back(sect);
|
||||
|
||||
arSectionLst.back().fromXML(oNode);
|
||||
}
|
||||
}
|
||||
}
|
||||
virtual std::wstring toXML() const
|
||||
{
|
||||
return L"";
|
||||
}
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG end = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
|
||||
while (pReader->GetPos() < end)
|
||||
{
|
||||
BYTE _rec = pReader->GetUChar();
|
||||
|
||||
switch (_rec)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
pReader->Skip(4); // len
|
||||
ULONG lCount = pReader->GetULong();
|
||||
|
||||
for (ULONG i = 0; i < lCount; ++i)
|
||||
{
|
||||
pReader->Skip(1);
|
||||
|
||||
Logic::Section sect;
|
||||
|
||||
arSectionLst.push_back(sect);
|
||||
arSectionLst.back().fromPPTY(pReader);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pReader->Seek(end);
|
||||
}
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteRecordArray(0, 0, arSectionLst);
|
||||
}
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(L"p14:sectionLst");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(L"xmlns:p14", PPTX::g_Namespaces.p14.m_strLink);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->WriteArray2(arSectionLst);
|
||||
|
||||
pWriter->EndNode(L"p14:sectionLst");
|
||||
}
|
||||
|
||||
std::vector<Logic::Section> arSectionLst;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds(){};
|
||||
};
|
||||
}
|
||||
} // namespace PPTX
|
||||
@ -1,86 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "SldSz.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
void SldSz::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
cx = node.ReadAttributeInt(L"cx");
|
||||
cy = node.ReadAttributeInt(L"cy");
|
||||
|
||||
XmlMacroReadAttributeBase(node, L"type", type);
|
||||
|
||||
Normalize();
|
||||
}
|
||||
std::wstring SldSz::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("cx"), cx);
|
||||
oAttr.Write(_T("cy"), cy);
|
||||
oAttr.WriteLimitNullable(_T("type"), type);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:sldSz"), oAttr);
|
||||
}
|
||||
void SldSz::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteInt1(0, cx);
|
||||
pWriter->WriteInt1(1, cy);
|
||||
pWriter->WriteLimit2(2, type);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void SldSz::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:sldSz"));
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("cx"), cx);
|
||||
pWriter->WriteAttribute(_T("cy"), cy);
|
||||
pWriter->WriteAttribute(_T("type"), type);
|
||||
pWriter->EndAttributes();
|
||||
pWriter->EndNode(_T("p:sldSz"));
|
||||
}
|
||||
void SldSz::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
void SldSz::Normalize()
|
||||
{
|
||||
cx = (std::min)((std::max)(cx, 914400), 51206400);
|
||||
cy = (std::min)((std::max)(cy, 914400), 51206400);
|
||||
}
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -1,67 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_PRESENTATION_SLDSZ_INCLUDE_H_
|
||||
#define PPTX_PRESENTATION_SLDSZ_INCLUDE_H_
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "./../Limit/SlideSize.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentation
|
||||
{
|
||||
class SldSz : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(SldSz)
|
||||
|
||||
public:
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
public:
|
||||
int cx;
|
||||
int cy;
|
||||
nullable_limit<Limit::SlideSize> type;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
void Normalize();
|
||||
};
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_PRESENTATION_SLDSZ_INCLUDE_H_
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void Browse::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -88,5 +88,5 @@ namespace PPTX
|
||||
void Browse::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Browse : public WrapperWritingElement
|
||||
{
|
||||
@ -55,6 +55,6 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
|
||||
@ -30,42 +30,42 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include "CustShow.h"
|
||||
#include "CustomShowId.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void CustShow::fromXML(XmlUtils::CXmlNode& node)
|
||||
void CustomShowId::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, _T("id"), id);
|
||||
XmlMacroReadAttributeBase(node, L"id", id);
|
||||
}
|
||||
std::wstring CustShow::toXML() const
|
||||
std::wstring CustomShowId::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("id"), id);
|
||||
oAttr.Write(L"id", id);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:custShow"), oAttr);
|
||||
return XmlUtils::CreateNode(L"p:custShow", oAttr);
|
||||
}
|
||||
void CustShow::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
void CustomShowId::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
pWriter->WriteInt2(0, id);
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void CustShow::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
void CustomShowId::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:custShow"));
|
||||
pWriter->StartNode(L"p:custShow");
|
||||
|
||||
pWriter->StartAttributes();
|
||||
|
||||
pWriter->WriteAttribute(_T("id"), id);
|
||||
pWriter->WriteAttribute(L"id", id);
|
||||
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->EndNode(_T("p:custShow"));
|
||||
pWriter->EndNode(L"p:custShow");
|
||||
}
|
||||
void CustShow::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
void CustomShowId::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetLong() + 4;
|
||||
|
||||
@ -85,8 +85,8 @@ namespace PPTX
|
||||
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
void CustShow::FillParentPointersForChilds()
|
||||
void CustomShowId::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -35,12 +35,12 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class CustShow : public WrapperWritingElement
|
||||
class CustomShowId : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(CustShow)
|
||||
PPTX_LOGIC_BASE(CustomShowId)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
@ -54,5 +54,5 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void Kiosk::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -88,5 +88,5 @@ namespace PPTX
|
||||
void Kiosk::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Kiosk : public WrapperWritingElement
|
||||
{
|
||||
@ -54,5 +54,5 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void Present::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -53,5 +53,5 @@ namespace PPTX
|
||||
void Present::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Present : public WrapperWritingElement
|
||||
{
|
||||
@ -51,5 +51,5 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
#include "PresentationPr.h"
|
||||
|
||||
#include "./Browse.h"
|
||||
#include "./CustShow.h"
|
||||
#include "./CustomShowId.h"
|
||||
#include "./Kiosk.h"
|
||||
#include "./Present.h"
|
||||
#include "./SldAll.h"
|
||||
@ -41,7 +41,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void ShowPr::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -51,7 +51,7 @@ namespace PPTX
|
||||
XmlMacroReadAttributeBase(node, L"useTimings", useTimings);
|
||||
|
||||
Browse = node.ReadNodeNoNS(L"browse");
|
||||
CustShow = node.ReadNodeNoNS(L"custShow");
|
||||
CustomShowId = node.ReadNodeNoNS(L"custShow");
|
||||
Kiosk = node.ReadNodeNoNS(L"kiosk");
|
||||
XmlUtils::CXmlNode node1 = node.ReadNodeNoNS(L"penClr");
|
||||
PenClr.GetColorFrom(node1);
|
||||
@ -73,7 +73,7 @@ namespace PPTX
|
||||
oValue.WriteNullable(Kiosk);
|
||||
oValue.WriteNullable(SldAll);
|
||||
oValue.WriteNullable(SldRg);
|
||||
oValue.WriteNullable(CustShow);
|
||||
oValue.WriteNullable(CustomShowId);
|
||||
oValue.Write(PenClr);
|
||||
|
||||
return XmlUtils::CreateNode(L"p:ShowPr", oAttr, oValue);
|
||||
@ -88,7 +88,7 @@ namespace PPTX
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
|
||||
pWriter->WriteRecord2(0, Browse);
|
||||
pWriter->WriteRecord2(1, CustShow);
|
||||
pWriter->WriteRecord2(1, CustomShowId);
|
||||
pWriter->WriteRecord2(2, Kiosk);
|
||||
pWriter->WriteRecord1(3, PenClr);
|
||||
pWriter->WriteRecord2(4, Present);
|
||||
@ -113,7 +113,7 @@ namespace PPTX
|
||||
pWriter->Write(Kiosk);
|
||||
pWriter->Write(SldAll);
|
||||
pWriter->Write(SldRg);
|
||||
pWriter->Write(CustShow);
|
||||
pWriter->Write(CustomShowId);
|
||||
if(PenClr.is_init())
|
||||
{
|
||||
pWriter->WriteString(L"<p:penClr>");
|
||||
@ -154,19 +154,19 @@ namespace PPTX
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
Browse = new nsPresentationPr::Browse();
|
||||
Browse = new nsPresentation::Browse();
|
||||
Browse->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
CustShow = new nsPresentationPr::CustShow();
|
||||
CustShow->fromPPTY(pReader);
|
||||
CustomShowId = new nsPresentation::CustomShowId();
|
||||
CustomShowId->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
case 2:
|
||||
{
|
||||
Kiosk = new nsPresentationPr::Kiosk();
|
||||
Kiosk = new nsPresentation::Kiosk();
|
||||
Kiosk->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -177,19 +177,19 @@ namespace PPTX
|
||||
}
|
||||
case 4:
|
||||
{
|
||||
Present = new nsPresentationPr::Present();
|
||||
Present = new nsPresentation::Present();
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
case 5:
|
||||
{
|
||||
SldAll = new nsPresentationPr::SldAll();
|
||||
SldAll = new nsPresentation::SldAll();
|
||||
pReader->SkipRecord();
|
||||
break;
|
||||
}
|
||||
case 6:
|
||||
{
|
||||
SldRg = new nsPresentationPr::SldRg();
|
||||
SldRg = new nsPresentation::SldRg();
|
||||
SldRg->fromPPTY(pReader);
|
||||
break;
|
||||
}
|
||||
@ -292,5 +292,5 @@ namespace PPTX
|
||||
void PrintPr::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,10 +35,11 @@
|
||||
#include "../Logic/UniColor.h"
|
||||
#include "../Limit/BWMode.h"
|
||||
#include "../Logic/ExtP.h"
|
||||
#include "./CustomShowId.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class Browse;
|
||||
class CustShow;
|
||||
@ -59,13 +60,13 @@ namespace PPTX
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
|
||||
nullable<nsPresentationPr::Browse> Browse;
|
||||
nullable<nsPresentationPr::CustShow> CustShow;
|
||||
nullable<nsPresentationPr::Kiosk> Kiosk;
|
||||
nullable<nsPresentation::Browse> Browse;
|
||||
nullable<nsPresentation::CustomShowId> CustomShowId;
|
||||
nullable<nsPresentation::Kiosk> Kiosk;
|
||||
Logic::UniColor PenClr;
|
||||
nullable<nsPresentationPr::Present> Present;
|
||||
nullable<nsPresentationPr::SldAll> SldAll;
|
||||
nullable<nsPresentationPr::SldRg> SldRg;
|
||||
nullable<nsPresentation::Present> Present;
|
||||
nullable<nsPresentation::SldAll> SldAll;
|
||||
nullable<nsPresentation::SldRg> SldRg;
|
||||
|
||||
nullable_bool loop;
|
||||
nullable_bool showAnimation;
|
||||
@ -99,6 +100,6 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void SldAll::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -53,5 +53,5 @@ namespace PPTX
|
||||
void SldAll::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class SldAll : public WrapperWritingElement
|
||||
{
|
||||
@ -51,5 +51,5 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
void SldRg::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
@ -94,5 +94,5 @@ namespace PPTX
|
||||
void SldRg::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsPresentationPr
|
||||
namespace nsPresentation
|
||||
{
|
||||
class SldRg : public WrapperWritingElement
|
||||
{
|
||||
@ -55,5 +55,5 @@ namespace PPTX
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsPresentationPr
|
||||
} // namespace nsPresentation
|
||||
} // namespace PPTX
|
||||
|
||||
@ -36,6 +36,70 @@ namespace PPTX
|
||||
{
|
||||
namespace nsViewProps
|
||||
{
|
||||
void Sld::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"id", id);
|
||||
XmlMacroReadAttributeBase(node, L"collapse", collapse);
|
||||
}
|
||||
std::wstring Sld::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("id"), id);
|
||||
oAttr.Write(_T("collapse"), collapse);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:sld"), oAttr);
|
||||
}
|
||||
void Sld::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteString2(0, id);
|
||||
pWriter->WriteBool2(1, collapse);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void Sld::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
id = pReader->GetString2();
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
collapse = pReader->GetBool();
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
void Sld::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:sld"));
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("id"), id);
|
||||
pWriter->WriteAttribute(_T("collapse"), collapse);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->EndNode(_T("p:sld"));
|
||||
}
|
||||
void Sld::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
//-----------------------------------------------------------------------------------------------------------------------------
|
||||
OutlineViewPr& OutlineViewPr::operator=(const OutlineViewPr& oSrc)
|
||||
{
|
||||
parentFile = oSrc.parentFile;
|
||||
|
||||
@ -33,12 +33,30 @@
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "CViewPr.h"
|
||||
#include "Sld.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsViewProps
|
||||
{
|
||||
class Sld : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Sld)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
nullable_string id;
|
||||
nullable_bool collapse;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
|
||||
class OutlineViewPr : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
|
||||
@ -1,104 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#include "Sld.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsViewProps
|
||||
{
|
||||
void Sld::fromXML(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
XmlMacroReadAttributeBase(node, L"id", id);
|
||||
XmlMacroReadAttributeBase(node, L"collapse", collapse);
|
||||
}
|
||||
std::wstring Sld::toXML() const
|
||||
{
|
||||
XmlUtils::CAttribute oAttr;
|
||||
oAttr.Write(_T("id"), id);
|
||||
oAttr.Write(_T("collapse"), collapse);
|
||||
|
||||
return XmlUtils::CreateNode(_T("p:sld"), oAttr);
|
||||
}
|
||||
void Sld::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
pWriter->WriteString2(0, id);
|
||||
pWriter->WriteBool2(1, collapse);
|
||||
|
||||
pWriter->WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
}
|
||||
void Sld::fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader)
|
||||
{
|
||||
LONG _end_rec = pReader->GetPos() + pReader->GetRecordSize() + 4;
|
||||
pReader->Skip(1); // start attributes
|
||||
|
||||
while (true)
|
||||
{
|
||||
BYTE _at = pReader->GetUChar_TypeNode();
|
||||
if (_at == NSBinPptxRW::g_nodeAttributeEnd)
|
||||
break;
|
||||
|
||||
switch (_at)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
id = pReader->GetString2();
|
||||
}break;
|
||||
case 1:
|
||||
{
|
||||
collapse = pReader->GetBool();
|
||||
}break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
pReader->Seek(_end_rec);
|
||||
}
|
||||
void Sld::toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("p:sld"));
|
||||
|
||||
pWriter->StartAttributes();
|
||||
pWriter->WriteAttribute(_T("id"), id);
|
||||
pWriter->WriteAttribute(_T("collapse"), collapse);
|
||||
pWriter->EndAttributes();
|
||||
|
||||
pWriter->EndNode(_T("p:sld"));
|
||||
}
|
||||
void Sld::FillParentPointersForChilds()
|
||||
{
|
||||
}
|
||||
} // namespace nsViewProps
|
||||
} // namespace PPTX
|
||||
|
||||
@ -1,61 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2023
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-6 Ernesta Birznieka-Upish
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "./../Limit/Orient.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace nsViewProps
|
||||
{
|
||||
class Sld : public WrapperWritingElement
|
||||
{
|
||||
public:
|
||||
PPTX_LOGIC_BASE(Sld)
|
||||
|
||||
virtual void fromXML(XmlUtils::CXmlNode& node);
|
||||
virtual std::wstring toXML() const;
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
virtual void fromPPTY(NSBinPptxRW::CBinaryFileReader* pReader);
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const;
|
||||
|
||||
nullable_string id;
|
||||
nullable_bool collapse;
|
||||
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
};
|
||||
} // namespace nsViewProps
|
||||
} // namespace PPTX
|
||||
|
||||
@ -96,7 +96,6 @@ SOURCES += \
|
||||
../../../PPTXFormat/ViewProps/Ratio.cpp \
|
||||
../../../PPTXFormat/ViewProps/Restored.cpp \
|
||||
../../../PPTXFormat/ViewProps/Scale.cpp \
|
||||
../../../PPTXFormat/ViewProps/Sld.cpp \
|
||||
../../../PPTXFormat/ViewProps/SlideViewPr.cpp \
|
||||
../../../PPTXFormat/ViewProps/SorterViewPr.cpp \
|
||||
\
|
||||
@ -110,18 +109,12 @@ SOURCES += \
|
||||
../../../PPTXFormat/ShowPr/PresentationPr.cpp \
|
||||
../../../PPTXFormat/ShowPr/Present.cpp \
|
||||
../../../PPTXFormat/ShowPr/Kiosk.cpp \
|
||||
../../../PPTXFormat/ShowPr/CustShow.cpp \
|
||||
../../../PPTXFormat/ShowPr/CustomShowId.cpp \
|
||||
../../../PPTXFormat/ShowPr/Browse.cpp \
|
||||
../../../PPTXFormat/ShowPr/SldRg.cpp \
|
||||
../../../PPTXFormat/ShowPr/SldAll.cpp \
|
||||
\
|
||||
../../../PPTXFormat/Presentation/NotesSz.cpp \
|
||||
../../../PPTXFormat/Presentation/PhotoAlbum.cpp \
|
||||
../../../PPTXFormat/Presentation/EmbeddedFont.cpp \
|
||||
../../../PPTXFormat/Presentation/EmbeddedFontDataId.cpp \
|
||||
../../../PPTXFormat/Presentation/Kinsoku.cpp \
|
||||
../../../PPTXFormat/Presentation/SectionLst.cpp \
|
||||
../../../PPTXFormat/Presentation/SldSz.cpp
|
||||
../../../PPTXFormat/Presentation/PresentationChildElements.cpp
|
||||
|
||||
HEADERS += \
|
||||
pptx_format.h \
|
||||
@ -155,12 +148,7 @@ HEADERS += \
|
||||
../../../PPTXFormat/DrawingConverter/ASCOfficeDrawingConverter.h \
|
||||
../../../PPTXFormat/DrawingConverter/ASCOfficePPTXFile.h \
|
||||
\
|
||||
../../../PPTXFormat/Presentation/EmbeddedFont.h \
|
||||
../../../PPTXFormat/Presentation/EmbeddedFontDataId.h \
|
||||
../../../PPTXFormat/Presentation/Kinsoku.h \
|
||||
../../../PPTXFormat/Presentation/NotesSz.h \
|
||||
../../../PPTXFormat/Presentation/PhotoAlbum.h \
|
||||
../../../PPTXFormat/Presentation/SldSz.h \
|
||||
../../../PPTXFormat/Presentation/PresentationChildElements.h \
|
||||
\
|
||||
../../../PPTXFormat/Theme/ClrScheme.h \
|
||||
../../../PPTXFormat/Theme/ExtraClrScheme.h \
|
||||
@ -181,7 +169,6 @@ HEADERS += \
|
||||
../../../PPTXFormat/ViewProps/Ratio.h \
|
||||
../../../PPTXFormat/ViewProps/Restored.h \
|
||||
../../../PPTXFormat/ViewProps/Scale.h \
|
||||
../../../PPTXFormat/ViewProps/Sld.h \
|
||||
../../../PPTXFormat/ViewProps/SlideViewPr.h \
|
||||
../../../PPTXFormat/ViewProps/SorterViewPr.h \
|
||||
\
|
||||
@ -199,7 +186,7 @@ HEADERS += \
|
||||
../../../Binary/Presentation/DefaultNotesTheme.h \
|
||||
\
|
||||
../../../PPTXFormat/ShowPr/Browse.h \
|
||||
../../../PPTXFormat/ShowPr/CustShow.h \
|
||||
../../../PPTXFormat/ShowPr/CustomShowId.h \
|
||||
../../../PPTXFormat/ShowPr/Kiosk.h \
|
||||
../../../PPTXFormat/ShowPr/Present.h \
|
||||
../../../PPTXFormat/ShowPr/PresentationPr.h \
|
||||
|
||||
@ -623,16 +623,10 @@
|
||||
<ClInclude Include="..\..\..\PPTXFormat\PPTX.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\PPTXEvent.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\EmbeddedFont.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\EmbeddedFontDataId.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\Kinsoku.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\NotesSz.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\PhotoAlbum.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\SectionLst.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\SldSz.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\PresentationChildElements.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\PresProps.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\Browse.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\CustShow.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\CustomShowId.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\Kiosk.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\Present.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\PresentationPr.h" />
|
||||
@ -662,7 +656,6 @@
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Ratio.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Restored.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Scale.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Sld.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\SlideViewPr.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\SorterViewPr.h" />
|
||||
<ClInclude Include="..\..\..\PPTXFormat\WrapperFile.h" />
|
||||
@ -1254,16 +1247,10 @@
|
||||
<ClCompile Include="..\..\..\PPTXFormat\NotesMaster.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\NotesSlide.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\EmbeddedFont.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\EmbeddedFontDataId.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\Kinsoku.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\NotesSz.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\PhotoAlbum.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\SectionLst.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\SldSz.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\PresentationChildElements.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\PresProps.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\Browse.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\CustShow.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\CustomShowId.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\Kiosk.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\Present.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\PresentationPr.cpp" />
|
||||
@ -1293,7 +1280,6 @@
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Ratio.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Restored.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Scale.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Sld.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\SlideViewPr.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\SorterViewPr.cpp" />
|
||||
<ClCompile Include="..\..\..\PPTXFormat\WrapperFile.cpp" />
|
||||
|
||||
@ -685,31 +685,13 @@
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Logic\Transitions\ZoomTransition.h">
|
||||
<Filter>Logic\Transition</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\EmbeddedFont.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\EmbeddedFontDataId.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\Kinsoku.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\NotesSz.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\PhotoAlbum.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\SectionLst.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\SldSz.h">
|
||||
<ClInclude Include="..\..\..\PPTXFormat\Presentation\PresentationChildElements.h">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\Browse.h">
|
||||
<Filter>PresentationPr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\CustShow.h">
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\CustomShowId.h">
|
||||
<Filter>PresentationPr</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ShowPr\Kiosk.h">
|
||||
@ -778,9 +760,6 @@
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Scale.h">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\Sld.h">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\..\PPTXFormat\ViewProps\SlideViewPr.h">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClInclude>
|
||||
@ -2451,31 +2430,13 @@
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Logic\XmlId.cpp">
|
||||
<Filter>Logic</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\EmbeddedFont.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\EmbeddedFontDataId.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\Kinsoku.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\NotesSz.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\PhotoAlbum.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\SectionLst.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\SldSz.cpp">
|
||||
<ClCompile Include="..\..\..\PPTXFormat\Presentation\PresentationChildElements.cpp">
|
||||
<Filter>Presentation</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\Browse.cpp">
|
||||
<Filter>PresentationPr</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\CustShow.cpp">
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\CustomShowId.cpp">
|
||||
<Filter>PresentationPr</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ShowPr\Kiosk.cpp">
|
||||
@ -2514,9 +2475,6 @@
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\SlideViewPr.cpp">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Sld.cpp">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\..\PPTXFormat\ViewProps\Scale.cpp">
|
||||
<Filter>ViewProps</Filter>
|
||||
</ClCompile>
|
||||
|
||||
@ -74,8 +74,7 @@
|
||||
#include "../../../OOXML/PPTXFormat/Logic/Transitions/SplitTransition.h"
|
||||
#include "../../../OOXML/PPTXFormat/Logic/Transitions/ZoomTransition.h"
|
||||
|
||||
#include "../../../OOXML/PPTXFormat/Presentation/SldSz.h"
|
||||
#include "../../../OOXML/PPTXFormat/Presentation/NotesSz.h"
|
||||
#include "../../../OOXML/PPTXFormat/Presentation/PresentationChildElements.h"
|
||||
#include "../../../OOXML/DocxFormat/Core.h"
|
||||
#include "../../../OOXML/DocxFormat/App.h"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user