mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
Compare commits
216 Commits
v6.2.0.71
...
v99.99.99.
| Author | SHA1 | Date | |
|---|---|---|---|
| 84871ecb52 | |||
| c4491e12c7 | |||
| 297653733a | |||
| 3588900943 | |||
| 4c38d2ea54 | |||
| 81ef6f71c5 | |||
| 7535e4ccd5 | |||
| ccb2957df2 | |||
| 5c7a6c03b6 | |||
| 7c8c5b0b11 | |||
| 45b6f1702d | |||
| 91bc1f74ae | |||
| bbf97e2098 | |||
| 0f80aba351 | |||
| f58b7c9a67 | |||
| d82a9886b2 | |||
| 9bd7784bcc | |||
| 026c85097f | |||
| 30c2d81bbd | |||
| b8b16ecbe8 | |||
| 76ef6b792f | |||
| 2c4d5baac2 | |||
| 43feea8012 | |||
| 2003743229 | |||
| 6496ebd2e8 | |||
| d26620973b | |||
| 260765b17a | |||
| 1b1db8e70b | |||
| 7b2f693235 | |||
| 0bc6264d93 | |||
| 93dc4cee9c | |||
| 0cd5815f0d | |||
| 0f7552c96f | |||
| 988d134f0e | |||
| 762266238e | |||
| 0afacbada8 | |||
| 3a4c034a71 | |||
| 0ca1b533a7 | |||
| 9831ba0f4d | |||
| 2202de0b85 | |||
| 266949a9c8 | |||
| 78079ce900 | |||
| e7f784365c | |||
| 1bade8fc10 | |||
| 61eb76c005 | |||
| 7845871a90 | |||
| f9dd2dc239 | |||
| 256f5c05e3 | |||
| cb06c8c255 | |||
| 8148b0065d | |||
| f2b8bd9d47 | |||
| 081e163e8a | |||
| e612b9bd0b | |||
| 60c99483c4 | |||
| 32d56dcb56 | |||
| f38d221946 | |||
| 2c6a25b219 | |||
| e975b8bcfe | |||
| ed7c8e78f9 | |||
| ceb0d864f5 | |||
| dcf5b8820c | |||
| 89a53628ec | |||
| d541b11138 | |||
| e065bd72ff | |||
| 3125ec4899 | |||
| d2a8ef12db | |||
| ec210a444b | |||
| e8dd903f2e | |||
| 9a99d4da72 | |||
| 62ed1da12c | |||
| 452115f57b | |||
| 11d4b176f4 | |||
| 20fdf3f6eb | |||
| 72de286fb2 | |||
| b87b38bb15 | |||
| 59ccda7344 | |||
| c575a4f40a | |||
| 68d75c3ff3 | |||
| eff7bb6a51 | |||
| a412ab0324 | |||
| 4a99e5d17b | |||
| 625b647a59 | |||
| a268e88747 | |||
| b5a038de2c | |||
| b2868f3c99 | |||
| edb18a87f5 | |||
| dc52678838 | |||
| 6c219d6d21 | |||
| 6b8092d9bb | |||
| b026d77b4d | |||
| 3a95871089 | |||
| 6c7a124c77 | |||
| b4d62b7ef4 | |||
| 0c2a5ee0c7 | |||
| 9706f5a530 | |||
| b39ed42e20 | |||
| 45bbe26910 | |||
| a6801103f3 | |||
| eb3827a32b | |||
| eda3cbf4cf | |||
| 25aecb7d7a | |||
| 40450b295e | |||
| 2ce1d9fbf1 | |||
| 19c0e2e4d7 | |||
| 973229656e | |||
| fcdf797be4 | |||
| cd7218584b | |||
| 88cd576f06 | |||
| 56bca855c3 | |||
| e74469cf0e | |||
| f265724464 | |||
| f268a814b0 | |||
| c05ada24fd | |||
| f53acc2326 | |||
| c5f7aac996 | |||
| 7781a73352 | |||
| 4612076bee | |||
| 883dda0f3f | |||
| e545cb4c54 | |||
| 2bc4726ca9 | |||
| b20ffdcc8e | |||
| f8e96ee867 | |||
| 4cc866d5a3 | |||
| 2ad6553bb0 | |||
| e9120c8687 | |||
| 562b7a7eea | |||
| 55abc7d9c2 | |||
| 38f9bec1a0 | |||
| c15e096f6d | |||
| 85d3b86017 | |||
| 9514f915ab | |||
| a4d1dcd164 | |||
| 5b40569188 | |||
| 1705cce230 | |||
| 015f3171bc | |||
| bea0ddeaf5 | |||
| dbf3cbe24b | |||
| ef8d0624ce | |||
| dbb54ec25b | |||
| 9bde9c9557 | |||
| d073526216 | |||
| 1aaa19baf9 | |||
| bca41ae58c | |||
| 2f9c765c14 | |||
| 6818500ac2 | |||
| 5edfe05924 | |||
| 371fc2573e | |||
| 1278496492 | |||
| e33f92bc04 | |||
| b13593bae2 | |||
| ba5b663df7 | |||
| dd9004f192 | |||
| 6e08d09163 | |||
| 3d64c86da9 | |||
| 19dd5259f9 | |||
| 2b1c25bcfa | |||
| 046a7839d4 | |||
| b35dfb7158 | |||
| fb54c393f4 | |||
| f6d3028a22 | |||
| 30f801f5e2 | |||
| b07c008de6 | |||
| 1a2d2157c2 | |||
| 0ed2e406ac | |||
| 90444cc6d9 | |||
| 66156cd8e4 | |||
| 62513d85d4 | |||
| 2c74f9578b | |||
| 034521b1a0 | |||
| 1addfcb6ef | |||
| b8e749fb82 | |||
| e2b04f4cc1 | |||
| a14432587e | |||
| b01f578486 | |||
| 8423b72acf | |||
| fc06862474 | |||
| e94848468e | |||
| e654a94465 | |||
| 258d42dc0e | |||
| 3d0741bc49 | |||
| 6fc317590b | |||
| 49d471d4c0 | |||
| 4fa9abfb26 | |||
| 7576142dd8 | |||
| c7777fd7f8 | |||
| a174df63e8 | |||
| 7061b4e88c | |||
| 4a43fd11df | |||
| d0a3c5798f | |||
| e0c2daacb8 | |||
| 71142b0b5c | |||
| 60e148de81 | |||
| 0d1693c159 | |||
| a7f528d240 | |||
| 975f19c98e | |||
| 0f515c9e83 | |||
| 0613e138f1 | |||
| d6d4a3e006 | |||
| 54d555e4d6 | |||
| 5bd2ad6487 | |||
| c584a27727 | |||
| 7dab2f7f20 | |||
| 72c5ff0e51 | |||
| f26eeb10ef | |||
| b2efe4183e | |||
| 6ef9388f99 | |||
| db7ccd281f | |||
| 2bb35f193d | |||
| 2ad5200e3a | |||
| 63a076fc2a | |||
| e1d5b58c66 | |||
| 7ae9986f67 | |||
| c3ad1b86d5 | |||
| 326daad961 | |||
| a8be92a272 | |||
| 56609c5d53 |
@ -39,7 +39,7 @@
|
||||
namespace Writers
|
||||
{
|
||||
|
||||
FileWriter::FileWriter(std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
FileWriter::FileWriter(std::wstring sDirOutput,std::wstring sFontDir, bool bNoFontDir, int nVersion, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath)
|
||||
:
|
||||
m_oMain(sDirOutput, sFontDir, bNoFontDir, nVersion),
|
||||
m_oGlossary(sDirOutput, sFontDir, bNoFontDir, nVersion),
|
||||
@ -47,7 +47,6 @@ FileWriter::FileWriter(std::wstring sDirOutput,std::wstring sFontDir, bool bNoFo
|
||||
m_oChartWriter (sDirOutput),
|
||||
m_oCustomXmlWriter (sDirOutput, pDrawingConverter),
|
||||
m_pDrawingConverter (pDrawingConverter),
|
||||
m_bSaveChartAsImg (bSaveChartAsImg),
|
||||
m_sThemePath (sThemePath),
|
||||
m_oDocumentRelsWriter (sDirOutput),
|
||||
m_nDocPrIndex (0),
|
||||
|
||||
@ -120,7 +120,7 @@ namespace Writers
|
||||
_part_summary_writers m_oGlossary;
|
||||
public:
|
||||
|
||||
FileWriter(std::wstring sDirOutput, std::wstring sFontDir, bool bNoFontDir, int nVersion, bool bSaveChartAsImg, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath);
|
||||
FileWriter(std::wstring sDirOutput, std::wstring sFontDir, bool bNoFontDir, int nVersion, NSBinPptxRW::CDrawingConverter* pDrawingConverter, std::wstring sThemePath);
|
||||
~FileWriter();
|
||||
|
||||
FontTableWriter& get_font_table_writer() { return m_bGlossaryMode ? m_oGlossary.font_table : m_oMain.font_table; }
|
||||
@ -161,7 +161,7 @@ namespace Writers
|
||||
smart_ptr<OOX::VbaProject> m_pVbaProject;
|
||||
|
||||
NSBinPptxRW::CDrawingConverter* m_pDrawingConverter;
|
||||
bool m_bSaveChartAsImg;
|
||||
|
||||
std::wstring m_sThemePath;
|
||||
int m_nDocPrIndex;
|
||||
BinDocxRW::CComments* m_pComments;
|
||||
|
||||
@ -387,17 +387,16 @@ class Shd
|
||||
public:
|
||||
BYTE Value;
|
||||
docRGB Color;
|
||||
CThemeColor ThemeColor;
|
||||
docRGB Fill;
|
||||
CThemeColor ThemeColor;
|
||||
|
||||
bool bValue = false;
|
||||
bool bColor = false;
|
||||
bool bThemeColor = false;
|
||||
bool bFill = false;
|
||||
|
||||
Shd(){}
|
||||
|
||||
bool bValue;
|
||||
bool bColor;
|
||||
bool bThemeColor;
|
||||
Shd()
|
||||
{
|
||||
bValue = false;
|
||||
bColor = false;
|
||||
bThemeColor = false;
|
||||
}
|
||||
std::wstring ToString()
|
||||
{
|
||||
std::wstring sShd;
|
||||
@ -450,17 +449,17 @@ public:
|
||||
}
|
||||
}
|
||||
if (bColor)
|
||||
{
|
||||
sShd += L" w:fill=\"" + Color.ToString() + L"\"";
|
||||
sShd += L" w:color=\"" + Color.ToString() + L"\"";
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
if (bFill)
|
||||
sShd += L" w:fill=\"#" + Fill.ToString() + L"\"";
|
||||
|
||||
if (!bColor && !bFill)
|
||||
sShd += L" w:color=\"auto\"";
|
||||
}
|
||||
|
||||
if(bThemeColor && ThemeColor.IsNoEmpty())
|
||||
{
|
||||
if(ThemeColor.Auto && !bColor)
|
||||
if(ThemeColor.Auto && !bColor && !bFill)
|
||||
sShd += L" w:fill=\"auto\"";
|
||||
if(ThemeColor.bColor)
|
||||
sShd += L" w:themeFill=\"" + ThemeColor.ToStringColor() + L"\"";
|
||||
@ -505,6 +504,10 @@ public:
|
||||
std::wstring FontHAnsi;
|
||||
std::wstring FontAE;
|
||||
std::wstring FontCS;
|
||||
std::wstring FontAsciiTheme;
|
||||
std::wstring FontHAnsiTheme;
|
||||
std::wstring FontAETheme;
|
||||
std::wstring FontCSTheme;
|
||||
long FontSize;
|
||||
docRGB Color;
|
||||
BYTE VertAlign;
|
||||
@ -628,7 +631,7 @@ public:
|
||||
{
|
||||
return bBold || bItalic || bUnderline || bStrikeout || bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontSize || bColor || bVertAlign || nHighLight > 0 || bShd ||
|
||||
bRStyle || bSpacing || bDStrikeout || bCaps || bSmallCaps || bPosition || bFontHint || bBoldCs || bItalicCs || bFontSizeCs || bCs || bRtl || bLang || bLangBidi || bLangEA || bThemeColor || bVanish ||
|
||||
!Outline.empty() || !Fill.empty() || !Del.empty() || !Ins.empty() || !MoveFrom.empty() || !MoveTo.empty() || !rPrChange.empty();
|
||||
!Outline.empty() || !Fill.empty() || !Del.empty() || !Ins.empty() || !MoveFrom.empty() || !MoveTo.empty() || !rPrChange.empty() || !FontAsciiTheme.empty() || !FontHAnsiTheme.empty() || !FontAETheme.empty() || !FontCSTheme.empty();
|
||||
}
|
||||
void Write(NSStringUtils::CStringBuilder* pCStringWriter)
|
||||
{
|
||||
@ -637,7 +640,7 @@ public:
|
||||
{
|
||||
pCStringWriter->WriteString(L"<w:rStyle w:val=\"" + RStyle + L"\"/>");
|
||||
}
|
||||
if(bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontHint)
|
||||
if(bFontAscii || bFontHAnsi || bFontAE || bFontCS || bFontHint || !FontAsciiTheme.empty() || !FontHAnsiTheme.empty() || !FontAETheme.empty() || !FontCSTheme.empty())
|
||||
{
|
||||
std::wstring sFont = _T("<w:rFonts");
|
||||
if(bFontAscii)
|
||||
@ -660,6 +663,22 @@ public:
|
||||
sFont += L" w:eastAsia=\"" + FontAE + L"\"";
|
||||
m_mapFonts[FontAE] = 1;
|
||||
}
|
||||
if(!FontAsciiTheme.empty())
|
||||
{
|
||||
sFont += L" w:asciiTheme=\"" + FontAsciiTheme + L"\"";
|
||||
}
|
||||
if(!FontHAnsiTheme.empty())
|
||||
{
|
||||
sFont += L" w:hAnsiTheme=\"" + FontHAnsiTheme + L"\"";
|
||||
}
|
||||
if(!FontAETheme.empty())
|
||||
{
|
||||
sFont += L" w:eastAsiaTheme=\"" + FontAETheme + L"\"";
|
||||
}
|
||||
if(!FontCSTheme.empty())
|
||||
{
|
||||
sFont += L" w:cstheme=\"" + FontCSTheme + L"\"";
|
||||
}
|
||||
if(bFontHint)
|
||||
{
|
||||
switch(FontHint)
|
||||
@ -2336,40 +2355,41 @@ public:
|
||||
unsigned int nObjectId;
|
||||
BYTE nObjectType;
|
||||
|
||||
long DataPos;
|
||||
long DataLength;
|
||||
BYTE Type;
|
||||
bool BehindDoc;
|
||||
__int64 DistL;
|
||||
__int64 DistT;
|
||||
__int64 DistR;
|
||||
__int64 DistB;
|
||||
bool LayoutInCell;
|
||||
long DataPos;
|
||||
long DataLength;
|
||||
BYTE Type;
|
||||
bool BehindDoc;
|
||||
__int64 DistL;
|
||||
__int64 DistT;
|
||||
__int64 DistR;
|
||||
__int64 DistB;
|
||||
bool LayoutInCell;
|
||||
unsigned long RelativeHeight;
|
||||
bool BSimplePos;
|
||||
__int64 EffectExtentL;
|
||||
__int64 EffectExtentT;
|
||||
__int64 EffectExtentR;
|
||||
__int64 EffectExtentB;
|
||||
__int64 Width;
|
||||
__int64 Height;
|
||||
BYTE PositionHRelativeFrom;
|
||||
BYTE PositionHAlign;
|
||||
__int64 PositionHPosOffset;
|
||||
double PositionHPctOffset;
|
||||
BYTE PositionVRelativeFrom;
|
||||
BYTE PositionVAlign;
|
||||
__int64 PositionVPosOffset;
|
||||
double PositionVPctOffset;
|
||||
__int64 SimplePosX;
|
||||
__int64 SimplePosY;
|
||||
std::wstring sChartRels;
|
||||
bool BSimplePos;
|
||||
__int64 EffectExtentL;
|
||||
__int64 EffectExtentT;
|
||||
__int64 EffectExtentR;
|
||||
__int64 EffectExtentB;
|
||||
__int64 Width;
|
||||
__int64 Height;
|
||||
BYTE PositionHRelativeFrom;
|
||||
BYTE PositionHAlign;
|
||||
__int64 PositionHPosOffset;
|
||||
double PositionHPctOffset;
|
||||
BYTE PositionVRelativeFrom;
|
||||
BYTE PositionVAlign;
|
||||
__int64 PositionVPosOffset;
|
||||
double PositionVPctOffset;
|
||||
__int64 SimplePosX;
|
||||
__int64 SimplePosY;
|
||||
std::wstring sSizeRelH;
|
||||
std::wstring sSizeRelV;
|
||||
int m_nDocPr;
|
||||
int m_nDocPr;
|
||||
std::wstring sGraphicFramePr;
|
||||
std::wstring sDocPr;
|
||||
|
||||
std::wstring sGraphicFrameContent;
|
||||
|
||||
CDrawingPropertyWrap DrawingPropertyWrap;
|
||||
|
||||
bool bDataPos;
|
||||
@ -2437,9 +2457,9 @@ public:
|
||||
bSimplePosY = false;
|
||||
bDrawingPropertyWrap = false;
|
||||
}
|
||||
bool IsChart()
|
||||
bool IsGraphicFrameContent()
|
||||
{
|
||||
return false == sChartRels.empty();
|
||||
return false == sGraphicFrameContent.empty();
|
||||
}
|
||||
std::wstring Write()
|
||||
{
|
||||
@ -2447,17 +2467,22 @@ public:
|
||||
|
||||
std::wstring sXml;
|
||||
|
||||
bool bChart = IsChart();
|
||||
if(c_oAscWrapStyle::Inline == Type)
|
||||
bool bGraphicFrameContent = IsGraphicFrameContent();
|
||||
|
||||
if(c_oAscWrapStyle::Inline == Type)
|
||||
{
|
||||
if(bWidth && bHeight)
|
||||
{
|
||||
if(false == bChart)
|
||||
sXml += L"<wp:inline xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
if (bGraphicFrameContent)
|
||||
{
|
||||
sXml += L"<w:drawing><wp:inline distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\">\
|
||||
<wp:extent cx=\"" + std::to_wstring(Width) + L"\" cy=\"" + std::to_wstring(Height) + L"\"/>";
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml += L"<wp:inline xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\" \
|
||||
distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstring(Width) + L"\" cy=\"" + std::to_wstring(Height) + L"\"/>";
|
||||
else
|
||||
sXml += L"<w:drawing><wp:inline distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\">\
|
||||
<wp:extent cx=\"" + std::to_wstring(Width) + L"\" cy=\"" + std::to_wstring(Height) + L"\"/>";
|
||||
}
|
||||
|
||||
if(bEffectExtentL && bEffectExtentT && bEffectExtentR && bEffectExtentB)
|
||||
{
|
||||
@ -2473,18 +2498,17 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
{
|
||||
sXml += L"<wp:docPr id=\"" + std::to_wstring(m_nDocPr) + L"\" name=\"\"/>";
|
||||
}
|
||||
if(!sGraphicFramePr.empty())
|
||||
if (!sGraphicFramePr.empty())
|
||||
{
|
||||
sXml += (sGraphicFramePr);
|
||||
sXml += sGraphicFramePr;
|
||||
}
|
||||
else
|
||||
{
|
||||
sXml += L"<wp:cNvGraphicFramePr/>";
|
||||
}
|
||||
if(bChart)
|
||||
if (bGraphicFrameContent)
|
||||
{
|
||||
sXml += L"<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\""
|
||||
+ sChartRels + L"\"/></a:graphicData></a:graphic></wp:inline></w:drawing>";
|
||||
sXml += sGraphicFrameContent + L"</wp:inline></w:drawing>";
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -2524,9 +2548,10 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
if(bLayoutInCell && false == LayoutInCell)
|
||||
nLayoutInCell = 0;
|
||||
|
||||
if(bChart)
|
||||
sXml += L"<w:drawing>";
|
||||
|
||||
if (bGraphicFrameContent)
|
||||
{
|
||||
sXml += L"<w:drawing>";
|
||||
}
|
||||
sXml += L"<wp:anchor xmlns:wp=\"http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing\"\
|
||||
distT=\"" + std::to_wstring(emuDistT) +
|
||||
L"\" distB=\"" + std::to_wstring(emuDistB) +
|
||||
@ -2545,7 +2570,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
emuY = SimplePosY;
|
||||
sXml += L"<wp:simplePos x=\"" + std::to_wstring(emuX) + L"\" y=\"" + std::to_wstring(emuY) + L"\"/>";
|
||||
|
||||
if(bPositionHRelativeFrom && (bPositionHAlign || bPositionHPosOffset || bPositionHPctOffset))
|
||||
if (bPositionHRelativeFrom && (bPositionHAlign || bPositionHPosOffset || bPositionHPctOffset))
|
||||
{
|
||||
std::wstring sRelativeFrom;
|
||||
switch(PositionHRelativeFrom)
|
||||
@ -2582,7 +2607,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
}
|
||||
sXml += L"<wp:positionH relativeFrom=\"" + sRelativeFrom + L"\">" + sContent + L"</wp:positionH>";
|
||||
}
|
||||
if(bPositionVRelativeFrom && (bPositionVAlign || bPositionVPosOffset || bPositionVPctOffset))
|
||||
if (bPositionVRelativeFrom && (bPositionVAlign || bPositionVPosOffset || bPositionVPctOffset))
|
||||
{
|
||||
std::wstring sRelativeFrom;
|
||||
switch(PositionVRelativeFrom)
|
||||
@ -2597,7 +2622,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
case 7: sRelativeFrom = _T("topMargin");break;
|
||||
}
|
||||
std::wstring sContent;
|
||||
if(bPositionVAlign)
|
||||
if (bPositionVAlign)
|
||||
{
|
||||
switch(PositionVAlign)
|
||||
{
|
||||
@ -2621,22 +2646,22 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
}
|
||||
sXml += L"<wp:extent cx=\"" + std::to_wstring(Width) + L"\" cy=\"" + std::to_wstring(Height)+ L"\"/>";
|
||||
|
||||
if(bEffectExtentL && bEffectExtentT && bEffectExtentR && bEffectExtentB)
|
||||
if (bEffectExtentL && bEffectExtentT && bEffectExtentR && bEffectExtentB)
|
||||
{
|
||||
sXml += L"<wp:effectExtent l=\"" + std::to_wstring(EffectExtentL) +
|
||||
L"\" t=\"" + std::to_wstring(EffectExtentT) + L"\" r=\"" + std::to_wstring(EffectExtentR) +
|
||||
L"\" b=\"" + std::to_wstring(EffectExtentB) + L"\"/>";
|
||||
}
|
||||
if(bDrawingPropertyWrap && DrawingPropertyWrap.bWrappingType)
|
||||
if (bDrawingPropertyWrap && DrawingPropertyWrap.bWrappingType)
|
||||
{
|
||||
std::wstring sTagName;
|
||||
switch(DrawingPropertyWrap.WrappingType)
|
||||
{
|
||||
case c_oSerImageType2::WrapNone:sTagName = _T("wrapNone"); break;
|
||||
case c_oSerImageType2::WrapSquare:sTagName = _T("wrapSquare"); break;
|
||||
case c_oSerImageType2::WrapThrough:sTagName = _T("wrapThrough"); break;
|
||||
case c_oSerImageType2::WrapTight:sTagName = _T("wrapTight"); break;
|
||||
case c_oSerImageType2::WrapTopAndBottom:sTagName = _T("wrapTopAndBottom"); break;
|
||||
case c_oSerImageType2::WrapNone:sTagName = _T("wrapNone"); break;
|
||||
case c_oSerImageType2::WrapSquare:sTagName = _T("wrapSquare"); break;
|
||||
case c_oSerImageType2::WrapThrough:sTagName = _T("wrapThrough"); break;
|
||||
case c_oSerImageType2::WrapTight:sTagName = _T("wrapTight"); break;
|
||||
case c_oSerImageType2::WrapTopAndBottom:sTagName = _T("wrapTopAndBottom"); break;
|
||||
}
|
||||
if(DrawingPropertyWrap.bStart || DrawingPropertyWrap.Points.size() > 0)
|
||||
{
|
||||
@ -2702,10 +2727,9 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
{
|
||||
sXml += L"<wp:cNvGraphicFramePr/>";
|
||||
}
|
||||
if(bChart)
|
||||
if (bGraphicFrameContent)
|
||||
{
|
||||
sXml += L"<a:graphic xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\"><a:graphicData uri=\"http://schemas.openxmlformats.org/drawingml/2006/chart\"><c:chart xmlns:c=\"http://schemas.openxmlformats.org/drawingml/2006/chart\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" r:id=\""
|
||||
+ sChartRels + L"\"/></a:graphicData></a:graphic>";
|
||||
sXml += sGraphicFrameContent;
|
||||
}
|
||||
|
||||
if(!sSizeRelH.empty())
|
||||
@ -2719,7 +2743,7 @@ distT=\"0\" distB=\"0\" distL=\"0\" distR=\"0\"><wp:extent cx=\"" + std::to_wstr
|
||||
|
||||
sXml += L"</wp:anchor>";
|
||||
|
||||
if(bChart)
|
||||
if (bGraphicFrameContent)
|
||||
sXml += L"</w:drawing>";
|
||||
}
|
||||
}
|
||||
|
||||
@ -307,6 +307,10 @@ int Binary_CommonReader2::ReadShd(BYTE type, long length, void* poResult)
|
||||
pShd->bThemeColor = true;
|
||||
ReadThemeColor(length, pShd->ThemeColor);
|
||||
break;
|
||||
case c_oSerShdType::Fill:
|
||||
pShd->bFill = true;
|
||||
pShd->Fill = ReadColor();
|
||||
break;
|
||||
default:
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
break;
|
||||
@ -474,6 +478,13 @@ int Binary_rPrReader::ReadContent(BYTE type, long length, void* poResult)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontAsciiTheme:
|
||||
{
|
||||
SimpleTypes::CTheme<> theme;
|
||||
theme.SetValue((SimpleTypes::ETheme)m_oBufferedStream.GetUChar());
|
||||
orPr->FontAsciiTheme = theme.ToString();
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontHAnsi:
|
||||
{
|
||||
std::wstring sFontName(m_oBufferedStream.GetString3(length));
|
||||
@ -485,6 +496,13 @@ int Binary_rPrReader::ReadContent(BYTE type, long length, void* poResult)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontHAnsiTheme:
|
||||
{
|
||||
SimpleTypes::CTheme<> theme;
|
||||
theme.SetValue((SimpleTypes::ETheme)m_oBufferedStream.GetUChar());
|
||||
orPr->FontHAnsiTheme = theme.ToString();
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontCS:
|
||||
{
|
||||
std::wstring sFontName(m_oBufferedStream.GetString3(length));
|
||||
@ -496,6 +514,13 @@ int Binary_rPrReader::ReadContent(BYTE type, long length, void* poResult)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontCSTheme:
|
||||
{
|
||||
SimpleTypes::CTheme<> theme;
|
||||
theme.SetValue((SimpleTypes::ETheme)m_oBufferedStream.GetUChar());
|
||||
orPr->FontCSTheme = theme.ToString();
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontAE:
|
||||
{
|
||||
std::wstring sFontName(m_oBufferedStream.GetString3(length));
|
||||
@ -507,6 +532,13 @@ int Binary_rPrReader::ReadContent(BYTE type, long length, void* poResult)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontAETheme:
|
||||
{
|
||||
SimpleTypes::CTheme<> theme;
|
||||
theme.SetValue((SimpleTypes::ETheme)m_oBufferedStream.GetUChar());
|
||||
orPr->FontAETheme = theme.ToString();
|
||||
break;
|
||||
}
|
||||
case c_oSerProp_rPrType::FontSize:
|
||||
{
|
||||
long nFontSize = m_oBufferedStream.GetLong();
|
||||
@ -7689,14 +7721,15 @@ int Binary_DocumentTableReader::ReadRunContent(BYTE type, long length, void* poR
|
||||
CDrawingProperty oCDrawingProperty(m_oFileWriter.getNextDocPr());
|
||||
READ2_DEF(length, res, this->ReadPptxDrawing, &oCDrawingProperty);
|
||||
|
||||
if(oCDrawingProperty.IsChart())
|
||||
if(oCDrawingProperty.IsGraphicFrameContent())
|
||||
{
|
||||
GetRunStringWriter().WriteString(oCDrawingProperty.Write());
|
||||
}
|
||||
else if(oCDrawingProperty.bDataPos && oCDrawingProperty.bDataLength)
|
||||
{
|
||||
std::wstring sDrawingProperty = oCDrawingProperty.Write();
|
||||
if(false == sDrawingProperty.empty())
|
||||
|
||||
if(false == sDrawingProperty.empty())
|
||||
{
|
||||
ReadDrawing(oCDrawingProperty);
|
||||
}
|
||||
@ -8215,110 +8248,58 @@ int Binary_DocumentTableReader::ReadPptxDrawing(BYTE type, long length, void* po
|
||||
{
|
||||
int res = c_oSerConstants::ReadOk;
|
||||
CDrawingProperty* pDrawingProperty = static_cast<CDrawingProperty*>(poResult);
|
||||
if ( c_oSerImageType2::Type == type )
|
||||
if (c_oSerImageType2::Type == type)
|
||||
{
|
||||
pDrawingProperty->bType = true;
|
||||
pDrawingProperty->Type = m_oBufferedStream.GetUChar();
|
||||
}
|
||||
else if ( c_oSerImageType2::PptxData == type )
|
||||
else if (c_oSerImageType2::PptxData == type)
|
||||
{
|
||||
pDrawingProperty->bDataPos = true;
|
||||
pDrawingProperty->bDataLength = true;
|
||||
pDrawingProperty->DataPos = m_oBufferedStream.GetPos();
|
||||
pDrawingProperty->DataLength = length;
|
||||
//сейчас пропуская, потому что перед чтение этого поля надо собрать остальные данные
|
||||
//сейчас пропуская, потому что перед чтение этого поля надо собрать остальные данные
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
}
|
||||
else if ( c_oSerImageType2::Chart2 == type )
|
||||
else if (c_oSerImageType2::Chart == type)
|
||||
{
|
||||
if(false == m_oFileWriter.m_bSaveChartAsImg)
|
||||
OOX::CPath pathCharts = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"charts";
|
||||
OOX::CSystemUtility::CreateDirectories(pathCharts.GetPath());
|
||||
|
||||
m_oBufferedStream.m_pRels->m_pManager->SetDstCharts(pathCharts.GetPath());
|
||||
|
||||
m_oBufferedStream.Seek(m_oBufferedStream.GetPos() - 4); //roll back length
|
||||
|
||||
PPTX::Logic::GraphicFrame graphicFrame;
|
||||
|
||||
graphicFrame.chartRec.Init();
|
||||
graphicFrame.chartRec->fromPPTY(&m_oBufferedStream);
|
||||
|
||||
if (graphicFrame.chartRec->id_data.IsInit())
|
||||
{
|
||||
OOX::CPath pathChartsDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"charts";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsDir.GetPath());
|
||||
|
||||
OOX::CPath pathChartsRelsDir = pathChartsDir.GetPath() + FILE_SEPARATOR_STR + L"_rels";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsRelsDir.GetPath());
|
||||
|
||||
OOX::CPath pathChartsWorksheetDir = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"embeddings";
|
||||
OOX::CSystemUtility::CreateDirectories(pathChartsWorksheetDir.GetPath());
|
||||
|
||||
int nativeDocumentType = m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_nDocumentType;
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_nDocumentType = XMLWRITER_DOC_TYPE_XLSX;
|
||||
m_oFileWriter.m_pDrawingConverter->SetDstContentRels();
|
||||
|
||||
std::wstring sThemePath = m_oFileWriter.m_sThemePath;
|
||||
std::wstring sDrawingsPath = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"drawings";
|
||||
|
||||
size_t nPos = sThemePath.rfind(FILE_SEPARATOR_STR);
|
||||
if (std::wstring::npos != nPos)
|
||||
{
|
||||
sThemePath = sThemePath.substr(0, nPos);
|
||||
}
|
||||
|
||||
BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sThemePath, m_oFileWriter.m_pDrawingConverter->GetContentTypes());
|
||||
BinXlsxRW::BinaryChartReader oBinaryChartReader(m_oBufferedStream, oSaveParams, m_oFileWriter.m_pDrawingConverter);
|
||||
|
||||
OOX::Spreadsheet::CChartSpace* pChartSpace = new OOX::Spreadsheet::CChartSpace(NULL);
|
||||
oBinaryChartReader.ReadCT_ChartSpace(length, pChartSpace);
|
||||
|
||||
//save xlsx
|
||||
_INT32 nChartCount = m_oFileWriter.m_pDrawingConverter->GetDocumentChartsCount();
|
||||
_INT32 nChartIndex = nChartCount + 1;
|
||||
m_oFileWriter.m_pDrawingConverter->SetDocumentChartsCount(nChartCount + 1);
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(nChartIndex) + L".xlsx";
|
||||
std::wstring sXlsxPath = pathChartsWorksheetDir.GetPath() + FILE_SEPARATOR_STR + sXlsxFilename;
|
||||
BinXlsxRW::CXlsxSerializer oXlsxSerializer;
|
||||
if (oXlsxSerializer.writeChartXlsx(sXlsxPath, *pChartSpace))
|
||||
{
|
||||
std::wstring sChartsWorksheetRelsName = L"../embeddings/" + sXlsxFilename;
|
||||
unsigned int rIdXlsx;
|
||||
std::wstring bstrChartsWorksheetRelType = OOX::FileTypes::MicrosoftOfficeExcelWorksheet.RelationType();
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(bstrChartsWorksheetRelType, sChartsWorksheetRelsName, std::wstring(), &rIdXlsx);
|
||||
m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_pContentTypes->AddDefault(L"xlsx");
|
||||
|
||||
pChartSpace->m_oChartSpace.m_externalData = new OOX::Spreadsheet::CT_ExternalData();
|
||||
pChartSpace->m_oChartSpace.m_externalData->m_id = new std::wstring();
|
||||
pChartSpace->m_oChartSpace.m_externalData->m_id->append(L"rId");
|
||||
pChartSpace->m_oChartSpace.m_externalData->m_id->append(std::to_wstring(rIdXlsx));
|
||||
pChartSpace->m_oChartSpace.m_externalData->m_autoUpdate = new OOX::Spreadsheet::CT_Boolean();
|
||||
pChartSpace->m_oChartSpace.m_externalData->m_autoUpdate->m_val = new bool(false);
|
||||
}
|
||||
|
||||
std::wstring sFilename = L"chart" + std::to_wstring(nChartIndex) + L".xml";
|
||||
std::wstring sRelsName = L"charts/" + sFilename;
|
||||
|
||||
OOX::CPath pathChartsFile = pathChartsDir + FILE_SEPARATOR_STR + sFilename;
|
||||
pChartSpace->write(pathChartsFile, OOX::CPath(L"/word/charts"), *m_oFileWriter.m_pDrawingConverter->GetContentTypes());
|
||||
|
||||
OOX::CPath pathChartsRels = pathChartsRelsDir.GetPath() + FILE_SEPARATOR_STR + sFilename + L".rels";
|
||||
m_oFileWriter.m_pDrawingConverter->SaveDstContentRels(pathChartsRels.GetPath());
|
||||
|
||||
unsigned int rIdChart;
|
||||
std::wstring bstrChartRelType = OOX::FileTypes::Chart.RelationType();
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(bstrChartRelType, sRelsName, std::wstring(), &rIdChart);
|
||||
//m_oFileWriter.m_pDrawingConverter->Registration(L"application/vnd.openxmlformats-officedocument.drawingml.chart+xml", L"/word/charts", sFilename);
|
||||
|
||||
pDrawingProperty->sChartRels = L"rId" + std::to_wstring( rIdChart);
|
||||
|
||||
m_oFileWriter.m_pDrawingConverter->m_pImageManager->m_nDocumentType = nativeDocumentType;
|
||||
pDrawingProperty->sGraphicFrameContent = graphicFrame.toXML2();
|
||||
}
|
||||
else
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
}
|
||||
else if ( c_oSerImageType2::ChartImg == type )
|
||||
else if (c_oSerImageType2::ChartEx == type)
|
||||
{
|
||||
if(true == m_oFileWriter.m_bSaveChartAsImg)
|
||||
OOX::CPath pathCharts = m_oFileWriter.m_oChartWriter.m_sDir + FILE_SEPARATOR_STR + L"word" + FILE_SEPARATOR_STR + L"charts";
|
||||
OOX::CSystemUtility::CreateDirectories(pathCharts.GetPath());
|
||||
|
||||
m_oBufferedStream.m_pRels->m_pManager->SetDstCharts(pathCharts.GetPath());
|
||||
|
||||
m_oBufferedStream.Seek(m_oBufferedStream.GetPos() - 4); //roll back length
|
||||
|
||||
PPTX::Logic::GraphicFrame graphicFrame;
|
||||
|
||||
graphicFrame.chartRec.Init();
|
||||
graphicFrame.chartRec->m_bChartEx = true;
|
||||
graphicFrame.chartRec->fromPPTY(&m_oBufferedStream);
|
||||
|
||||
if (graphicFrame.chartRec->id_data.IsInit())
|
||||
{
|
||||
pDrawingProperty->bDataPos = true;
|
||||
pDrawingProperty->bDataLength = true;
|
||||
pDrawingProperty->DataPos = m_oBufferedStream.GetPos();
|
||||
pDrawingProperty->DataLength = length;
|
||||
//сейчас пропуская, потому что перед чтение этого поля надо собрать остальные данные
|
||||
pDrawingProperty->sGraphicFrameContent = graphicFrame.toXML2();
|
||||
}
|
||||
res = c_oSerConstants::ReadUnknown;
|
||||
}
|
||||
else if ( c_oSerImageType2::BehindDoc == type )
|
||||
{
|
||||
@ -8507,11 +8488,12 @@ int Binary_DocumentTableReader::ReadEmbedded(BYTE type, long length, void* poRes
|
||||
|
||||
std::wstring strDstEmbeddedTempThemePath = strDstEmbeddedTempXl + FILE_SEPARATOR_STR + L"theme";
|
||||
std::wstring strDstEmbeddedTempDrawingPath = strDstEmbeddedTempXl + FILE_SEPARATOR_STR + L"drawings";
|
||||
|
||||
std::wstring strDstEmbeddedTempEmbeddingsPath = strDstEmbeddedTempXl + FILE_SEPARATOR_STR + L"embeddings";
|
||||
|
||||
int id = m_oFileWriter.m_oChartWriter.nEmbeddedCount++;
|
||||
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring( id + 1) + L".xlsx";
|
||||
BinXlsxRW::SaveParams oSaveParams(strDstEmbeddedTempDrawingPath, strDstEmbeddedTempThemePath, m_oFileWriter.m_pDrawingConverter->GetContentTypes());//???
|
||||
BinXlsxRW::SaveParams oSaveParams(strDstEmbeddedTempDrawingPath, strDstEmbeddedTempEmbeddingsPath, strDstEmbeddedTempThemePath, m_oFileWriter.m_pDrawingConverter->GetContentTypes());//???
|
||||
|
||||
OOX::Spreadsheet::CXlsx oXlsx;
|
||||
|
||||
|
||||
@ -411,7 +411,11 @@ extern int g_nCurFormatVersion;
|
||||
MoveFrom = 36,
|
||||
MoveTo = 37,
|
||||
SpacingTwips = 38,
|
||||
PositionHps = 39
|
||||
PositionHps = 39,
|
||||
FontAsciiTheme = 40,
|
||||
FontHAnsiTheme = 41,
|
||||
FontAETheme = 42,
|
||||
FontCSTheme = 43
|
||||
};}
|
||||
namespace c_oSerProp_rowPrType{enum c_oSerProp_rowPrType
|
||||
{
|
||||
@ -639,9 +643,7 @@ extern int g_nCurFormatVersion;
|
||||
WrapThrough = 20,
|
||||
WrapTight = 21,
|
||||
WrapTopAndBottom = 22,
|
||||
Chart = 23,
|
||||
ChartImg = 24,
|
||||
Chart2 = 25,
|
||||
Chart = 25,
|
||||
CachedImage = 26,
|
||||
SizeRelH = 27,
|
||||
SizeRelV = 28,
|
||||
@ -651,7 +653,8 @@ extern int g_nCurFormatVersion;
|
||||
DistBEmu = 32,
|
||||
DistLEmu = 33,
|
||||
DistREmu = 34,
|
||||
DistTEmu = 35
|
||||
DistTEmu = 35,
|
||||
ChartEx = 36
|
||||
};}
|
||||
namespace c_oSerEffectExtent{enum c_oSerEffectExtent
|
||||
{
|
||||
@ -749,7 +752,8 @@ extern int g_nCurFormatVersion;
|
||||
{
|
||||
Value = 0,
|
||||
Color = 1,
|
||||
ColorTheme = 2
|
||||
ColorTheme = 2,
|
||||
Fill = 3
|
||||
};}
|
||||
namespace c_oSerPaddingType{enum c_oSerPaddingType
|
||||
{
|
||||
|
||||
@ -305,13 +305,15 @@ void BinaryCommonWriter::WriteShd(const ComplexTypes::Word::CShading& Shd)
|
||||
m_oStream.WriteBYTE(Shd.m_oVal.get().GetValue()); //Misalignment-footer.doc
|
||||
|
||||
}
|
||||
//Value
|
||||
if (false != Shd.m_oFill.IsInit())
|
||||
WriteColor(c_oSerShdType::Color, Shd.m_oFill.get());
|
||||
else if (false != Shd.m_oColor.IsInit())
|
||||
//Color
|
||||
if (false != Shd.m_oColor.IsInit())
|
||||
WriteColor(c_oSerShdType::Color, Shd.m_oColor.get());
|
||||
|
||||
|
||||
WriteThemeColor(c_oSerShdType::ColorTheme, Shd.m_oFill, Shd.m_oThemeFill, Shd.m_oThemeFillTint, Shd.m_oThemeFillShade);
|
||||
|
||||
//Fill
|
||||
if (false != Shd.m_oFill.IsInit())
|
||||
WriteColor(c_oSerShdType::Fill, Shd.m_oFill.get());
|
||||
}
|
||||
void BinaryCommonWriter::WritePaddings(const nullable<SimpleTypes::CTwipsMeasure>& left, const nullable<SimpleTypes::CTwipsMeasure>& top,
|
||||
const nullable<SimpleTypes::CTwipsMeasure>& right, const nullable<SimpleTypes::CTwipsMeasure>& bottom)
|
||||
@ -345,7 +347,7 @@ void BinaryCommonWriter::WritePaddings(const nullable<SimpleTypes::CTwipsMeasure
|
||||
m_oStream.WriteLONG(bottom->ToTwips());
|
||||
}
|
||||
}
|
||||
void BinaryCommonWriter::WriteFont(std::wstring& sFontName, BYTE bType, DocWrapper::FontProcessor& m_oFontProcessor)
|
||||
void BinaryCommonWriter::WriteFont(std::wstring sFontName, BYTE bType, DocWrapper::FontProcessor& m_oFontProcessor)
|
||||
{
|
||||
if(!sFontName.empty())
|
||||
{
|
||||
@ -520,92 +522,39 @@ void Binary_rPrWriter::Write_rPr(OOX::Logic::CRunProperty* rPr)
|
||||
//FontFamily
|
||||
if(false != rPr->m_oRFonts.IsInit())
|
||||
{
|
||||
std::wstring sFontAscii;
|
||||
std::wstring sFontHAnsi;
|
||||
std::wstring sFontAE;
|
||||
std::wstring sFontCS;
|
||||
const ComplexTypes::Word::CFonts& oFont = rPr->m_oRFonts.get();
|
||||
|
||||
if(NULL != m_oParamsWriter.m_pTheme && oFont.m_oAsciiTheme.IsInit())
|
||||
if(oFont.m_sAscii.IsInit())
|
||||
m_oBcw.WriteFont(oFont.m_sAscii.get(), c_oSerProp_rPrType::FontAscii, *m_oParamsWriter.m_pFontProcessor);
|
||||
if(oFont.m_oAsciiTheme.IsInit())
|
||||
{
|
||||
const SimpleTypes::ETheme& eTheme = oFont.m_oAsciiTheme.get().GetValue();
|
||||
switch(eTheme)
|
||||
{
|
||||
case SimpleTypes::themeMajorAscii:
|
||||
case SimpleTypes::themeMajorBidi:
|
||||
case SimpleTypes::themeMajorEastAsia:
|
||||
case SimpleTypes::themeMajorHAnsi: sFontAscii = m_oParamsWriter.m_pTheme->themeElements.fontScheme.majorFont.latin.typeface; break;
|
||||
case SimpleTypes::themeMinorAscii:
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi: sFontAscii = m_oParamsWriter.m_pTheme->themeElements.fontScheme.minorFont.latin.typeface; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::FontAsciiTheme);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)oFont.m_oAsciiTheme->GetValue());
|
||||
}
|
||||
else if(oFont.m_sAscii.IsInit())
|
||||
sFontAscii = oFont.m_sAscii.get();
|
||||
|
||||
if(NULL != m_oParamsWriter.m_pTheme && oFont.m_oHAnsiTheme.IsInit())
|
||||
if(oFont.m_sHAnsi.IsInit())
|
||||
m_oBcw.WriteFont(oFont.m_sHAnsi.get(), c_oSerProp_rPrType::FontHAnsi, *m_oParamsWriter.m_pFontProcessor);
|
||||
if(oFont.m_oHAnsiTheme.IsInit())
|
||||
{
|
||||
const SimpleTypes::ETheme& eTheme = oFont.m_oHAnsiTheme.get().GetValue();
|
||||
switch(eTheme)
|
||||
{
|
||||
case SimpleTypes::themeMajorAscii:
|
||||
case SimpleTypes::themeMajorBidi:
|
||||
case SimpleTypes::themeMajorEastAsia:
|
||||
case SimpleTypes::themeMajorHAnsi: sFontHAnsi = m_oParamsWriter.m_pTheme->themeElements.fontScheme.majorFont.latin.typeface; break;
|
||||
case SimpleTypes::themeMinorAscii:
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi: sFontHAnsi = m_oParamsWriter.m_pTheme->themeElements.fontScheme.minorFont.latin.typeface; break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::FontHAnsiTheme);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)oFont.m_oHAnsiTheme->GetValue());
|
||||
}
|
||||
else if(oFont.m_sHAnsi.IsInit())
|
||||
sFontHAnsi = oFont.m_sHAnsi.get();
|
||||
if(NULL != m_oParamsWriter.m_pTheme && oFont.m_oCsTheme.IsInit())
|
||||
if(oFont.m_sEastAsia.IsInit())
|
||||
m_oBcw.WriteFont(oFont.m_sEastAsia.get(), c_oSerProp_rPrType::FontAE, *m_oParamsWriter.m_pFontProcessor);
|
||||
if(oFont.m_oEastAsiaTheme.IsInit())
|
||||
{
|
||||
const SimpleTypes::ETheme& eTheme = oFont.m_oCsTheme.get().GetValue();
|
||||
switch(eTheme)
|
||||
{
|
||||
case SimpleTypes::themeMajorAscii:
|
||||
case SimpleTypes::themeMajorBidi:
|
||||
case SimpleTypes::themeMajorEastAsia:
|
||||
case SimpleTypes::themeMajorHAnsi: sFontCS = m_oParamsWriter.m_pTheme->themeElements.fontScheme.majorFont.latin.typeface; break;
|
||||
case SimpleTypes::themeMinorAscii:
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi: sFontCS = m_oParamsWriter.m_pTheme->themeElements.fontScheme.minorFont.latin.typeface; break;
|
||||
default: break;
|
||||
}
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::FontAETheme);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)oFont.m_oEastAsiaTheme->GetValue());
|
||||
}
|
||||
else if(oFont.m_sCs.IsInit())
|
||||
sFontCS = oFont.m_sCs.get();
|
||||
if(NULL != m_oParamsWriter.m_pTheme && oFont.m_oEastAsiaTheme.IsInit())
|
||||
if(oFont.m_sCs.IsInit())
|
||||
m_oBcw.WriteFont(oFont.m_sCs.get(), c_oSerProp_rPrType::FontCS, *m_oParamsWriter.m_pFontProcessor);
|
||||
if(oFont.m_oCsTheme.IsInit())
|
||||
{
|
||||
const SimpleTypes::ETheme& eTheme = oFont.m_oEastAsiaTheme.get().GetValue();
|
||||
switch(eTheme)
|
||||
{
|
||||
case SimpleTypes::themeMajorAscii:
|
||||
case SimpleTypes::themeMajorBidi:
|
||||
case SimpleTypes::themeMajorEastAsia:
|
||||
case SimpleTypes::themeMajorHAnsi: sFontAE = m_oParamsWriter.m_pTheme->themeElements.fontScheme.majorFont.latin.typeface; break;
|
||||
case SimpleTypes::themeMinorAscii:
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
case SimpleTypes::themeMinorHAnsi: sFontAE = m_oParamsWriter.m_pTheme->themeElements.fontScheme.minorFont.latin.typeface; break;
|
||||
default: break;
|
||||
}
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerProp_rPrType::FontCSTheme);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Byte);
|
||||
m_oBcw.m_oStream.WriteBYTE((BYTE)oFont.m_oCsTheme->GetValue());
|
||||
}
|
||||
else if(oFont.m_sEastAsia.IsInit())
|
||||
sFontAE = oFont.m_sEastAsia.get();
|
||||
m_oBcw.WriteFont(sFontAscii, c_oSerProp_rPrType::FontAscii, *m_oParamsWriter.m_pFontProcessor);
|
||||
m_oBcw.WriteFont(sFontHAnsi, c_oSerProp_rPrType::FontHAnsi, *m_oParamsWriter.m_pFontProcessor);
|
||||
m_oBcw.WriteFont(sFontAE, c_oSerProp_rPrType::FontAE, *m_oParamsWriter.m_pFontProcessor);
|
||||
m_oBcw.WriteFont(sFontCS, c_oSerProp_rPrType::FontCS, *m_oParamsWriter.m_pFontProcessor);
|
||||
|
||||
//Hint
|
||||
if(false != oFont.m_oHint.IsInit())
|
||||
{
|
||||
@ -6396,7 +6345,7 @@ void BinaryDocumentTableWriter::WriteDrawing(std::wstring* pXml, OOX::Logic::CDr
|
||||
{
|
||||
if (pGraphic->chartRec.IsInit() && pGraphic->chartRec->id_data.IsInit() )
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::Chart2);
|
||||
m_oBcw.m_oStream.WriteBYTE(pGraphic->chartRec->m_bChartEx ? c_oSerImageType2::ChartEx : c_oSerImageType2::Chart);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
|
||||
int nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
@ -6462,11 +6411,12 @@ void BinaryDocumentTableWriter::WriteDrawing(std::wstring* pXml, OOX::Logic::CDr
|
||||
WriteEffectExtent(pInline.m_oEffectExtent.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if (pInline.m_oGraphic.nvGraphicFramePr.IsInit())
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::GraphicFramePr);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteNvGraphicFramePr(pInline.m_oGraphic.nvGraphicFramePr);
|
||||
WriteNvGraphicFramePr(pInline.m_oGraphic.nvGraphicFramePr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(pInline.m_oDocPr.IsInit())
|
||||
@ -6645,11 +6595,12 @@ void BinaryDocumentTableWriter::WriteDrawing(std::wstring* pXml, OOX::Logic::CDr
|
||||
WriteWrapTopBottom(pAnchor.m_oWrapTopAndBottom.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if (pAnchor.m_oGraphic.nvGraphicFramePr.IsInit())
|
||||
{
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerImageType2::GraphicFramePr);
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
WriteNvGraphicFramePr(pAnchor.m_oGraphic.nvGraphicFramePr);
|
||||
WriteNvGraphicFramePr(pAnchor.m_oGraphic.nvGraphicFramePr.get());
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
if(pAnchor.m_oDocPr.IsInit())
|
||||
|
||||
@ -136,7 +136,7 @@ namespace BinDocxRW
|
||||
void WriteShd(const ComplexTypes::Word::CShading& Shd);
|
||||
void WritePaddings(const nullable<SimpleTypes::CTwipsMeasure>& left, const nullable<SimpleTypes::CTwipsMeasure>& top,
|
||||
const nullable<SimpleTypes::CTwipsMeasure>& right, const nullable<SimpleTypes::CTwipsMeasure>& bottom);
|
||||
void WriteFont(std::wstring& sFontName, BYTE bType, DocWrapper::FontProcessor& m_oFontProcessor);
|
||||
void WriteFont(std::wstring sFontName, BYTE bType, DocWrapper::FontProcessor& m_oFontProcessor);
|
||||
void WriteBytesArray(BYTE* pData, long nDataSize);
|
||||
template<typename T> void WriteTrackRevision(const T& elem);
|
||||
};
|
||||
@ -567,4 +567,4 @@ namespace BinDocxRW
|
||||
void ParagraphAddBreak(OOX::Logic::CParagraph* pParagraph);
|
||||
};
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -182,7 +182,6 @@ BinDocxRW::CDocxSerializer::CDocxSerializer()
|
||||
|
||||
m_bIsNoBase64Save = false;
|
||||
m_bIsNoBase64 = false;
|
||||
m_bSaveChartAsImg = false;
|
||||
}
|
||||
BinDocxRW::CDocxSerializer::~CDocxSerializer()
|
||||
{
|
||||
@ -407,7 +406,7 @@ bool BinDocxRW::CDocxSerializer::loadFromFile(const std::wstring& sSrcFileName,
|
||||
oDrawingConverter.SetMediaDstPath(sMediaPath);
|
||||
oDrawingConverter.SetEmbedDstPath(sEmbedPath);
|
||||
|
||||
m_pCurFileWriter = new Writers::FileWriter(sDstPath, m_sFontDir, false, nVersion, m_bSaveChartAsImg, &oDrawingConverter, sThemePath);
|
||||
m_pCurFileWriter = new Writers::FileWriter(sDstPath, m_sFontDir, false, nVersion, &oDrawingConverter, sThemePath);
|
||||
|
||||
//папка с картинками
|
||||
std::wstring strFileInDir = NSSystemPath::GetDirectoryName(sSrcFileName);
|
||||
@ -600,11 +599,6 @@ void BinDocxRW::CDocxSerializer::setIsNoBase64(bool bIsNoBase64)
|
||||
{
|
||||
m_bIsNoBase64 = bIsNoBase64;
|
||||
}
|
||||
void BinDocxRW::CDocxSerializer::setSaveChartAsImg(bool bSaveChartAsImg)
|
||||
{
|
||||
m_bSaveChartAsImg = bSaveChartAsImg;
|
||||
}
|
||||
|
||||
bool BinDocxRW::CDocxSerializer::unpackageFile(const std::wstring& sSrcFileName, const std::wstring& sDstPath)
|
||||
{
|
||||
BinDocxRW::CPackageFile file;
|
||||
|
||||
@ -54,7 +54,6 @@ namespace BinDocxRW
|
||||
std::wstring m_sEmbeddedFontsDir;
|
||||
bool m_bIsNoBase64Save;
|
||||
bool m_bIsNoBase64;
|
||||
bool m_bSaveChartAsImg;
|
||||
ParamsWriter* m_pParamsWriter;
|
||||
Writers::FileWriter* m_pCurFileWriter;
|
||||
|
||||
|
||||
@ -141,59 +141,61 @@ namespace BinXlsxRW{
|
||||
RELEASEOBJECT(pFontPicker);
|
||||
return result;
|
||||
}
|
||||
bool CXlsxSerializer::saveChart(NSBinPptxRW::CBinaryFileReader* pReader, long lLength, const std::wstring& sFilepath, const long& lChartNumber)
|
||||
bool CXlsxSerializer::saveChart(NSBinPptxRW::CBinaryFileReader* pReader, long lLength, NSCommon::smart_ptr<OOX::File> &file, const int& nChartNumber)
|
||||
{
|
||||
if (NULL == pReader) return false;
|
||||
if (NULL == m_pExternalDrawingConverter) return false;
|
||||
bool bRes = false;
|
||||
|
||||
if (false == file.IsInit()) return false;
|
||||
|
||||
m_pExternalDrawingConverter->SetDstContentRels();
|
||||
|
||||
//получаем sThemePath из bsFilename предполагая что папка theme находится на уровень выше bsFilename
|
||||
std::wstring sDrawingsPath;
|
||||
std::wstring sThemePath;
|
||||
std::wstring sEmbedingPath;
|
||||
std::wstring sContentTypePath;
|
||||
|
||||
size_t nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR);
|
||||
nIndex = (int)sFilepath.rfind(FILE_SEPARATOR_CHAR, nIndex - 1);
|
||||
|
||||
if(std::wstring::npos != nIndex)
|
||||
{
|
||||
std::wstring sFilepathLeft = sFilepath.substr(0, nIndex + 1);
|
||||
|
||||
sThemePath = sFilepathLeft + L"theme";
|
||||
sEmbedingPath = sFilepathLeft + L"embeddings";
|
||||
sDrawingsPath = sFilepathLeft + L"drawings";
|
||||
}
|
||||
if (pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX ||
|
||||
pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_DOCX_GLOSSARY) sContentTypePath = L"/word/charts/";
|
||||
else if (pReader->m_nDocumentType == XMLWRITER_DOC_TYPE_XLSX) sContentTypePath = L"/xl/charts/";
|
||||
else sContentTypePath = L"/ppt/charts/";
|
||||
|
||||
//todo theme path
|
||||
BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sThemePath, m_pExternalDrawingConverter->GetContentTypes());
|
||||
OOX::Spreadsheet::CChartSpace oChartSpace(NULL);
|
||||
std::wstring sChartPath = pReader->m_pRels->m_pManager->GetDstCharts();
|
||||
size_t nIndex = sChartPath.rfind(FILE_SEPARATOR_CHAR);
|
||||
|
||||
std::wstring sFilePathDocument = sChartPath;
|
||||
if (std::wstring::npos != nIndex)
|
||||
{
|
||||
sFilePathDocument = sFilePathDocument.substr(0, nIndex + 1);
|
||||
}
|
||||
std::wstring sDrawingsPath = sFilePathDocument + L"drawings";
|
||||
std::wstring sThemePath = sFilePathDocument + L"theme";
|
||||
std::wstring sEmbedingPath = sFilePathDocument + L"embeddings";
|
||||
|
||||
std::wstring sFileName;
|
||||
|
||||
BinXlsxRW::SaveParams oSaveParams(sDrawingsPath, sEmbedingPath, sThemePath, m_pExternalDrawingConverter->GetContentTypes());
|
||||
BinXlsxRW::BinaryChartReader oBinaryChartReader(*pReader, oSaveParams, m_pExternalDrawingConverter);
|
||||
|
||||
try
|
||||
bool bResult = false;
|
||||
|
||||
int nDocumentTypeOwner = pReader->m_pRels->m_pManager->m_nDocumentType;
|
||||
pReader->m_pRels->m_pManager->m_nDocumentType = XMLWRITER_DOC_TYPE_XLSX;
|
||||
|
||||
NSCommon::smart_ptr<OOX::Spreadsheet::CChartFile> chart_file = file.smart_dynamic_cast<OOX::Spreadsheet::CChartFile>();
|
||||
if (chart_file.IsInit())
|
||||
{
|
||||
oBinaryChartReader.ReadCT_ChartSpace(lLength, &oChartSpace);
|
||||
}
|
||||
catch(...)
|
||||
{
|
||||
//todooo
|
||||
}
|
||||
sFileName = L"chart" + std::to_wstring(nChartNumber) + L".xml";
|
||||
|
||||
bResult = (0 == oBinaryChartReader.ReadCT_ChartFile(lLength, chart_file.GetPointer()));
|
||||
|
||||
if(oChartSpace.isValid())
|
||||
{
|
||||
//save xlsx embedded for chart
|
||||
if(pReader->m_nDocumentType != XMLWRITER_DOC_TYPE_XLSX && !sEmbedingPath.empty())
|
||||
bool bXlsxPresent = (chart_file->m_oChartSpace.m_externalData) && (chart_file->m_oChartSpace.m_externalData->m_id);
|
||||
|
||||
if (bResult && pReader->m_nDocumentType != XMLWRITER_DOC_TYPE_XLSX && !sEmbedingPath.empty() && !bXlsxPresent)
|
||||
{
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(lChartNumber) + L".xlsx";
|
||||
std::wstring sXlsxFilename = L"Microsoft_Excel_Worksheet" + std::to_wstring(pReader->m_nCountEmbedded) + L".xlsx";
|
||||
std::wstring sXlsxPath = sEmbedingPath + FILE_SEPARATOR_STR + sXlsxFilename;
|
||||
|
||||
if (writeChartXlsx(sXlsxPath, oChartSpace))
|
||||
|
||||
pReader->m_nCountEmbedded++;
|
||||
|
||||
if (writeChartXlsx(sXlsxPath, file))
|
||||
{
|
||||
pReader->m_pRels->m_pManager->m_pContentTypes->AddDefault(L"xlsx");
|
||||
|
||||
@ -202,31 +204,48 @@ namespace BinXlsxRW{
|
||||
std::wstring bstrChartsWorksheetRelType = OOX::FileTypes::MicrosoftOfficeExcelWorksheet.RelationType();
|
||||
m_pExternalDrawingConverter->WriteRels(bstrChartsWorksheetRelType, sChartsWorksheetRelsName, std::wstring(), &rId);
|
||||
|
||||
oChartSpace.m_oChartSpace.m_externalData = new OOX::Spreadsheet::CT_ExternalData();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id = new std::wstring();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(L"rId");
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_id->append(std::to_wstring(rId));
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate = new OOX::Spreadsheet::CT_Boolean();
|
||||
oChartSpace.m_oChartSpace.m_externalData->m_autoUpdate->m_val = new bool(false);
|
||||
chart_file->m_oChartSpace.m_externalData = new OOX::Spreadsheet::CT_ExternalData();
|
||||
chart_file->m_oChartSpace.m_externalData->m_id = new std::wstring();
|
||||
chart_file->m_oChartSpace.m_externalData->m_id->append(L"rId");
|
||||
chart_file->m_oChartSpace.m_externalData->m_id->append(std::to_wstring(rId));
|
||||
chart_file->m_oChartSpace.m_externalData->m_autoUpdate = new OOX::Spreadsheet::CT_Boolean();
|
||||
chart_file->m_oChartSpace.m_externalData->m_autoUpdate->m_val = new bool(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
NSCommon::smart_ptr<OOX::Spreadsheet::CChartExFile> chartEx_file = file.smart_dynamic_cast<OOX::Spreadsheet::CChartExFile>();
|
||||
if (chartEx_file.IsInit())
|
||||
{
|
||||
sFileName = L"chartEx" + std::to_wstring(nChartNumber) + L".xml";
|
||||
|
||||
std::wstring strFilepath = sFilepath;
|
||||
std::wstring strDir = NSSystemPath::GetDirectoryName(strFilepath);
|
||||
std::wstring strFilename = NSSystemPath::GetFileName(strFilepath);
|
||||
|
||||
OOX::CPath pathRelsDir = strDir + FILE_SEPARATOR_STR + _T("_rels");
|
||||
|
||||
bResult = (0 == oBinaryChartReader.ReadCT_ChartExFile(lLength, chartEx_file.GetPointer()));
|
||||
|
||||
bool bXlsxPresent = (chartEx_file->m_oChartSpace.m_chartData.m_externalData.IsInit()) &&
|
||||
(chartEx_file->m_oChartSpace.m_chartData.m_externalData->m_id.IsInit());
|
||||
}
|
||||
}
|
||||
pReader->m_pRels->m_pManager->m_nDocumentType = nDocumentTypeOwner;
|
||||
|
||||
if(bResult)
|
||||
{
|
||||
if (pReader->m_nDocumentType != XMLWRITER_DOC_TYPE_DOCX && pReader->m_nDocumentType != XMLWRITER_DOC_TYPE_DOCX_GLOSSARY)
|
||||
{
|
||||
file->m_sOutputFilename = L"../";
|
||||
}
|
||||
file->m_sOutputFilename += L"charts/" + sFileName;
|
||||
|
||||
std::wstring sFilePath = sChartPath + FILE_SEPARATOR_STR + sFileName;
|
||||
file->write(sFilePath, sContentTypePath, *pReader->m_pRels->m_pManager->m_pContentTypes);
|
||||
|
||||
OOX::CPath pathRelsDir = sChartPath + FILE_SEPARATOR_STR + _T("_rels");
|
||||
OOX::CSystemUtility::CreateDirectories(pathRelsDir.GetPath());
|
||||
|
||||
oChartSpace.write(sFilepath, sContentTypePath, *pReader->m_pRels->m_pManager->m_pContentTypes);
|
||||
|
||||
OOX::CPath pathRelsFile = pathRelsDir + FILE_SEPARATOR_STR + strFilename + _T(".rels");
|
||||
OOX::CPath pathRelsFile = pathRelsDir + FILE_SEPARATOR_STR + NSSystemPath::GetFileName(sFilePath) + _T(".rels");
|
||||
m_pExternalDrawingConverter->SaveDstContentRels(pathRelsFile.GetPath());
|
||||
|
||||
bRes = true;
|
||||
}
|
||||
return bRes;
|
||||
return bResult;
|
||||
}
|
||||
void CXlsxSerializer::setFontDir(const std::wstring& sFontDir)
|
||||
{
|
||||
@ -245,11 +264,14 @@ namespace BinXlsxRW{
|
||||
m_bIsNoBase64 = bIsNoBase64;
|
||||
}
|
||||
|
||||
bool CXlsxSerializer::writeChartXlsx(const std::wstring& sDstFile, const OOX::Spreadsheet::CChartSpace& oChart)
|
||||
bool CXlsxSerializer::writeChartXlsx(const std::wstring& sDstFile, NSCommon::smart_ptr<OOX::File> &file)
|
||||
{
|
||||
NSCommon::smart_ptr<OOX::Spreadsheet::CChartFile> oChart = file.smart_dynamic_cast<OOX::Spreadsheet::CChartFile>();
|
||||
|
||||
if (oChart.IsInit() == false) return false;
|
||||
//анализируем chart
|
||||
BinXlsxRW::ChartWriter helper;
|
||||
helper.parseChart(oChart.m_oChartSpace.m_chart);
|
||||
helper.parseChart(oChart->m_oChartSpace.m_chart);
|
||||
//создаем temp
|
||||
std::wstring sTempDir = NSSystemPath::GetDirectoryName(sDstFile) + FILE_SEPARATOR_STR + NSSystemPath::GetFileName(sDstFile) + L"_TEMP";
|
||||
NSDirectory::CreateDirectory(sTempDir);
|
||||
|
||||
@ -29,18 +29,15 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#ifndef XLSX_SERIALIZER
|
||||
#define XLSX_SERIALIZER
|
||||
#pragma once
|
||||
|
||||
#include <string>
|
||||
#include "../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
#include "../../Common/DocxFormat/Source/Base/SmartPtr.h"
|
||||
|
||||
namespace OOX
|
||||
{
|
||||
namespace Spreadsheet
|
||||
{
|
||||
class CChartSpace;
|
||||
}
|
||||
class File;
|
||||
}
|
||||
namespace NSBinPptxRW{
|
||||
class CDrawingConverter;
|
||||
@ -51,7 +48,8 @@ namespace NSBinPptxRW{
|
||||
}
|
||||
namespace BinXlsxRW {
|
||||
|
||||
class CXlsxSerializer{
|
||||
class CXlsxSerializer
|
||||
{
|
||||
private:
|
||||
std::wstring m_sFontDir;
|
||||
std::wstring m_sEmbeddedFontsDir;
|
||||
@ -66,15 +64,14 @@ namespace BinXlsxRW {
|
||||
_UINT32 loadFromFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions, const std::wstring& sMediaDir, const std::wstring& sEmbedPath);
|
||||
_UINT32 saveToFile (const std::wstring& sSrcFileName, const std::wstring& sDstPath, const std::wstring& sXMLOptions);
|
||||
|
||||
bool saveChart (NSBinPptxRW::CBinaryFileReader* pReader, long lLength, const std::wstring& sFilename, const long& lChartNumber);
|
||||
bool saveChart (NSBinPptxRW::CBinaryFileReader* pReader, long lLength, NSCommon::smart_ptr<OOX::File> &file, const int& nChartNumber);
|
||||
|
||||
void setFontDir (const std::wstring& sFontDir);
|
||||
void setEmbeddedFontsDir(const std::wstring& sEmbeddedFontsDir);
|
||||
void setDrawingConverter(NSBinPptxRW::CDrawingConverter* pDrawingConverter);
|
||||
void setIsNoBase64 (bool bIsNoBase64);
|
||||
|
||||
bool writeChartXlsx (const std::wstring& sDstFile ,const OOX::Spreadsheet::CChartSpace& oChart);
|
||||
bool writeChartXlsx (const std::wstring& sDstFile, NSCommon::smart_ptr<OOX::File> &file);
|
||||
bool hasPivot (const std::wstring& sSrcPath);
|
||||
};
|
||||
}
|
||||
#endif // #ifndef XLSX_SERIALIZER
|
||||
|
||||
@ -36,7 +36,7 @@
|
||||
#include "../utils.h"
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/Diagram/DiagramDrawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/DocxFormat/ChartDrawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/ChartDrawing.h"
|
||||
#include "../../../Common/DocxFormat/Source/XlsxFormat/Chart/Chart.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Slide.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTreeElem.h"
|
||||
@ -105,7 +105,7 @@ void OoxConverter::convert(PPTX::Logic::GraphicFrame *oox_graphic_frame)
|
||||
{
|
||||
if (!oox_graphic_frame)return;
|
||||
|
||||
convert(&oox_graphic_frame->nvGraphicFramePr);
|
||||
convert(oox_graphic_frame->nvGraphicFramePr.GetPointer());
|
||||
convert(oox_graphic_frame->xfrm.GetPointer());
|
||||
|
||||
if ( oox_graphic_frame->chartRec.is_init())
|
||||
@ -440,8 +440,8 @@ void OoxConverter::convert(PPTX::Logic::ChartRec *oox_chart)
|
||||
smart_ptr<OOX::File> oFile = find_file_by_id (oox_chart->id_data->get());
|
||||
if (oFile.IsInit())
|
||||
{
|
||||
OOX::Spreadsheet::CChartSpace* pChart = dynamic_cast<OOX::Spreadsheet::CChartSpace*>(oFile.GetPointer());
|
||||
OOX::Spreadsheet::CChartSpaceEx* pChartEx = dynamic_cast<OOX::Spreadsheet::CChartSpaceEx*>(oFile.GetPointer());
|
||||
OOX::Spreadsheet::CChartFile* pChart = dynamic_cast<OOX::Spreadsheet::CChartFile*>(oFile.GetPointer());
|
||||
OOX::Spreadsheet::CChartExFile* pChartEx = dynamic_cast<OOX::Spreadsheet::CChartExFile*>(oFile.GetPointer());
|
||||
|
||||
if (pChart || pChartEx)
|
||||
{
|
||||
|
||||
@ -916,15 +916,26 @@ void PptxConverter::convert(PPTX::Logic::CTn *oox_time_common)
|
||||
//nullable<CondLst> endCondLst;
|
||||
//nullable<Cond> endSync;
|
||||
//nullable<Iterate> iterate;
|
||||
if (oox_time_common->childTnLst.IsInit())
|
||||
{
|
||||
for (size_t i = 0; i < oox_time_common->childTnLst->list.size(); i++)
|
||||
{
|
||||
if (oox_time_common->childTnLst->list[i].is_init() == false) continue;
|
||||
|
||||
convert(&oox_time_common->childTnLst->list[i]);
|
||||
}
|
||||
}
|
||||
// TODO
|
||||
// for (auto& child : oox_time_common->childTnLst)
|
||||
// {
|
||||
// for (size_t i = 0; i <child.m_node. .list.size(); i++)
|
||||
// {
|
||||
// if (tnLst.list[i].is_init() == false) continue;
|
||||
|
||||
// convert(&oox_time_common->childTnLst->list[i]);
|
||||
// }
|
||||
// }
|
||||
// if (oox_time_common->childTnLst.IsInit())
|
||||
// {
|
||||
// for (size_t i = 0; i < oox_time_common->childTnLst->list.size(); i++)
|
||||
// {
|
||||
// if (oox_time_common->childTnLst->list[i].is_init() == false) continue;
|
||||
|
||||
// convert(&oox_time_common->childTnLst->list[i]);
|
||||
// }
|
||||
// }
|
||||
//if (oox_time_common->subTnLst.IsInit())
|
||||
//{
|
||||
// for (size_t i = 0; i < oox_time_common->subTnLst->list.size(); i++)
|
||||
|
||||
265
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.cpp
Normal file
265
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.cpp
Normal file
@ -0,0 +1,265 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "RecordType.h"
|
||||
|
||||
using namespace PPT_FORMAT;
|
||||
|
||||
//#define RECORDNAME_BY_TYPE(RECORD_TYPE, RECORD_NAME) \
|
||||
// case RECORD_TYPE: { name = RECORD_NAME; break;} \
|
||||
|
||||
//std::string GetRecordName(RecordType dwType)
|
||||
//{
|
||||
// std::string name;
|
||||
// switch (dwType) {
|
||||
// RECORDNAME_BY_TYPE ( RT_Document, "DocumentContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DocumentAtom, "DocumentAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_EndDocumentAtom, "EndDocumentAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Slide, "SlideContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideAtom, "SlideAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Notes, "Notes" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NotesAtom, "NotesAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Environment, "Environment" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlidePersistAtom, "SlidePersistAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_MainMaster, "MainMaster" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideShowSlideInfoAtom, "SlideShowSlideInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideViewInfo, "SlideViewInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_GuideAtom, "GuideAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ViewInfoAtom, "ViewInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideViewInfoAtom, "SlideViewInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_VbaInfo, "VbaInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_VbaInfoAtom, "VbaInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideShowDocInfoAtom, "SlideShowDocInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Summary, "Summary" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DocRoutingSlipAtom, "DocRoutingSlipAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineViewInfo, "OutlineViewInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SorterViewInfo, "SorterViewInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalObjectList, "ExternalObjectList" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalObjectListAtom, "ExternalObjectListAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DrawingGroup, "DrawingGroup" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Drawing, "Drawing" )
|
||||
// RECORDNAME_BY_TYPE ( RT_GridSpacing10Atom, "GridSpacing10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripTheme12Atom, "RoundTripTheme12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripColorMapping12Atom, "RoundTripColorMapping12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NamedShows, "NamedShows" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NamedShow, "NamedShow" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NamedShowSlidesAtom, "NamedShowSlidesAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NotesTextViewInfo9, "NotesTextViewInfo9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9, "NormalViewSetInfo9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9Atom, "NormalViewSetInfo9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripOriginalMainMasterId12Atom, "RoundTripOriginalMainMasterId12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripCompositeMasterId12Atom, "RoundTripCompositeMasterId12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterInfo12Atom, "RoundTripContentMasterInfo12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripShapeId12Atom, "RoundTripShapeId12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripHFPlaceholder12Atom, "RoundTripHFPlaceholder12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterId12Atom, "RoundTripContentMasterId12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripOArtTextStyles12Atom, "RoundTripOArtTextStyles12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripHeaderFooterDefaults12Atom, "RoundTripHeaderFooterDefaults12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripDocFlags12Atom, "RoundTripDocFlags12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripShapeCheckSumForCL12Atom, "RoundTripShapeCheckSumForCL12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripNotesMasterTextStyles12Atom, "RoundTripNotesMasterTextStyles12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripCustomTableStyles12Atom, "RoundTripCustomTableStyles12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_List, "List" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FontCollection, "FontCollection" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FontCollection10, "FontCollection10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BookmarkCollection, "BookmarkCollection" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SoundCollection, "SoundCollection" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SoundCollectionAtom, "SoundCollectionAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Sound, "Sound" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SoundDataBlob, "SoundDataBlob" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BookmarkSeedAtom, "BookmarkSeedAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ColorSchemeAtom, "ColorSchemeAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BlipCollection9, "BlipCollection9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BlipEntity9Atom, "BlipEntity9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalObjectRefAtom, "ExternalObjectRefAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_PlaceholderAtom, "PlaceholderAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ShapeAtom, "ShapeAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ShapeFlags10Atom, "ShapeFlags10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripNewPlaceholderId12Atom, "RoundTripNewPlaceholderId12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineTextRefAtom, "OutlineTextRefAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextHeaderAtom, "TextHeaderAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextCharsAtom, "TextCharsAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_StyleTextPropAtom, "StyleTextPropAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_MasterTextPropAtom, "MasterTextPropAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextMasterStyleAtom, "TextMasterStyleAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextCharFormatExceptionAtom, "TextCharFormatExceptionAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextParagraphFormatExceptionAtom, "TextParagraphFormatExceptionAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextRulerAtom, "TextRulerAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextBookmarkAtom, "TextBookmarkAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextBytesAtom, "TextBytesAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextSpecialInfoDefaultAtom, "TextSpecialInfoDefaultAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextSpecialInfoAtom, "TextSpecialInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DefaultRulerAtom, "DefaultRulerAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_StyleTextProp9Atom, "StyleTextProp9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextMasterStyle9Atom, "TextMasterStyle9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineTextProps9, "OutlineTextProps9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineTextPropsHeader9Atom, "OutlineTextPropsHeader9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextDefaults9Atom, "TextDefaults9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_StyleTextProp10Atom, "StyleTextProp10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextMasterStyle10Atom, "TextMasterStyle10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineTextProps10, "OutlineTextProps10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextDefaults10Atom, "TextDefaults10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_OutlineTextProps11, "OutlineTextProps11" )
|
||||
// RECORDNAME_BY_TYPE ( RT_StyleTextProp11Atom, "StyleTextProp11Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FontEntityAtom, "FontEntityAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FontEmbedDataBlob, "FontEmbedDataBlob" )
|
||||
// RECORDNAME_BY_TYPE ( RT_CString, "CString" )
|
||||
// RECORDNAME_BY_TYPE ( RT_MetaFile, "MetaFile" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleObjectAtom, "ExternalOleObjectAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Kinsoku, "Kinsoku" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Handout, "Handout" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleEmbed, "ExternalOleEmbed" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleEmbedAtom, "ExternalOleEmbedAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleLink, "ExternalOleLink" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BookmarkEntityAtom, "BookmarkEntityAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleLinkAtom, "ExternalOleLinkAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_KinsokuAtom, "KinsokuAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkAtom, "ExternalHyperlinkAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalHyperlink, "ExternalHyperlink" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideNumberMetaCharAtom, "SlideNumberMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HeadersFooters, "HeadersFooters" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HeadersFootersAtom, "HeadersFootersAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TextInteractiveInfoAtom, "TextInteractiveInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalHyperlink9, "ExternalHyperlink9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RecolorInfoAtom, "RecolorInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleControl, "ExternalOleControl" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideListWithText, "SlideListWithText" )
|
||||
// RECORDNAME_BY_TYPE ( RT_AnimationInfoAtom, "AnimationInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_InteractiveInfo, "InteractiveInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_InteractiveInfoAtom, "InteractiveInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_UserEditAtom, "UserEditAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_CurrentUserAtom, "CurrentUserAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DateTimeMetaCharAtom, "DateTimeMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_GenericDateMetaCharAtom, "GenericDateMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HeaderMetaCharAtom, "HeaderMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FooterMetaCharAtom, "FooterMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleControlAtom, "ExternalOleControlAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalMediaAtom, "ExternalMediaAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalVideo, "ExternalVideo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalAviMovie, "ExternalAviMovie" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalMciMovie, "ExternalMciMovie" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalMidiAudio, "ExternalMidiAudio" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalCdAudio, "ExternalCdAudio" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbedded, "ExternalWavAudioEmbedded" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalWavAudioLink, "ExternalWavAudioLink" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalOleObjectStg, "ExternalOleObjectStg" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalCdAudioAtom, "ExternalCdAudioAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbeddedAtom, "ExternalWavAudioEmbeddedAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_AnimationInfo, "AnimationInfo" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RtfDateTimeMetaCharAtom, "RtfDateTimeMetaCharAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkFlagsAtom, "ExternalHyperlinkFlagsAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ProgTags, "ProgTags" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ProgStringTag, "ProgStringTag" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ProgBinaryTag, "ProgBinaryTag" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BinaryTagDataBlob, "BinaryTagDataBlob" )
|
||||
// RECORDNAME_BY_TYPE ( RT_PrintOptionsAtom, "PrintOptionsAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_PersistDirectoryAtom, "PersistDirectoryAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_PresentationAdvisorFlags9Atom, "PresentationAdvisorFlags9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HtmlDocInfo9Atom, "HtmlDocInfo9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HtmlPublishInfoAtom, "HtmlPublishInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HtmlPublishInfo9, "HtmlPublishInfo9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9, "BroadcastDocInfo9" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9Atom, "BroadcastDocInfo9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_EnvelopeFlags9Atom, "EnvelopeFlags9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_EnvelopeData9Atom, "EnvelopeData9Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_VisualShapeAtom, "VisualShapeAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_HashCodeAtom, "HashCodeAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_VisualPageAtom, "VisualPageAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BuildList, "BuildList" )
|
||||
// RECORDNAME_BY_TYPE ( RT_BuildAtom, "BuildAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ChartBuild, "ChartBuild" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ChartBuildAtom, "ChartBuildAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DiagramBuild, "DiagramBuild" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DiagramBuildAtom, "DiagramBuildAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ParaBuild, "ParaBuild" )
|
||||
// RECORDNAME_BY_TYPE ( RT_ParaBuildAtom, "ParaBuildAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_LevelInfoAtom, "LevelInfoAtom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripAnimationAtom12Atom, "RoundTripAnimationAtom12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripAnimationHashAtom12Atom, "RoundTripAnimationHashAtom12Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Comment10, "Comment10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Comment10Atom, "Comment10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_CommentIndex10, "CommentIndex10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_CommentIndex10Atom, "CommentIndex10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_LinkedShape10Atom, "LinkedShape10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_LinkedSlide10Atom, "LinkedSlide10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideFlags10Atom, "SlideFlags10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideTime10Atom, "SlideTime10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DiffTree10, "DiffTree10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Diff10, "Diff10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_Diff10Atom, "Diff10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideListTableSize10Atom, "SlideListTableSize10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideListEntry10Atom, "SlideListEntry10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SlideListTable10, "SlideListTable10" )
|
||||
// RECORDNAME_BY_TYPE ( RT_CryptSession10Container, "CryptSession10Container" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FontEmbedFlags10Atom, "FontEmbedFlags10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_FilterPrivacyFlags10Atom, "FilterPrivacyFlags10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_DocToolbarStates10Atom, "DocToolbarStates10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_PhotoAlbumInfo10Atom, "PhotoAlbumInfo10Atom" )
|
||||
// RECORDNAME_BY_TYPE ( RT_SmartTagStore11Container, "SmartTagStore11Container" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfo12, "RoundTripSlideSyncInfo12" )
|
||||
// RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfoAtom12, "RoundTripSlideSyncInfoAtom12" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeConditionContainer, "TimeConditionContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeNode, "TimeNode" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeCondition, "TimeCondition" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeModifier, "TimeModifier" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeBehaviorContainer, "TimeBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeAnimateBehaviorContainer, "TimeAnimateBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeColorBehaviorContainer, "TimeColorBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeEffectBehaviorContainer, "TimeEffectBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeMotionBehaviorContainer, "TimeMotionBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeRotationBehaviorContainer, "TimeRotationBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeScaleBehaviorContainer, "TimeScaleBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeSetBehaviorContainer, "TimeSetBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeCommandBehaviorContainer, "TimeCommandBehaviorContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeBehavior, "TimeBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeAnimateBehavior, "TimeAnimateBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeColorBehavior, "TimeColorBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeEffectBehavior, "TimeEffectBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeMotionBehavior, "TimeMotionBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeRotationBehavior, "TimeRotationBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeScaleBehavior, "TimeScaleBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeSetBehavior, "TimeSetBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeCommandBehavior, "TimeCommandBehavior" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeClientVisualElement, "TimeClientVisualElement" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimePropertyList, "TimePropertyList" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeVariantList, "TimeVariantList" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeAnimationValueList, "TimeAnimationValueList" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeIterateData, "TimeIterateData" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeSequenceData, "TimeSequenceData" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeVariant, "TimeVariant" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeAnimationValue, "TimeAnimationValue" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeExtTimeNodeContainer, "TimeExtTimeNodeContainer" )
|
||||
// RECORDNAME_BY_TYPE ( RT_TimeSubEffectContainer, "TimeSubEffectContainer" )
|
||||
// default:
|
||||
// name = "UnknownRecord!";
|
||||
// }
|
||||
// return name;
|
||||
//}
|
||||
318
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.h
Normal file
318
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.h
Normal file
@ -0,0 +1,318 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 <string>
|
||||
|
||||
|
||||
namespace PPT_FORMAT {
|
||||
|
||||
enum RecordType : unsigned short
|
||||
{
|
||||
RT_NONE,
|
||||
RT_Document = 0x03E8,
|
||||
RT_DocumentAtom,
|
||||
RT_EndDocumentAtom,
|
||||
RT_Slide = 0x03EE,
|
||||
RT_SlideAtom,
|
||||
RT_Notes,
|
||||
RT_NotesAtom,
|
||||
RT_Environment,
|
||||
RT_SlidePersistAtom,
|
||||
RT_MainMaster = 0x03F8,
|
||||
RT_SlideShowSlideInfoAtom,
|
||||
RT_SlideViewInfo,
|
||||
RT_GuideAtom,
|
||||
RT_ViewInfoAtom = 0x03FD,
|
||||
RT_SlideViewInfoAtom,
|
||||
RT_VbaInfo,
|
||||
RT_VbaInfoAtom,
|
||||
RT_SlideShowDocInfoAtom,
|
||||
RT_Summary,
|
||||
RT_DocRoutingSlipAtom = 0x0406,
|
||||
RT_OutlineViewInfo,
|
||||
RT_SorterViewInfo,
|
||||
RT_ExternalObjectList,
|
||||
RT_ExternalObjectListAtom,
|
||||
RT_DrawingGroup,
|
||||
RT_Drawing,
|
||||
RT_GridSpacing10Atom,
|
||||
RT_RoundTripTheme12Atom,
|
||||
RT_RoundTripColorMapping12Atom,
|
||||
RT_NamedShows,
|
||||
RT_NamedShow,
|
||||
RT_NamedShowSlidesAtom,
|
||||
RT_NotesTextViewInfo9,
|
||||
RT_NormalViewSetInfo9,
|
||||
RT_NormalViewSetInfo9Atom,
|
||||
RT_RoundTripOriginalMainMasterId12Atom = 0x041C,
|
||||
RT_RoundTripCompositeMasterId12Atom,
|
||||
RT_RoundTripContentMasterInfo12Atom,
|
||||
RT_RoundTripShapeId12Atom,
|
||||
RT_RoundTripHFPlaceholder12Atom,
|
||||
RT_RoundTripContentMasterId12Atom = 0x0422,
|
||||
RT_RoundTripOArtTextStyles12Atom,
|
||||
RT_RoundTripHeaderFooterDefaults12Atom,
|
||||
RT_RoundTripDocFlags12Atom,
|
||||
RT_RoundTripShapeCheckSumForCL12Atom,
|
||||
RT_RoundTripNotesMasterTextStyles12Atom,
|
||||
RT_RoundTripCustomTableStyles12Atom,
|
||||
RT_List = 0x07D0,
|
||||
RT_FontCollection = 0x07D5,
|
||||
RT_FontCollection10,
|
||||
RT_BookmarkCollection = 0x07E3,
|
||||
RT_SoundCollection,
|
||||
RT_SoundCollectionAtom,
|
||||
RT_Sound,
|
||||
RT_SoundDataBlob,
|
||||
RT_BookmarkSeedAtom = 0x07E9,
|
||||
RT_ColorSchemeAtom = 0x07F0,
|
||||
RT_BlipCollection9 = 0x07F8,
|
||||
RT_BlipEntity9Atom,
|
||||
RT_ExternalObjectRefAtom = 0x0BC1,
|
||||
RT_PlaceholderAtom = 0x0BC3,
|
||||
RT_ShapeAtom = 0x0BDB,
|
||||
RT_ShapeFlags10Atom,
|
||||
RT_RoundTripNewPlaceholderId12Atom,
|
||||
RT_OutlineTextRefAtom = 0x0F9E,
|
||||
RT_TextHeaderAtom,
|
||||
RT_TextCharsAtom,
|
||||
RT_StyleTextPropAtom,
|
||||
RT_MasterTextPropAtom,
|
||||
RT_TextMasterStyleAtom,
|
||||
RT_TextCharFormatExceptionAtom,
|
||||
RT_TextParagraphFormatExceptionAtom,
|
||||
RT_TextRulerAtom,
|
||||
RT_TextBookmarkAtom,
|
||||
RT_TextBytesAtom,
|
||||
RT_TextSpecialInfoDefaultAtom,
|
||||
RT_TextSpecialInfoAtom,
|
||||
RT_DefaultRulerAtom,
|
||||
RT_StyleTextProp9Atom,
|
||||
RT_TextMasterStyle9Atom,
|
||||
RT_OutlineTextProps9,
|
||||
RT_OutlineTextPropsHeader9Atom,
|
||||
RT_TextDefaults9Atom,
|
||||
RT_StyleTextProp10Atom,
|
||||
RT_TextMasterStyle10Atom,
|
||||
RT_OutlineTextProps10,
|
||||
RT_TextDefaults10Atom,
|
||||
RT_OutlineTextProps11,
|
||||
RT_StyleTextProp11Atom,
|
||||
RT_FontEntityAtom,
|
||||
RT_FontEmbedDataBlob,
|
||||
RT_CString = 0x0FBA,
|
||||
RT_MetaFile = 0x0FC1,
|
||||
RT_ExternalOleObjectAtom = 0x0FC3,
|
||||
RT_Kinsoku = 0x0FC8,
|
||||
RT_Handout,
|
||||
RT_ExternalOleEmbed = 0x0FCC,
|
||||
RT_ExternalOleEmbedAtom,
|
||||
RT_ExternalOleLink,
|
||||
RT_BookmarkEntityAtom = 0x0FD0,
|
||||
RT_ExternalOleLinkAtom,
|
||||
RT_KinsokuAtom,
|
||||
RT_ExternalHyperlinkAtom,
|
||||
RT_ExternalHyperlink = 0x0FD7,
|
||||
RT_SlideNumberMetaCharAtom,
|
||||
RT_HeadersFooters,
|
||||
RT_HeadersFootersAtom,
|
||||
RT_TextInteractiveInfoAtom = 0x0FDF,
|
||||
RT_ExternalHyperlink9 = 0x0FE4,
|
||||
RT_RecolorInfoAtom = 0x0FE7,
|
||||
RT_ExternalOleControl = 0x0FEE,
|
||||
RT_SlideListWithText = 0x0FF0,
|
||||
RT_AnimationInfoAtom,
|
||||
RT_InteractiveInfo,
|
||||
RT_InteractiveInfoAtom,
|
||||
RT_UserEditAtom = 0x0FF5,
|
||||
RT_CurrentUserAtom,
|
||||
RT_DateTimeMetaCharAtom,
|
||||
RT_GenericDateMetaCharAtom,
|
||||
RT_HeaderMetaCharAtom,
|
||||
RT_FooterMetaCharAtom,
|
||||
RT_ExternalOleControlAtom,
|
||||
RT_ExternalMediaAtom = 0x1004,
|
||||
RT_ExternalVideo,
|
||||
RT_ExternalAviMovie,
|
||||
RT_ExternalMciMovie,
|
||||
RT_ExternalMidiAudio = 0x100D,
|
||||
RT_ExternalCdAudio,
|
||||
RT_ExternalWavAudioEmbedded,
|
||||
RT_ExternalWavAudioLink,
|
||||
RT_ExternalOleObjectStg,
|
||||
RT_ExternalCdAudioAtom,
|
||||
RT_ExternalWavAudioEmbeddedAtom,
|
||||
RT_AnimationInfo,
|
||||
RT_RtfDateTimeMetaCharAtom,
|
||||
RT_ExternalHyperlinkFlagsAtom = 0x1018,
|
||||
RT_ProgTags = 0x1388,
|
||||
RT_ProgStringTag,
|
||||
RT_ProgBinaryTag,
|
||||
RT_BinaryTagDataBlob,
|
||||
RT_PrintOptionsAtom = 0x1770,
|
||||
RT_PersistDirectoryAtom = 0x1772,
|
||||
RT_PresentationAdvisorFlags9Atom = 0x177A,
|
||||
RT_HtmlDocInfo9Atom,
|
||||
RT_HtmlPublishInfoAtom,
|
||||
RT_HtmlPublishInfo9,
|
||||
RT_BroadcastDocInfo9,
|
||||
RT_BroadcastDocInfo9Atom,
|
||||
RT_EnvelopeFlags9Atom = 0x1784,
|
||||
RT_EnvelopeData9Atom,
|
||||
RT_VisualShapeAtom = 0x2AFB,
|
||||
RT_HashCodeAtom = 0x2B00,
|
||||
RT_VisualPageAtom,
|
||||
RT_BuildList,
|
||||
RT_BuildAtom,
|
||||
RT_ChartBuild,
|
||||
RT_ChartBuildAtom,
|
||||
RT_DiagramBuild,
|
||||
RT_DiagramBuildAtom,
|
||||
RT_ParaBuild,
|
||||
RT_ParaBuildAtom,
|
||||
RT_LevelInfoAtom,
|
||||
RT_RoundTripAnimationAtom12Atom,
|
||||
RT_RoundTripAnimationHashAtom12Atom = 0x2B0D,
|
||||
RT_Comment10 = 0x2EE0,
|
||||
RT_Comment10Atom,
|
||||
RT_CommentIndex10 = 0x2EE4,
|
||||
RT_CommentIndex10Atom,
|
||||
RT_LinkedShape10Atom,
|
||||
RT_LinkedSlide10Atom,
|
||||
RT_SlideFlags10Atom = 0x2EEA,
|
||||
RT_SlideTime10Atom,
|
||||
RT_DiffTree10,
|
||||
RT_Diff10,
|
||||
RT_Diff10Atom,
|
||||
RT_SlideListTableSize10Atom,
|
||||
RT_SlideListEntry10Atom,
|
||||
RT_SlideListTable10,
|
||||
RT_CryptSession10Container = 0x2F14,
|
||||
RT_FontEmbedFlags10Atom = 0x32C8,
|
||||
RT_FilterPrivacyFlags10Atom = 0x36B0,
|
||||
RT_DocToolbarStates10Atom,
|
||||
RT_PhotoAlbumInfo10Atom,
|
||||
RT_SmartTagStore11Container,
|
||||
RT_RoundTripSlideSyncInfo12 = 0x3714,
|
||||
RT_RoundTripSlideSyncInfoAtom12,
|
||||
|
||||
|
||||
RTE_DGG_CONTAINER = 0xF000,
|
||||
RTE_BSTORE_CONTAINER = 0xF001,
|
||||
RTE_DG_CONTAINER = 0xF002,
|
||||
RTE_SPGR_CONTAINER = 0xF003,
|
||||
RTE_SP_CONTAINER = 0xF004,
|
||||
RTE_SOLVERCONTAINER = 0xF005,
|
||||
RTE_DGG = 0xF006,
|
||||
RTE_BSE = 0xF007,
|
||||
RTE_DG = 0xF008,
|
||||
RTE_SPGR = 0xF009,
|
||||
RTE_SP = 0xF00A,
|
||||
RTE_OPT = 0xF00B,
|
||||
RTE_TEXTBOX = 0xF00C,
|
||||
RTE_CLIENTTEXTBOX = 0xF00D,
|
||||
RTE_ANCHOR = 0xF00E,
|
||||
RTE_CHILDANCHOR = 0xF00F,
|
||||
RTE_CLIENTANCHOR = 0xF010,
|
||||
RTE_CLIENTDATA = 0xF011,
|
||||
RTE_CONNECTORRULE = 0xF012,
|
||||
RTE_ALIGNRULE = 0xF013,
|
||||
RTE_ARCRULE = 0xF014,
|
||||
RTE_CLIENTRULE = 0xF015,
|
||||
RTE_CLSID = 0xF016,
|
||||
RTE_CALLOUTRULE = 0xF017,
|
||||
RTE_BLIP_START = 0xF018,
|
||||
|
||||
|
||||
RTE_BLIP_EMF = 0xF01A,
|
||||
RTE_BLIP_WMF = 0xF01B,
|
||||
RTE_BLIP_PICT = 0xF01C,
|
||||
RTE_BLIP_JPEG = 0xF01D,
|
||||
RTE_BLIP_PNG = 0xF01E,
|
||||
RTE_BLIP_DIB = 0xF01F,
|
||||
|
||||
|
||||
RTE_BLIP_END = 0xF117,
|
||||
RTE_REGROUPITEMS = 0xF118,
|
||||
RTE_SELECTION = 0xF119,
|
||||
|
||||
|
||||
RTE_COLORMRU = 0xF11A,
|
||||
RTE_DELETEDPSPL = 0xF11D,
|
||||
RTE_SPLITMENUCOLORS = 0xF11E,
|
||||
RTE_OLEOBJECT = 0xF11F,
|
||||
RTE_COLORSCHEME = 0xF120,
|
||||
RTE_SECONDARY_OPT = 0xF121,
|
||||
RTE_TETRIARY_OPT = 0xF122,
|
||||
RTE_BLIP_TIFF = 0xF029,
|
||||
|
||||
|
||||
|
||||
|
||||
RT_TimeConditionContainer = 0xF125,
|
||||
RT_TimeNode = 0xF127,
|
||||
RT_TimeCondition,
|
||||
RT_TimeModifier,
|
||||
RT_TimeBehaviorContainer,
|
||||
RT_TimeAnimateBehaviorContainer,
|
||||
RT_TimeColorBehaviorContainer,
|
||||
RT_TimeEffectBehaviorContainer,
|
||||
RT_TimeMotionBehaviorContainer,
|
||||
RT_TimeRotationBehaviorContainer,
|
||||
RT_TimeScaleBehaviorContainer,
|
||||
RT_TimeSetBehaviorContainer,
|
||||
RT_TimeCommandBehaviorContainer,
|
||||
RT_TimeBehavior,
|
||||
RT_TimeAnimateBehavior,
|
||||
RT_TimeColorBehavior,
|
||||
RT_TimeEffectBehavior,
|
||||
RT_TimeMotionBehavior,
|
||||
RT_TimeRotationBehavior,
|
||||
RT_TimeScaleBehavior,
|
||||
RT_TimeSetBehavior,
|
||||
RT_TimeCommandBehavior,
|
||||
RT_TimeClientVisualElement,
|
||||
RT_TimePropertyList,
|
||||
RT_TimeVariantList,
|
||||
RT_TimeAnimationValueList,
|
||||
RT_TimeIterateData,
|
||||
RT_TimeSequenceData,
|
||||
RT_TimeVariant,
|
||||
RT_TimeAnimationValue,
|
||||
RT_TimeExtTimeNodeContainer,
|
||||
RT_TimeSubEffectContainer
|
||||
};
|
||||
|
||||
|
||||
//std::string GetRecordName(RecordType dwType);
|
||||
}
|
||||
35
ASCOfficePPTFile/PPTFormatLib/Enums/_includer.h
Normal file
35
ASCOfficePPTFile/PPTFormatLib/Enums/_includer.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "enums.h"
|
||||
#include "RecordType.h"
|
||||
607
ASCOfficePPTFile/PPTFormatLib/Enums/enums.h
Normal file
607
ASCOfficePPTFile/PPTFormatLib/Enums/enums.h
Normal file
@ -0,0 +1,607 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../DesktopEditor/common/Types.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
enum AnimAfterEffectEnum : BYTE
|
||||
{
|
||||
AI_NoAfterEffect,
|
||||
AI_Dim,
|
||||
AI_Hide,
|
||||
AI_HideImmediately
|
||||
};
|
||||
|
||||
|
||||
enum AnimBuildTypeEnum : BYTE
|
||||
{
|
||||
BT_NoBuild,
|
||||
BT_OneBuild,
|
||||
BT_Level1Build,
|
||||
BT_Level2Build,
|
||||
BT_Level3Build,
|
||||
BT_Level4Build,
|
||||
BT_Level5Build,
|
||||
BT_GraphBySeries,
|
||||
BT_GraphByCategory,
|
||||
BT_GraphByElementInSeries,
|
||||
BT_GraphByElementInCategory,
|
||||
BT_FollowMaster = 0xFE
|
||||
};
|
||||
|
||||
|
||||
enum BuildTypeEnum
|
||||
{
|
||||
TL_BuildParagraph,
|
||||
TL_BuildChart,
|
||||
TL_BuildDiagram
|
||||
};
|
||||
|
||||
|
||||
enum ChartBuildEnum
|
||||
{
|
||||
TLCB_AsOneObject,
|
||||
TLCB_BySeries,
|
||||
TLCB_ByCategory,
|
||||
TLCB_ByElementInSeries,
|
||||
TLCB_ByElementInCategory,
|
||||
TLCB_Custom
|
||||
};
|
||||
|
||||
|
||||
enum ColorModeEnum : BYTE
|
||||
{
|
||||
CM_BlackAndWhite,
|
||||
CM_Grayscale,
|
||||
CM_Color
|
||||
};
|
||||
|
||||
// TODO add different tupes for enum
|
||||
enum ConditionEnum
|
||||
{
|
||||
TL_CT_None,
|
||||
TL_CT_Begin,
|
||||
TL_CT_End,
|
||||
TL_CT_Next,
|
||||
TL_CT_Previous,
|
||||
TL_CT_EndSync
|
||||
};
|
||||
|
||||
|
||||
enum DiagramBuildEnum
|
||||
{
|
||||
TLDB_AsOneObject,
|
||||
TLDB_DepthByNode,
|
||||
TLDB_DepthByBranch,
|
||||
TLDB_BreadthByNode,
|
||||
TLDB_BreadthByLevel,
|
||||
TLDB_ClockWise,
|
||||
TLDB_ClockWiseIn,
|
||||
TLDB_ClockWiseOut,
|
||||
TLDB_CounterClockWise,
|
||||
TLDB_CounterClockWiseIn,
|
||||
TLDB_CounterClockWiseOut,
|
||||
TLDB_InByRing,
|
||||
TLDB_OutByRing,
|
||||
TLDB_Up,
|
||||
TLDB_Down,
|
||||
TLDB_AllAtOnce,
|
||||
TLDB_Custom
|
||||
};
|
||||
|
||||
|
||||
enum DiffTypeEnum
|
||||
{
|
||||
Diff_DocDiff,
|
||||
Diff_SlideDiff = 0x2,
|
||||
Diff_MainMasterDiff,
|
||||
Diff_SlideListDiff,
|
||||
Diff_MasterListDiff,
|
||||
Diff_ShapeListDiff,
|
||||
Diff_ShapeDiff,
|
||||
Diff_TextDiff = 0x9,
|
||||
Diff_NotesDiff,
|
||||
Diff_SlideShowDiff,
|
||||
Diff_HeaderFooterDiff,
|
||||
Diff_NamedShowDiff = 0xE,
|
||||
Diff_NamedShowListDiff,
|
||||
Diff_RecolorInfoDiff = 0x12,
|
||||
Diff_ExternalObjectDiff,
|
||||
Diff_TableListDiff = 0x15,
|
||||
Diff_TableDiff,
|
||||
Diff_InteractiveInfoDiff
|
||||
};
|
||||
|
||||
|
||||
enum ElementTypeEnum
|
||||
{
|
||||
TL_ET_ShapeType = 1,
|
||||
TL_ET_SoundType
|
||||
};
|
||||
|
||||
|
||||
enum ExColorFollowEnum
|
||||
{
|
||||
ExColor_FollowNone,
|
||||
ExColor_FollowScheme,
|
||||
ExColor_FollowTextAndBackground
|
||||
};
|
||||
|
||||
|
||||
enum ExOleObjSubTypeEnum
|
||||
{
|
||||
ExOleSub_Default,
|
||||
ExOleSub_Clipart,
|
||||
ExOleSub_WordDoc,
|
||||
ExOleSub_Excel,
|
||||
ExOleSub_Graph,
|
||||
ExOleSub_OrgChart,
|
||||
ExOleSub_Equation,
|
||||
ExOleSub_WordArt,
|
||||
ExOleSub_Sound,
|
||||
ExOleSub_Project = 0xC,
|
||||
ExOleSub_NoteIt,
|
||||
ExOleSub_ExcelChart,
|
||||
ExOleSub_MediaPlayer,
|
||||
ExOleSub_WordPad,
|
||||
ExOleSub_Visio,
|
||||
ExOleSub_WordODF,
|
||||
ExOleSub_ExcelODF,
|
||||
ExOleSub_PPTODF
|
||||
};
|
||||
|
||||
|
||||
enum ExOleObjTypeEnum
|
||||
{
|
||||
ExOle_Embedded,
|
||||
ExOle_Link,
|
||||
ExOle_Control
|
||||
};
|
||||
|
||||
|
||||
enum InteractiveInfoActionEnum
|
||||
{
|
||||
II_NoAction,
|
||||
II_MacroAction,
|
||||
II_RunProgramAction,
|
||||
II_JumpAction,
|
||||
II_HyperlinkAction,
|
||||
II_OLEAction,
|
||||
II_MediaAction,
|
||||
II_CustomShowAction
|
||||
};
|
||||
|
||||
|
||||
enum InteractiveInfoJumpEnum
|
||||
{
|
||||
II_NoJump,
|
||||
II_NextSlide,
|
||||
II_PreviousSlide,
|
||||
II_FirstSlide,
|
||||
II_LastSlide,
|
||||
II_LastSlideViewed,
|
||||
II_EndShow
|
||||
};
|
||||
|
||||
|
||||
enum LinkToEnum
|
||||
{
|
||||
LT_NextSlide,
|
||||
LT_PreviousSlide,
|
||||
LT_FirstSlide,
|
||||
LT_LastSlide,
|
||||
LT_CustomShow = 0x6,
|
||||
LT_SlideNumber,
|
||||
LT_Url,
|
||||
LT_OtherPresentation,
|
||||
LT_OtherFile,
|
||||
LT_Nil = 0xFF
|
||||
};
|
||||
|
||||
|
||||
enum NormalViewSetBarStates
|
||||
{
|
||||
BS_Minimized,
|
||||
BS_Restored,
|
||||
BS_Maximized
|
||||
};
|
||||
|
||||
|
||||
enum OLEVerbEnum
|
||||
{
|
||||
OV_Primary,
|
||||
OV_Secondary,
|
||||
OV_Tertiary
|
||||
};
|
||||
|
||||
|
||||
enum ParaBuildEnum
|
||||
{
|
||||
TLPB_AllAtOnce,
|
||||
TLPB_BuildByNthLevel,
|
||||
TLPB_CustomBuild,
|
||||
TLPB_AsAWhole
|
||||
};
|
||||
|
||||
|
||||
enum PhotoAlbumFrameShapeEnum
|
||||
{
|
||||
PA_Rectangle,
|
||||
PA_RoundedRectangle,
|
||||
PA_Beveled,
|
||||
PA_Oval,
|
||||
PA_Octagon,
|
||||
PA_Cross,
|
||||
PA_Plaque
|
||||
};
|
||||
|
||||
|
||||
enum PhotoAlbumLayoutEnum
|
||||
{
|
||||
PA_FitToSlide,
|
||||
PA_OnePicture,
|
||||
PA_TwoPictures,
|
||||
PA_FourPictures,
|
||||
PA_OnePictureAndTitle,
|
||||
PA_TwoPicturesAndTitle,
|
||||
PA_FourPicturesAndTitle
|
||||
};
|
||||
|
||||
|
||||
enum PlaceholderEnum : BYTE
|
||||
{
|
||||
PT_None,
|
||||
PT_MasterTitle,
|
||||
PT_MasterBody,
|
||||
PT_MasterCenterTitle,
|
||||
PT_MasterSubTitle,
|
||||
PT_MasterNotesSlideImage,
|
||||
PT_MasterNotesBody,
|
||||
PT_MasterDate,
|
||||
PT_MasterSlideNumber,
|
||||
PT_MasterFooter,
|
||||
PT_MasterHeader,
|
||||
PT_NotesSlideImage,
|
||||
PT_NotesBody,
|
||||
PT_Title,
|
||||
PT_Body,
|
||||
PT_CenterTitle,
|
||||
PT_SubTitle,
|
||||
PT_VerticalTitle,
|
||||
PT_VerticalBody,
|
||||
PT_Object,
|
||||
PT_Graph,
|
||||
PT_Table,
|
||||
PT_ClipArt,
|
||||
PT_OrgChart,
|
||||
PT_Media,
|
||||
PT_VerticalObject,
|
||||
PT_Picture,
|
||||
PT_Body_Empty = 0xFF
|
||||
};
|
||||
|
||||
|
||||
enum PlaceholderSize
|
||||
{
|
||||
PS_Full,
|
||||
PS_Half,
|
||||
PS_Quarter
|
||||
};
|
||||
|
||||
|
||||
enum PrintWhatEnum
|
||||
{
|
||||
PW_Slides,
|
||||
PW_BuildSlides,
|
||||
PW_Handouts2,
|
||||
PW_Handouts3,
|
||||
PW_Handouts6,
|
||||
PW_Notes,
|
||||
PW_Outline,
|
||||
PW_Handouts4,
|
||||
PW_Handouts9,
|
||||
PW_Handouts1
|
||||
};
|
||||
|
||||
|
||||
enum SlideLayoutType
|
||||
{
|
||||
SL_TitleSlide,
|
||||
SL_TitleBody,
|
||||
SL_MasterTitle,
|
||||
SL_TitleOnly = 0x7,
|
||||
SL_TwoColumns,
|
||||
SL_TwoRows,
|
||||
SL_ColumnTwoRows,
|
||||
SL_TwoRowsColumn,
|
||||
SL_TwoColumnsRow = 0xD,
|
||||
SL_FourObjects,
|
||||
SL_BigObject,
|
||||
SL_Blank,
|
||||
SL_VerticalTitleBody,
|
||||
SL_VerticalTwoRows
|
||||
};
|
||||
|
||||
|
||||
enum SlideSizeEnum
|
||||
{
|
||||
SS_Screen,
|
||||
SS_LetterPaper,
|
||||
SS_A4Paper,
|
||||
SS_35mm,
|
||||
SS_Overhead,
|
||||
SS_Banner,
|
||||
SS_Custom
|
||||
};
|
||||
|
||||
|
||||
enum TextAlignmentEnum
|
||||
{
|
||||
Tx_ALIGNLeft,
|
||||
Tx_ALIGNCenter,
|
||||
Tx_ALIGNRight,
|
||||
Tx_ALIGNJustify,
|
||||
Tx_ALIGNDistributed,
|
||||
Tx_ALIGNThaiDistributed,
|
||||
Tx_ALIGNJustifyLow
|
||||
};
|
||||
|
||||
|
||||
enum TextAutoNumberSchemeEnum : USHORT
|
||||
{
|
||||
ANM_AlphaLcPeriod,
|
||||
ANM_AlphaUcPeriod,
|
||||
ANM_ArabicParenRight,
|
||||
ANM_ArabicPeriod,
|
||||
ANM_RomanLcParenBoth,
|
||||
ANM_RomanLcParenRight,
|
||||
ANM_RomanLcPeriod,
|
||||
ANM_RomanUcPeriod,
|
||||
ANM_AlphaLcParenBoth,
|
||||
ANM_AlphaLcParenRight,
|
||||
ANM_AlphaUcParenBoth,
|
||||
ANM_AlphaUcParenRight,
|
||||
ANM_ArabicParenBoth,
|
||||
ANM_ArabicPlain,
|
||||
ANM_RomanUcParenBoth,
|
||||
ANM_RomanUcParenRight,
|
||||
ANM_ChsPlain,
|
||||
ANM_ChsPeriod,
|
||||
ANM_CircleNumDBPlain,
|
||||
ANM_CircleNumWDBWhitePlain,
|
||||
ANM_CircleNumWDBBlackPlain,
|
||||
ANM_ChtPlain,
|
||||
ANM_ChtPeriod,
|
||||
ANM_Arabic1Minus,
|
||||
ANM_Arabic2Minus,
|
||||
ANM_Hebrew2Minus,
|
||||
ANM_JpnKorPlain,
|
||||
ANM_JpnKorPeriod,
|
||||
ANM_ArabicDbPlain,
|
||||
ANM_ArabicDbPeriod,
|
||||
ANM_ThaiAlphaPeriod,
|
||||
ANM_ThaiAlphaParenRight,
|
||||
ANM_ThaiAlphaParenBoth,
|
||||
ANM_ThaiNumPeriod,
|
||||
ANM_ThaiNumParenRight,
|
||||
ANM_ThaiNumParenBoth,
|
||||
ANM_HindiAlphaPeriod,
|
||||
ANM_HindiNumPeriod,
|
||||
ANM_JpnChsDBPeriod,
|
||||
ANM_HindiNumParenRight,
|
||||
ANM_HindiAlpha1Period
|
||||
};
|
||||
|
||||
|
||||
enum TextBuildSubEffectEnum
|
||||
{
|
||||
TXB_BuildByNone,
|
||||
TXB_BuildByWord,
|
||||
TXB_BuildByCharacter
|
||||
};
|
||||
|
||||
|
||||
enum TextDirectionEnum
|
||||
{
|
||||
LeftToRight,
|
||||
RightToLeft
|
||||
};
|
||||
|
||||
|
||||
enum TextFontAlignmentEnum
|
||||
{
|
||||
Tx_ALIGNFONTRoman,
|
||||
Tx_ALIGNFONTHanging,
|
||||
Tx_ALIGNFONTCenter,
|
||||
Tx_ALIGNFONTUpholdFixed
|
||||
};
|
||||
|
||||
|
||||
enum TextTabTypeEnum
|
||||
{
|
||||
Tx_TABLeft,
|
||||
Tx_TABCenter,
|
||||
Tx_TABRight,
|
||||
Tx_TABDecimal
|
||||
};
|
||||
|
||||
|
||||
enum TextTypeEnum : unsigned
|
||||
{
|
||||
Tx_TYPE_TITLE,
|
||||
Tx_TYPE_BODY,
|
||||
Tx_TYPE_NOTES,
|
||||
Tx_TYPE_OTHER = 0x4,
|
||||
Tx_TYPE_CENTERBODY,
|
||||
Tx_TYPE_CENTERTITLE,
|
||||
Tx_TYPE_HALFBODY,
|
||||
Tx_TYPE_QUARTERBODY,
|
||||
|
||||
NoPresent = 0xFF
|
||||
};
|
||||
|
||||
|
||||
enum TimeAnimateBehaviorValueTypeEnum
|
||||
{
|
||||
TL_TABVT_String,
|
||||
TL_TABVT_Number,
|
||||
TL_TABVT_Color
|
||||
};
|
||||
|
||||
|
||||
enum TimeCommandBehaviorTypeEnum
|
||||
{
|
||||
TL_TCBT_Eventv,
|
||||
TL_TCBT_Call,
|
||||
TL_TCBT_OleVerb
|
||||
};
|
||||
|
||||
|
||||
enum TimeNodeTypeEnum
|
||||
{
|
||||
TL_TNT_Parallel,
|
||||
TL_TNT_Sequential,
|
||||
TL_TNT_Behavior = 0x3,
|
||||
TL_TNT_Media
|
||||
};
|
||||
|
||||
|
||||
enum TimePropertyID4TimeBehavior
|
||||
{
|
||||
TL_TBPID_UnknownPropertyList = 0x1,
|
||||
TL_TBPID_RuntimeContext,
|
||||
TL_TBPID_MotionPathEditRelative,
|
||||
TL_TBPID_ColorColorModel,
|
||||
TL_TBPID_ColorDirection,
|
||||
TL_TBPID_Override,
|
||||
TL_TBPID_PathEditRotationAngle,
|
||||
TL_TBPID_PathEditRotationX,
|
||||
TL_TBPID_PathEditRotationY,
|
||||
TL_TBPID_PointsTypes
|
||||
};
|
||||
|
||||
|
||||
enum TimePropertyID4TimeNode
|
||||
{
|
||||
TL_TPID_Display = 0x02,
|
||||
TL_TPID_MasterPos = 0x05,
|
||||
TL_TPID_SubType,
|
||||
TL_TPID_EffectID = 0x09,
|
||||
TL_TPID_EffectDir,
|
||||
TL_TPID_EffectType,
|
||||
TL_TPID_AfterEffect = 0x0D,
|
||||
TL_TPID_SlideCount = 0x0F,
|
||||
TL_TPID_TimeFilter,
|
||||
TL_TPID_EventFilter,
|
||||
TL_TPID_HideWhenStopped,
|
||||
TL_TPID_GroupID,
|
||||
TL_TPID_EffectNodeType,
|
||||
TL_TPID_PlaceholderNode,
|
||||
TL_TPID_MediaVolume,
|
||||
TL_TPID_MediaMute,
|
||||
TL_TPID_ZoomToFullScreen = 0x1A
|
||||
};
|
||||
|
||||
|
||||
enum TimeVariantTypeEnum
|
||||
{
|
||||
TL_TVT_Bool,
|
||||
TL_TVT_Int,
|
||||
TL_TVT_Float,
|
||||
TL_TVT_String
|
||||
};
|
||||
|
||||
|
||||
enum TimeVisualElementEnum
|
||||
{
|
||||
TL_TVET_Shape,
|
||||
TL_TVET_Page,
|
||||
TL_TVET_TextRange,
|
||||
TL_TVET_Audio,
|
||||
TL_TVET_Video,
|
||||
TL_TVET_ChartElement,
|
||||
TL_TVET_ShapeOnly,
|
||||
TL_TVET_AllTextRange = 0x8
|
||||
};
|
||||
|
||||
|
||||
enum TriggerObjectEnum
|
||||
{
|
||||
TL_TOT_None,
|
||||
TL_TOT_VisualElement,
|
||||
TL_TOT_TimeNode,
|
||||
TL_TOT_RuntimeNodeRef
|
||||
};
|
||||
|
||||
|
||||
enum ViewTypeEnum
|
||||
{
|
||||
V_Slide,
|
||||
V_SlideMaster,
|
||||
V_Notes,
|
||||
V_Handout,
|
||||
V_NotesMaster,
|
||||
V_OutlineMaster,
|
||||
V_Outline,
|
||||
V_SlideSorter,
|
||||
V_VisualBasic,
|
||||
V_TitleMaster,
|
||||
V_SlideShow,
|
||||
V_SlideShowFullScreen,
|
||||
V_NotesText,
|
||||
V_PrintPreview,
|
||||
V_Thumbnails,
|
||||
V_MasterThumbnails,
|
||||
V_PodiumSlideView,
|
||||
V_PodiumNotesView
|
||||
};
|
||||
|
||||
|
||||
enum WebFrameColorsEnum
|
||||
{
|
||||
MSOWOPTBrowserColors,
|
||||
MSOWOPTPresentationSchemeTextColor,
|
||||
MSOWOPTPresentationSchemeAccentColor,
|
||||
MSOWOPTWhiteTextOnBlack,
|
||||
MSOWOPTBlackTextOnWhite
|
||||
};
|
||||
|
||||
|
||||
enum WebOutputEnum
|
||||
{
|
||||
HTML_EXPORTVersion3 = 0x1,
|
||||
HTML_EXPORTVersion4,
|
||||
HTML_EXPORTDual = 0x4
|
||||
};
|
||||
}
|
||||
@ -27,7 +27,359 @@ DEFINES += UNICODE \
|
||||
#DISABLE_FILE_DOWNLOADER
|
||||
|
||||
HEADERS += \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Animations.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Attributes.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/AudioOverlay.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Document.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Effects.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Interactive.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Metric.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/SlideShow.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/Structures.h \
|
||||
# ../../../ASCOfficePPTXFile/Editor/Drawing/XmlStringWriter.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/AlbumLayout.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/AnimationDgmBuild.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/BWMode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/BaseLimit.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/BevelType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/BlendMode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/BlipCompression.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/CameraType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ChartBuild.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ChartBuildType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ColorSchemeIndex.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/CompoundLine.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/Conformance.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ContentStatus.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/CornerDirectionVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/DgmBuild.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/DgmBuildType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/EffectContainerType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/EightDirectionVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/FillPath.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/Flip.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/FontAlign.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/FontStyleIndex.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/FrameShape.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/HorzOverflow.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/InOutDirectionVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/IterateType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/LastView.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/LightRigType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/LineCap.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/LineEndSize.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/LineEndType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/Material.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/OnOff.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/Orient.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ParaBuildType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PathFillMode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PattFillVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PenAlign.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PlaceholderSize.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PlaceholderType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PresetShadowVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PrstClrVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/PrstDashVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/RectAlign.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SchemeClrVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/ShapeType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SideDirectionVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SlideLayoutType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SlideSize.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SplitterBarState.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/SysClrVal.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLAccumulate.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLAdditive.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLCalcMode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLChartSubElement.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLColorDirection.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLColorSpace.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLCommandType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLMasterRelation.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLNextAc.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLNodeFillType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLNodeType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLOrigin.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLOverride.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLPathEditMode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLPresetClass.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLPrevAc.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLRestart.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLRuntimeTrigger.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLSyncBehavior.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLTransform.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLTriggerEvent.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLValueType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextAlign.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextAnchor.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextAutonumberScheme.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextCaps.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextShapeType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextStrike.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextTabAlignType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextUnderline.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextVerticalType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TextWrap.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/TransitionSpeed.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/VariantType.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Limit/VertOverflow.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Ah.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/AhBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/AhPolar.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/AhXY.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Backdrop.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bevel.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bg.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/BgPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/BodyPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuAutoNum.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuBlip.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuChar.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuClrTx.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuFontTx.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuNone.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuSzPct.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuSzPts.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BuSzTx.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/Bullet.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BulletColor.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BulletSize.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bullets/BulletTypeface.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvCxnSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvGraphicFramePr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvGrpSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvPicPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CSld.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Camera.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Cell3D.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ClrMap.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ClrMapOvr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/ColorBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/ColorModifier.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/PrstClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SysClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ContentPart.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Controls.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CustGeom.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Cxn.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CxnSp.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/DefaultShapeDefinition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectDag.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectProperties.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaBiLevel.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaCeiling.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaFloor.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaInv.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaMod.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaModFix.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaOutset.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/AlphaRepl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/BiLevel.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Blend.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Blur.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/ClrChange.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/ClrRepl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Duotone.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/EffectElement.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/FillEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/FillOverlay.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Glow.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Grayscl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/HslEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/InnerShdw.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/LumEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/OuterShdw.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/PrstShdw.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/Reflection.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/RelOff.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/SoftEdge.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/TintEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Effects/XfrmEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ExtP.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/FillStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/Blip.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/BlipFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/GradFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/NoFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/PattFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/SolidFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/Stretch.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/Tile.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/FontCollection.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/FontRef.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Gd.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Geometry.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/GrpSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Gs.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/HeadingVariant.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Hf.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Hyperlink.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/LightRig.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Lin.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/LineEnd.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/LineJoin.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/LineStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Ln.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Media/AudioCD.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Media/MediaFile.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Media/WavAudioFile.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvCxnSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvGraphicFramePr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvGrpSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvPicPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvSpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Paragraph.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/PartTitle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/ArcTo.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/Close.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/CubicBezTo.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/LineTo.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/MoveTo.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/PathBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Path2D/QuadBezTo.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Ph.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Pic.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/PrstDash.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/PrstGeom.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/PrstTxWarp.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Rect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Rot.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/RunElem.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/RunProperties.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/Br.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/Fld.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/MathParaWrapper.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/Run.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/RunBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Scene3d.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ShapeStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SmartArt.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Sp3d.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTree.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTreeElem.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/StyleRef.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SupplementalFont.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Tab.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/Table.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableCell.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableCellProperties.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableCol.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableProperties.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableRow.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TableBgStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TablePartStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TableStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TcBdr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TcStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TcTxStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextFit.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextFont.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextListStyle.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextParagraphPr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TextSpacing.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Anim.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimClr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimMotion.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimRot.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimScale.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimVariant.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AttrName.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AttrNameLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Audio.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldDgm.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldGraphic.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldOleChart.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldP.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldSub.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BuildNodeBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CBhvr.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CMediaNode.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CTn.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/ChildTnLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Cmd.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Cond.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CondLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Excl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/GraphicEl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Iterate.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Par.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Set.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/SpTgt.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Tav.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TavLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TgtEl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TimeNodeBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Timing.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Tmpl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TmplLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TnLst.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TxEl.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Video.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/CornerDirectionTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/EightDirectionTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/EmptyTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/OptionalBlackTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/OrientationTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/SideDirectionTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/SndAc.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/SplitTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/StSnd.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/Transition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/TransitionBase.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/WheelTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/ZoomTransition.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TxBody.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TxStyles.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniColor.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniEffect.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniFill.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniMedia.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniPath2D.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Xfrm.h \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/XmlId.h \
|
||||
../Enums/RecordType.h \
|
||||
../Enums/_includer.h \
|
||||
../Enums/enums.h \
|
||||
../PPTFormatLib.h \
|
||||
../PPTXWriter/TimingConverter.h \
|
||||
../PPTXWriter/TimingConverter/Anim.h \
|
||||
../PPTXWriter/TimingConverter/AnimClr.h \
|
||||
../PPTXWriter/TimingConverter/AnimEffect.h \
|
||||
../PPTXWriter/TimingConverter/AnimMotion.h \
|
||||
../PPTXWriter/TimingConverter/AnimRot.h \
|
||||
../PPTXWriter/TimingConverter/AnimScale.h \
|
||||
../PPTXWriter/TimingConverter/Audio.h \
|
||||
../PPTXWriter/TimingConverter/BldLst.h \
|
||||
../PPTXWriter/TimingConverter/BldP.h \
|
||||
../PPTXWriter/TimingConverter/CBhvr.h \
|
||||
../PPTXWriter/TimingConverter/CTn.h \
|
||||
../PPTXWriter/TimingConverter/Cmd.h \
|
||||
../PPTXWriter/TimingConverter/Cond.h \
|
||||
../PPTXWriter/TimingConverter/Par.h \
|
||||
../PPTXWriter/TimingConverter/Seq.h \
|
||||
../PPTXWriter/TimingConverter/Set.h \
|
||||
../PPTXWriter/TimingConverter/TgtEl.h \
|
||||
../PPTXWriter/TimingConverter/TnChildren.h \
|
||||
../PPTXWriter/TimingConverter/TnLst.h \
|
||||
../PPTXWriter/TimingConverter/Video.h \
|
||||
../Reader/ClassesAtom.h \
|
||||
../Reader/CommonZLib.h \
|
||||
../Reader/PPTDocumentInfo.h \
|
||||
@ -39,10 +391,79 @@ HEADERS += \
|
||||
../Reader/Slide.h \
|
||||
../Reader/SlideInfo.h \
|
||||
../Reader/SlidePersist.h \
|
||||
../Records/AnimationInfoAtom.h \
|
||||
../Records/Animations/AnimationInfoAtom.h \
|
||||
../Records/Animations/AnimationInfoContainer.h \
|
||||
../Records/Animations/BuildAtom.h \
|
||||
../Records/Animations/BuildListContainer.h \
|
||||
../Records/Animations/ChartBuildAtom.h \
|
||||
../Records/Animations/ChartBuildContainer.h \
|
||||
../Records/Animations/ClientVisualElementContainer.h \
|
||||
../Records/Animations/DiagramBuildAtom.h \
|
||||
../Records/Animations/DiagramBuildContainer.h \
|
||||
../Records/Animations/ExtTimeNodeContainer.h \
|
||||
../Records/Animations/HashCode10Atom.h \
|
||||
../Records/Animations/LevelInfoAtom.h \
|
||||
../Records/Animations/ParaBuildAtom.h \
|
||||
../Records/Animations/ParaBuildContainer.h \
|
||||
../Records/Animations/ParaBuildLevel.h \
|
||||
../Records/Animations/SubEffectContainer.h \
|
||||
../Records/Animations/TimeAnimateBehaviorAtom.h \
|
||||
../Records/Animations/TimeAnimateBehaviorContainer.h \
|
||||
../Records/Animations/TimeAnimateColor.h \
|
||||
../Records/Animations/TimeAnimateColorBy.h \
|
||||
../Records/Animations/TimeAnimationValueAtom.h \
|
||||
../Records/Animations/TimeAnimationValueListContainer.h \
|
||||
../Records/Animations/TimeAnimationValueListEntry.h \
|
||||
../Records/Animations/TimeBehaviorAtom.h \
|
||||
../Records/Animations/TimeBehaviorContainer.h \
|
||||
../Records/Animations/TimeColorBehaviorAtom.h \
|
||||
../Records/Animations/TimeColorBehaviorContainer.h \
|
||||
../Records/Animations/TimeCommandBehaviorAtom.h \
|
||||
../Records/Animations/TimeCommandBehaviorContainer.h \
|
||||
../Records/Animations/TimeConditionAtom.h \
|
||||
../Records/Animations/TimeConditionContainer.h \
|
||||
../Records/Animations/TimeDisplayType.h \
|
||||
../Records/Animations/TimeEffectBehaviorAtom.h \
|
||||
../Records/Animations/TimeEffectBehaviorContainer.h \
|
||||
../Records/Animations/TimeEffectID.h \
|
||||
../Records/Animations/TimeEffectNodeType.h \
|
||||
../Records/Animations/TimeEffectType.h \
|
||||
../Records/Animations/TimeGroupID.h \
|
||||
../Records/Animations/TimeIterateDataAtom.h \
|
||||
../Records/Animations/TimeMasterRelType.h \
|
||||
../Records/Animations/TimeModifierAtom.h \
|
||||
../Records/Animations/TimeMotionBehaviorAtom.h \
|
||||
../Records/Animations/TimeMotionBehaviorContainer.h \
|
||||
../Records/Animations/TimeNodeAtom.h \
|
||||
../Records/Animations/TimeNodeTimeFilter.h \
|
||||
../Records/Animations/TimePropertyList4TimeBehavior.h \
|
||||
../Records/Animations/TimePropertyList4TimeNodeContainer.h \
|
||||
../Records/Animations/TimeRotationBehaviorAtom.h \
|
||||
../Records/Animations/TimeRotationBehaviorContainer.h \
|
||||
../Records/Animations/TimeScaleBehaviorAtom.h \
|
||||
../Records/Animations/TimeScaleBehaviorContainer.h \
|
||||
../Records/Animations/TimeSequenceDataAtom.h \
|
||||
../Records/Animations/TimeSetBehaviorAtom.h \
|
||||
../Records/Animations/TimeSetBehaviorContainer.h \
|
||||
../Records/Animations/TimeStringListContainer.h \
|
||||
../Records/Animations/TimeVariant.h \
|
||||
../Records/Animations/TimeVariant4Behavior.h \
|
||||
../Records/Animations/VisualPageAtom.h \
|
||||
../Records/Animations/VisualShapeAtom.h \
|
||||
../Records/Animations/VisualShapeChartElementAtom.h \
|
||||
../Records/Animations/VisualShapeGeneralAtom.h \
|
||||
../Records/Animations/VisualSoundAtom.h \
|
||||
../Records/Animations/_includer.h \
|
||||
../Records/BlipEntityAtom.h \
|
||||
../Records/BookmarkEntityAtom.h \
|
||||
../Records/BookmarkSeedAtom.h \
|
||||
../Records/BuildAtom.h \
|
||||
../Records/DocInfoListContainer.h \
|
||||
../Records/DocProgTagsContainer.h \
|
||||
../Records/OfficeArtClientData.h \
|
||||
../Records/PlaceHolderAtom.h \
|
||||
../Records/ShapeProgBinaryTagSubContainerOrAtom.h \
|
||||
../Records/CFMasks.h \
|
||||
../Records/ColorSchemeAtom.h \
|
||||
../Records/CString.h \
|
||||
../Records/CurrentUserAtom.h \
|
||||
@ -71,6 +492,9 @@ HEADERS += \
|
||||
../Records/HeadersFootersAtom.h \
|
||||
../Records/InteractiveInfoAtom.h \
|
||||
../Records/KinsokuAtom.h \
|
||||
../Records/KinsokuContainer.h \
|
||||
../Records/KinsokuFollowingAtom.h \
|
||||
../Records/KinsokuLeadingAtom.h \
|
||||
../Records/MasterPersistAtom.h \
|
||||
../Records/MasterTextPropAtom.h \
|
||||
../Records/MetafileBlob.h \
|
||||
@ -81,8 +505,14 @@ HEADERS += \
|
||||
../Records/NotesPersistAtom.h \
|
||||
../Records/NoZoomViewInfoAtom.h \
|
||||
../Records/OutlineTextRefAtom.h \
|
||||
../Records/FontCollection10Container.h \
|
||||
../Records/FontEmbedFlags10Atom.h \
|
||||
../Records/OutlineTextProps9Container.h \
|
||||
../Records/OutlineTextPropsHeaderExAtom.h \
|
||||
../Records/PFMasks.h \
|
||||
../Records/PersistDirectoryAtom.h \
|
||||
../Records/PlaceHolderAtom.h \
|
||||
../Records/ProgStringTagContainer.h \
|
||||
../Records/RecordsIncluder.h \
|
||||
../Records/RoundTripColorMappingAtom.h \
|
||||
../Records/RoundTripCompositeMainMasterId12Atom.h \
|
||||
@ -91,11 +521,18 @@ HEADERS += \
|
||||
../Records/RoundTripThemeAtom.h \
|
||||
../Records/ShapeFlags10Atom.h \
|
||||
../Records/ShapeFlagsAtom.h \
|
||||
../Records/Comment10Container.h \
|
||||
../Records/LinkedShape10Atom.h \
|
||||
../Records/LinkedSlide10Atom.h \
|
||||
../Records/SlideFlags10Atom.h \
|
||||
../Records/SlideProgTagsContainer.h \
|
||||
../Records/SlideTime10Atom.h \
|
||||
../Records/SlideAtom.h \
|
||||
../Records/SlideColorSchemeAtom.h \
|
||||
../Records/SlideContainer.h \
|
||||
../Records/SlideListWithText.h \
|
||||
../Records/SlidePersistAtom.h \
|
||||
../Records/SlideProgTagsContainer.h \
|
||||
../Records/SlideViewInfoAtom.h \
|
||||
../Records/SoundCollAtom.h \
|
||||
../Records/SoundCollectionContainer.h \
|
||||
@ -105,6 +542,15 @@ HEADERS += \
|
||||
../Records/SSlideLayoutAtom.h \
|
||||
../Records/SSSlideInfoAtom.h \
|
||||
../Records/StyleTextPropAtom.h \
|
||||
../Records/StyleTextProp10Atom.h \
|
||||
../Records/StyleTextProp11Atom.h \
|
||||
../Records/StyleTextProp9Atom.h \
|
||||
../Records/TextCFException10.h \
|
||||
../Records/TextCFException9.h \
|
||||
../Records/TextDefaults9Atom.h \
|
||||
../Records/TextMasterStyle9Atom.h \
|
||||
../Records/TextMasterStyle9Level.h \
|
||||
../Records/TextSIException.h \
|
||||
../Records/TextBookmarkAtom.h \
|
||||
../Records/TextBytesAtom.h \
|
||||
../Records/TextCFExceptionAtom.h \
|
||||
@ -112,7 +558,10 @@ HEADERS += \
|
||||
../Records/TextFullSettings.h \
|
||||
../Records/TextHeaderAtom.h \
|
||||
../Records/TextInteractiveInfoAtom.h \
|
||||
../Records/TextMasterStyle9Atom.h \
|
||||
../Records/TextMasterStyle9Level.h \
|
||||
../Records/TextMasterStyleAtom.h \
|
||||
../Records/TextPFException9.h \
|
||||
../Records/TextPFExceptionAtom.h \
|
||||
../Records/TextRulerAtom.h \
|
||||
../Records/TextSIExceptionAtom.h \
|
||||
@ -148,7 +597,20 @@ HEADERS += \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextStructures.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Theme.h \
|
||||
../../../Common/3dParty/pole/pole.h
|
||||
../../../Common/3dParty/pole/pole.h \
|
||||
../Structures/ColorIndex.h \
|
||||
../Structures/ColorIndexStruct.h \
|
||||
../Structures/ColorStruct.h \
|
||||
../Structures/DateTimeStruct.h \
|
||||
../Structures/IStruct.h \
|
||||
../Structures/PointStruct.h \
|
||||
../Structures/RatioStruct.h \
|
||||
../Structures/RectStruct.h \
|
||||
../Structures/ScalingStruct.h \
|
||||
../Structures/SmallRectStruct.h \
|
||||
../Structures/TmsfTimeStruct.h \
|
||||
../Structures/WideColorStruct.h \
|
||||
../Structures/_includer.h
|
||||
|
||||
core_release {
|
||||
SOURCES += \
|
||||
@ -162,7 +624,6 @@ SOURCES += \
|
||||
../Reader/Records.cpp \
|
||||
../Reader/PPTFileReader.cpp \
|
||||
../Reader/SlidePersist.cpp \
|
||||
../Records/Animations/AnimationTypes.cpp \
|
||||
../Records/Drawing/ArtBlip.cpp \
|
||||
../Records/Drawing/ShapeContainer.cpp \
|
||||
../PPTXWriter/Converter.cpp \
|
||||
@ -170,8 +631,45 @@ SOURCES += \
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Bg.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CNvGrpSpPr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/ContentPart.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Controls.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/CxnSp.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectDag.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectLst.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectProperties.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/EffectStyle.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/Blip.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Fills/BlipFill.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Geometry.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/GraphicFrame.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/GrpSpPr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Hyperlink.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Media/WavAudioFile.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvGraphicFramePr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/NvGrpSpPr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Pic.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Runs/MathParaWrapper.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Shape.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SmartArt.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpPr.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTree.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/SpTreeElem.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Table/TableCell.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BuildNodeBase.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TimeNodeBase.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/Transitions/TransitionBase.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/TxBody.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniColor.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniEffect.cpp \
|
||||
# ../../../ASCOfficePPTXFile/PPTXFormat/Logic/UniFill.cpp \
|
||||
../Enums/RecordType.cpp \
|
||||
../PPTFormatLib.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Elements.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.cpp \
|
||||
../../../Common/3dParty/pole/pole.cpp
|
||||
../../../Common/3dParty/pole/pole.cpp \
|
||||
../PPTXWriter/TimingConverter.cpp \
|
||||
../Records/Animations/TimeVariant.cpp
|
||||
|
||||
|
||||
@ -35,7 +35,7 @@
|
||||
#include "../Reader/PPTFileReader.cpp"
|
||||
#include "../Reader/Records.cpp"
|
||||
#include "../Reader/SlidePersist.cpp"
|
||||
#include "../Records/Animations/AnimationTypes.cpp"
|
||||
//#include "../Records/Animations/AnimationTypes.cpp"
|
||||
#include "../Records/Drawing/ArtBlip.cpp"
|
||||
#include "../Records/Drawing/ShapeContainer.cpp"
|
||||
#include "../PPTXWriter/Converter.cpp"
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -32,10 +32,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "ImageManager.h"
|
||||
#include "TimingConverter.h"
|
||||
|
||||
|
||||
class CStylesWriter;
|
||||
class CPPTUserInfo;
|
||||
class CStringWriter;
|
||||
class CSlideShowInfo;
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
@ -78,8 +82,9 @@ namespace PPT_FORMAT
|
||||
void WriteLayout (CLayoutPtr pLayout, int nIndexLayout, int nStartLayout, int nIndexTheme);
|
||||
void WriteSlide (int nIndexSlide);
|
||||
void WriteNotes (int nIndexNotes);
|
||||
void WriteTiming (CStringWriter& oWriter, PPTX::Logic::Timing &oTiming); // TODO write spec class for timing
|
||||
|
||||
void WriteTransition (CStringWriter& oWriter, CTransition& transition);
|
||||
void WriteTransition (CStringWriter& oWriter, CSlideShowInfo& oSSInfo);
|
||||
void WriteColorScheme (CStringWriter& oWriter, const std::wstring & name, const std::vector<CColor> & colors, bool extra = false);
|
||||
void WriteBackground (CStringWriter& oWriter, CRelsGenerator& oRels, CBrush& oBackground);
|
||||
void WriteElement (CStringWriter& oWriter, CRelsGenerator& oRels, CElementPtr pElement, CLayout* pLayout = NULL);
|
||||
|
||||
@ -156,6 +156,12 @@ void CStylesWriter::ConvertStyleLevel(PPT_FORMAT::CTextStyleLevel& oLevel, PPT_F
|
||||
oWriter.WriteStringXML(std::wstring(&bu, 1));
|
||||
oWriter.WriteString(L"\"/>");
|
||||
}
|
||||
// if (!pPF->bulletAutoNum.is_init())
|
||||
// {
|
||||
// oWriter.WriteString(L"<a:buAutoNum type=\"");
|
||||
// oWriter.WriteString(L"arabicPeriod");
|
||||
// oWriter.WriteString(L"\"/>");
|
||||
// }
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1190,14 +1196,14 @@ void PPT_FORMAT::CShapeWriter::WriteTextInfo()
|
||||
}
|
||||
m_oWriter.WriteString(L"</a:bodyPr>");
|
||||
|
||||
if (0 == nCount)
|
||||
if (0 == nCount)
|
||||
{
|
||||
m_oWriter.WriteString(L"<a:lstStyle/><a:p><a:endParaRPr dirty=\"0\"/></a:p></p:txBody>");
|
||||
return;
|
||||
}
|
||||
m_oWriter.WriteString(L"<a:lstStyle>");
|
||||
|
||||
if (!m_bWordArt)
|
||||
if (!m_bWordArt)
|
||||
{
|
||||
CStylesWriter styleWriter(m_pTheme);
|
||||
styleWriter.ConvertStyles(pShapeElement->m_pShape->m_oText.m_oStyles, m_oWriter);
|
||||
@ -1337,6 +1343,12 @@ void PPT_FORMAT::CShapeWriter::WriteTextInfo()
|
||||
}
|
||||
m_oWriter.WriteString(std::wstring(L"/>"));
|
||||
}
|
||||
if (pPF->bulletAutoNum.is_init()) // TODO Numbering
|
||||
{
|
||||
m_oWriter.WriteString(L"<a:buAutoNum type=\"");
|
||||
m_oWriter.WriteString(pPF->bulletAutoNum->type.get());
|
||||
m_oWriter.WriteString(L"\"/>");
|
||||
}
|
||||
|
||||
bool set = true;
|
||||
if (pPF->bulletFontProperties.is_init() == false && pPF->bulletSize.is_init() == false)
|
||||
@ -2721,4 +2733,4 @@ HRESULT PPT_FORMAT::CShapeWriter::put_ClipMode(const LONG& lMode)
|
||||
{
|
||||
m_lClipMode = lMode;
|
||||
return S_OK;
|
||||
}
|
||||
}
|
||||
|
||||
28
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter.cpp
Normal file
28
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter.cpp
Normal file
@ -0,0 +1,28 @@
|
||||
#include "TimingConverter.h"
|
||||
|
||||
#include "TimingConverter/BldLst.h"
|
||||
#include "TimingConverter/TnLst.h"
|
||||
|
||||
|
||||
using namespace PPT_FORMAT;
|
||||
|
||||
|
||||
void PPT_FORMAT::ConvertPP10SlideBinaryTagExtensionToTiming(PPT_FORMAT::CRecordPP10SlideBinaryTagExtension &oRec, PPTX::Logic::Timing &oTm)
|
||||
{
|
||||
if (oRec.m_haveExtTime)
|
||||
{
|
||||
// gCTnID = 1;
|
||||
oTm.tnLst = new PPTX::Logic::TnLst();
|
||||
ConvertCRecordExtTimeNodeContainerToTnLst(oRec.m_pExtTimeNodeContainer, *(oTm.tnLst));
|
||||
}
|
||||
|
||||
if (oRec.m_haveBuildList &&
|
||||
!oRec.m_pBuildListContainer->n_arrRgChildRec.empty())
|
||||
{
|
||||
oTm.bldLst = new PPTX::Logic::BldLst();
|
||||
ConvertCRecordBuildListContainerToBldLst(oRec.m_pBuildListContainer, *(oTm.bldLst));
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
41
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter.h
Normal file
41
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Timing.h"
|
||||
#include "../Records/SlideProgTagsContainer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
void ConvertPP10SlideBinaryTagExtensionToTiming(PPT_FORMAT::CRecordPP10SlideBinaryTagExtension &oRec, PPTX::Logic::Timing &oTm);
|
||||
}
|
||||
|
||||
133
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Anim.h
Normal file
133
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/Anim.h
Normal file
@ -0,0 +1,133 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Anim.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CBhvr.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAnim(CRecordExtTimeNodeContainer* pETNC, PPTX::Logic::Anim& oAnim)
|
||||
{
|
||||
auto& oldAnim = pETNC->m_pTimeAnimateBehavior;
|
||||
|
||||
if (oldAnim->m_oAnimateBehaviorAtom.m_bCalcModePropertyUsed)
|
||||
{
|
||||
oAnim.calcmode = oldAnim->m_oAnimateBehaviorAtom.m_nCalcMode;
|
||||
}
|
||||
|
||||
if (oldAnim->m_oAnimateBehaviorAtom.m_bValueTypePropertyUsed)
|
||||
{
|
||||
std::wstring valueType;
|
||||
switch (oldAnim->m_oAnimateBehaviorAtom.m_ValueType) {
|
||||
case TL_TABVT_Color: valueType = L"Color"; break;
|
||||
case TL_TABVT_Number: valueType = L"Number"; break;
|
||||
case TL_TABVT_String: valueType = L"String"; break;
|
||||
}
|
||||
if (!valueType.empty())
|
||||
{
|
||||
oAnim.valueType = new PPTX::Limit::TLValueType;
|
||||
oAnim.valueType = valueType;
|
||||
}
|
||||
}
|
||||
|
||||
// By
|
||||
if (oldAnim->m_oAnimateBehaviorAtom.m_bByPropertyUsed)
|
||||
{
|
||||
oAnim.by = oldAnim->m_oVarBy.m_Value;
|
||||
}
|
||||
// To
|
||||
if (oldAnim->m_oAnimateBehaviorAtom.m_bToPropertyUsed)
|
||||
{
|
||||
oAnim.to = oldAnim->m_oVarTo.m_Value;
|
||||
}
|
||||
//From
|
||||
if (oldAnim->m_oAnimateBehaviorAtom.m_bFromPropertyUsed)
|
||||
{
|
||||
oAnim.from = oldAnim->m_oVarFrom.m_Value;
|
||||
}
|
||||
|
||||
//// Writing childs
|
||||
|
||||
if (!oldAnim->m_oAnimateValueList.m_arrEntry.empty())
|
||||
oAnim.tavLst = new PPTX::Logic::TavLst;
|
||||
for (auto& animValue : oldAnim->m_oAnimateValueList.m_arrEntry)
|
||||
{
|
||||
PPTX::Logic::Tav tav;
|
||||
tav.val = new PPTX::Logic::AnimVariant;
|
||||
|
||||
tav.val->node_name = L"val";
|
||||
|
||||
if (animValue->m_pVarValue.is_init())
|
||||
switch (animValue->m_pVarValue->m_Type) {
|
||||
case TL_TVT_String:
|
||||
{
|
||||
tav.val->strVal = dynamic_cast<const CRecordTimeVariantString&>
|
||||
(animValue->m_pVarValue.get()).m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TVT_Bool:
|
||||
{
|
||||
tav.val->boolVal = dynamic_cast<const CRecordTimeVariantBool&>
|
||||
(animValue->m_pVarValue.get()).m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TVT_Int:
|
||||
{
|
||||
tav.val->intVal = dynamic_cast<const CRecordTimeVariantInt&>
|
||||
(animValue->m_pVarValue.get()).m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TVT_Float:
|
||||
{
|
||||
tav.val->fltVal = dynamic_cast<const CRecordTimeVariantFloat&>
|
||||
(animValue->m_pVarValue.get()).m_Value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
tav.tm = std::to_wstring(
|
||||
animValue->m_oTimeAnimationValueAtom.m_nTime * 100);
|
||||
|
||||
if (!animValue->m_VarFormula.m_Value.empty())
|
||||
{
|
||||
tav.fmla = animValue->m_VarFormula.m_Value;
|
||||
}
|
||||
|
||||
oAnim.tavLst->list.push_back(tav);
|
||||
}
|
||||
FillCBhvr(pETNC, oAnim.cBhvr);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,146 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SchemeClr.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Colors/SrgbClr.h"
|
||||
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimClr.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "../../Records/Animations/TimeVariant4Behavior.h"
|
||||
|
||||
#include "CBhvr.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
// TODO
|
||||
void FillAnimClr(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::AnimClr& oAnimClr)
|
||||
{
|
||||
auto& clrAtom = pETNC->m_pTimeColorBehavior->m_oColorBehaviorAtom;
|
||||
|
||||
FillCBhvr(pETNC, oAnimClr.cBhvr);
|
||||
|
||||
// Write Attributes
|
||||
if (pETNC->m_pTimeColorBehavior->m_oBehavior.m_havePropertyList){
|
||||
for (auto pRec : pETNC->m_pTimeColorBehavior->m_oBehavior.m_pPropertyList->m_arRecords)
|
||||
{
|
||||
if (pRec->m_oHeader.RecInstance == TL_TBPID_ColorColorModel)
|
||||
{
|
||||
auto oTimeColorModel = dynamic_cast<CRecordTimeColorModel*>(pRec);
|
||||
oAnimClr.clrSpc = new PPTX::Limit::TLColorSpace;
|
||||
std::wstring clrSpc;
|
||||
if (!clrAtom.m_fColorSpacePropertyUsed) clrSpc = L"rgb";
|
||||
else clrSpc = oTimeColorModel->m_Value ? L"hsl" : L"rgb";
|
||||
oAnimClr.clrSpc = clrSpc;
|
||||
}
|
||||
else if (pRec->m_oHeader.RecInstance == TL_TBPID_ColorDirection)
|
||||
{
|
||||
auto oTimeColorDirection = dynamic_cast<CRecordTimeColorDirection*>(pRec);
|
||||
oAnimClr.dir = new PPTX::Limit::TLColorDirection;
|
||||
std::wstring dir;
|
||||
if (!clrAtom.m_fDirectionPropertyUsed) dir = L"cw";
|
||||
else dir = oTimeColorDirection->m_Value ? L"ccw" : L"cw";
|
||||
oAnimClr.dir = dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (clrAtom.m_fByPropertyUsed)
|
||||
{
|
||||
if (clrAtom.m_sColorBy.model == 0) // RGB == 0
|
||||
{
|
||||
oAnimClr.byR = clrAtom.m_sColorBy.component0;
|
||||
oAnimClr.byG = clrAtom.m_sColorBy.component1;
|
||||
oAnimClr.byB = clrAtom.m_sColorBy.component2;
|
||||
}
|
||||
else if (clrAtom.m_sColorBy.model == 1) // HSL == 1
|
||||
{
|
||||
oAnimClr.byH = clrAtom.m_sColorBy.component0;
|
||||
oAnimClr.byS = clrAtom.m_sColorBy.component1;
|
||||
oAnimClr.byL = clrAtom.m_sColorBy.component2;
|
||||
}
|
||||
}
|
||||
|
||||
if (clrAtom.m_fFromPropertyUsed)
|
||||
{
|
||||
oAnimClr.from = *new PPTX::Logic::UniColor;
|
||||
if (clrAtom.m_sColorFrom.model == 0)
|
||||
{
|
||||
auto pSrgb = new PPTX::Logic::SrgbClr;
|
||||
pSrgb->red = clrAtom.m_sColorFrom.component0;
|
||||
pSrgb->green = clrAtom.m_sColorFrom.component1;
|
||||
pSrgb->blue = clrAtom.m_sColorFrom.component2;
|
||||
oAnimClr.from.Color = pSrgb;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto pScheme = new PPTX::Logic::SchemeClr;
|
||||
std::wstring strVal;
|
||||
UINT index = clrAtom.m_sColorFrom.component0;
|
||||
if (index >= 4 || index < 10)
|
||||
{
|
||||
strVal = L"accent" + std::to_wstring(index - 3);
|
||||
}
|
||||
pScheme->val = strVal;
|
||||
oAnimClr.from.Color = pScheme;
|
||||
}
|
||||
}
|
||||
|
||||
if (clrAtom.m_fToPropertyUsed)
|
||||
{
|
||||
oAnimClr.to = *new PPTX::Logic::UniColor;
|
||||
if (clrAtom.m_sColorTo.model == 0)
|
||||
{
|
||||
auto pSrgb = new PPTX::Logic::SrgbClr;
|
||||
pSrgb->red = clrAtom.m_sColorTo.component0;
|
||||
pSrgb->green = clrAtom.m_sColorTo.component1;
|
||||
pSrgb->blue = clrAtom.m_sColorTo.component2;
|
||||
oAnimClr.to.Color = pSrgb;
|
||||
}
|
||||
else
|
||||
{
|
||||
auto pScheme = new PPTX::Logic::SchemeClr;
|
||||
std::wstring strVal;
|
||||
UINT index = clrAtom.m_sColorTo.component0;
|
||||
if (index >= 4 || index < 10)
|
||||
{
|
||||
strVal = L"accent" + std::to_wstring(index - 3);
|
||||
}
|
||||
pScheme->val = strVal;
|
||||
oAnimClr.to.Color = pScheme;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimEffect.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CBhvr.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAnimEffect(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::AnimEffect& oAnim)
|
||||
{
|
||||
auto* bhvr = pETNC->m_pTimeEffectBehavior;
|
||||
oAnim.filter = bhvr->m_oVarType.m_Value;
|
||||
|
||||
if (bhvr->m_effectBehaviorAtom.m_bProgressPropertyUsed)
|
||||
{
|
||||
if (!oAnim.progress.is_init())
|
||||
oAnim.progress = new PPTX::Logic::AnimVariant;
|
||||
oAnim.progress->fltVal = bhvr->m_oVarProgress.m_Value;
|
||||
}
|
||||
|
||||
if (bhvr->m_effectBehaviorAtom.m_bRuntimeContextObsolete)
|
||||
{
|
||||
if (!oAnim.progress.is_init())
|
||||
oAnim.progress = new PPTX::Logic::AnimVariant;
|
||||
oAnim.progress->strVal = bhvr->m_oVarRuntimeContext.m_Value;
|
||||
}
|
||||
|
||||
if (bhvr->m_effectBehaviorAtom.m_bTransitionPropertyUsed)
|
||||
{
|
||||
oAnim.transition = bhvr->m_effectBehaviorAtom.m_nEffectTransition ?
|
||||
L"out" : L"in";
|
||||
}
|
||||
|
||||
FillCBhvr(pETNC, oAnim.cBhvr);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimMotion.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CBhvr.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAnimMotion(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::AnimMotion& oAnim)
|
||||
{
|
||||
if (!pETNC || !pETNC->m_pTimeMotionBehavior) return;
|
||||
|
||||
auto pMotion = pETNC->m_pTimeMotionBehavior;
|
||||
auto oAtom = pMotion->m_oMotionBehaviorAtom;
|
||||
|
||||
FillCBhvr(pETNC, oAnim.cBhvr);
|
||||
|
||||
if (oAtom.m_bFromPropertyUsed)
|
||||
{
|
||||
oAnim.fromX = oAtom.m_nXFROM;
|
||||
oAnim.fromY = oAtom.m_nYFROM;
|
||||
}
|
||||
if (oAtom.m_bToPropertyUsed)
|
||||
{
|
||||
oAnim.toX = oAtom.m_nXTO;
|
||||
oAnim.toY = oAtom.m_nYTO;
|
||||
}
|
||||
if (oAtom.m_bByPropertyUsed)
|
||||
{
|
||||
oAnim.byX = oAtom.m_nXBY;
|
||||
oAnim.byY = oAtom.m_nYBY;
|
||||
}
|
||||
|
||||
if (oAtom.m_bOriginPropertyUsed)
|
||||
{
|
||||
oAnim.origin = new PPTX::Limit::TLOrigin;
|
||||
oAnim.origin->set(oAtom.m_nBehaviorOrigin == 2 ?
|
||||
L"layout" : L"parent");
|
||||
}
|
||||
|
||||
if (!pMotion->m_pVarPath->m_Value.empty())
|
||||
oAnim.path = pMotion->m_pVarPath->m_Value;
|
||||
|
||||
|
||||
oAnim.pathEditMode = new PPTX::Limit::TLPathEditMode;
|
||||
oAnim.pathEditMode->set(oAtom.m_bEditRotationPropertyUsed ? L"fixed" : L"relative");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimRot.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CBhvr.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAnimRot(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::AnimRot& oAnim)
|
||||
{
|
||||
if (!pETNC || !pETNC->m_pTimeRotationBehavior) return;
|
||||
|
||||
auto pRot = pETNC->m_pTimeRotationBehavior;
|
||||
auto oAtom = pRot->m_oRotationBehaviorAtom;
|
||||
|
||||
FillCBhvr(pETNC, oAnim.cBhvr);
|
||||
|
||||
const auto mult = 60000;
|
||||
|
||||
if (oAtom.m_fByPropertyUsed)
|
||||
oAnim.by = oAtom.m_By * mult;
|
||||
if (oAtom.m_fToPropertyUsed)
|
||||
oAnim.to = oAtom.m_To * mult;
|
||||
if (oAtom.m_fFromPropertyUsed)
|
||||
oAnim.from = oAtom.m_From * mult;
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/AnimScale.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CBhvr.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAnimScale(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::AnimScale& oAnim)
|
||||
{
|
||||
if (!pETNC || !pETNC->m_pTimeScaleBehavior) return;
|
||||
|
||||
auto pScale = pETNC->m_pTimeScaleBehavior;
|
||||
auto oAtom = pScale->m_oScaleBehaviorAtom;
|
||||
|
||||
FillCBhvr(pETNC, oAnim.cBhvr);
|
||||
|
||||
const auto mult = 1000;
|
||||
if (oAtom.m_fByPropertyUsed)
|
||||
{
|
||||
oAnim.byX = oAtom.m_XBy * mult;
|
||||
oAnim.byY = oAtom.m_YBy * mult;
|
||||
}
|
||||
if (oAtom.m_fToPropertyUsed)
|
||||
{
|
||||
oAnim.toX = oAtom.m_XTo * mult;
|
||||
oAnim.toY = oAtom.m_YTo * mult;
|
||||
}
|
||||
if (oAtom.m_fFromPropertyUsed)
|
||||
{
|
||||
oAnim.fromX = oAtom.m_XFrom * mult;
|
||||
oAnim.fromY = oAtom.m_YFrom * mult;
|
||||
}
|
||||
|
||||
if (oAtom.m_fZoomContentsUsed)
|
||||
oAnim.zoomContents = oAtom.m_fZoomContents;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Audio.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillAudio(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::Audio& oAudio)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,138 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldLst.h"
|
||||
#include "BldP.h"
|
||||
#include "../../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldOleChart.h"
|
||||
#include "../../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldDgm.h"
|
||||
|
||||
#include "../Records/Animations/BuildListContainer.h"
|
||||
#include "../Records/Animations/ChartBuildContainer.h"
|
||||
#include "../Records/Animations/DiagramBuildContainer.h"
|
||||
#include "../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void ConvertCRecordBuildListContainerToBldLst(
|
||||
PPT_FORMAT::CRecordBuildListContainer *pBLC,
|
||||
PPTX::Logic::BldLst &oBL)
|
||||
{
|
||||
if (!pBLC)
|
||||
return;
|
||||
// Write p
|
||||
for (unsigned i = 0; i < pBLC->n_arrRgChildRec.size(); i++)
|
||||
{
|
||||
PPTX::Logic::BuildNodeBase oBuildNodeBase;
|
||||
switch ( pBLC->n_arrRgChildRec[i]->m_oHeader.RecType ) {
|
||||
case RT_ParaBuild:
|
||||
{
|
||||
CRecordParaBuildContainer* pRec =
|
||||
(CRecordParaBuildContainer*)pBLC->n_arrRgChildRec[i];
|
||||
PPTX::Logic::BldP* pBldP = new PPTX::Logic::BldP();
|
||||
FillBldP(pRec, *pBldP);
|
||||
|
||||
oBuildNodeBase.m_node = pBldP;
|
||||
break;
|
||||
}
|
||||
case RT_ChartBuild:
|
||||
{
|
||||
CRecordChartBuildContainer* pRec =
|
||||
(CRecordChartBuildContainer*)pBLC->n_arrRgChildRec[i];
|
||||
PPTX::Logic::BldOleChart* pBldC = new PPTX::Logic::BldOleChart();
|
||||
|
||||
pBldC->spid = std::to_wstring(pRec->m_oBuildAtom.m_nShapeIdRef);
|
||||
pBldC->grpId = (int)pRec->m_oBuildAtom.m_nBuildId;
|
||||
pBldC->uiExpand = pRec->m_oBuildAtom.m_fExpanded;
|
||||
|
||||
pBldC->animBg = pRec->m_oChartBuildAtom.m_fAnimBackground;
|
||||
|
||||
std::vector<std::wstring> ST_TLOleChartBuildType =
|
||||
{
|
||||
L"allAtOnce",
|
||||
L"series",
|
||||
L"category",
|
||||
L"seriesEl",
|
||||
L"categoryEl"
|
||||
};
|
||||
pBldC->bld = ST_TLOleChartBuildType[pRec->m_oChartBuildAtom.m_ChartBuild % 5];
|
||||
|
||||
oBuildNodeBase.m_node = pBldC;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_DiagramBuild:
|
||||
{
|
||||
CRecordDiagramBuildContainer* pRec =
|
||||
(CRecordDiagramBuildContainer*)pBLC->n_arrRgChildRec[i];
|
||||
PPTX::Logic::BldDgm* pBldD = new PPTX::Logic::BldDgm();
|
||||
|
||||
pBldD->spid = std::to_wstring(pRec->m_oBuildAtom.m_nShapeIdRef);
|
||||
pBldD->grpId = (int)pRec->m_oBuildAtom.m_nBuildId;
|
||||
pBldD->uiExpand = pRec->m_oBuildAtom.m_fExpanded;
|
||||
|
||||
std::vector<std::wstring> ST_TLDiagramBuildType =
|
||||
{
|
||||
L"whole",
|
||||
L"depthByNode",
|
||||
L"depthByBranch",
|
||||
L"breadthByNode",
|
||||
L"breadthByLvl",
|
||||
L"cw",
|
||||
L"cwIn",
|
||||
L"cwOut",
|
||||
L"ccw",
|
||||
L"ccwIn",
|
||||
L"ccwOut",
|
||||
L"inByRing",
|
||||
L"outByRing",
|
||||
L"up",
|
||||
L"down",
|
||||
L"allAtOnce",
|
||||
L"cust"
|
||||
};
|
||||
pBldD->bld = ST_TLDiagramBuildType[pRec->m_oDiagramBuildAtom.m_oDiagramBuild % 17];
|
||||
|
||||
oBuildNodeBase.m_node = pBldD;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
oBL.list.push_back(oBuildNodeBase);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/BldP.h"
|
||||
|
||||
|
||||
#include "../Records/Animations/BuildListContainer.h"
|
||||
#include "../Records/Animations/ChartBuildContainer.h"
|
||||
#include "../Records/Animations/DiagramBuildContainer.h"
|
||||
#include "../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillBldP(PPT_FORMAT::CRecordParaBuildContainer *pPBC,
|
||||
PPTX::Logic::BldP &oBP)
|
||||
{
|
||||
|
||||
oBP.spid = std::to_wstring(pPBC->m_oBuildAtom.m_nShapeIdRef);
|
||||
oBP.grpId = (int)pPBC->m_oBuildAtom.m_nBuildId;
|
||||
oBP.uiExpand = pPBC->m_oBuildAtom.m_fExpanded;
|
||||
|
||||
oBP.advAuto = std::to_wstring(pPBC->m_oParaBuildAtom.m_nDelayTime);
|
||||
oBP.animBg = pPBC->m_oParaBuildAtom.m_fAnimBackground;
|
||||
oBP.rev = pPBC->m_oParaBuildAtom.m_fReverse;
|
||||
oBP.autoUpdateAnimBg = pPBC->m_oParaBuildAtom.m_fAutomatic;
|
||||
|
||||
std::vector<std::wstring> ST_TLParaBuildType =
|
||||
{
|
||||
L"allAtOnce",
|
||||
L"p",
|
||||
L"cust",
|
||||
L"whole"
|
||||
};
|
||||
oBP.build = ST_TLParaBuildType[pPBC->m_oParaBuildAtom.m_nParaBuild % 4];
|
||||
}
|
||||
}
|
||||
127
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/CBhvr.h
Normal file
127
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/CBhvr.h
Normal file
@ -0,0 +1,127 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CBhvr.h"
|
||||
#include "TgtEl.h"
|
||||
#include "CTn.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void ConvertCRecordTimeSetBehaviorContainerToCBhvr(CRecordTimeSetBehaviorContainer *pOld, PPTX::Logic::CBhvr &oBhvr)
|
||||
{
|
||||
if (!pOld) return;
|
||||
|
||||
if (!pOld->m_oBehavior.m_pStringList->m_arrRgChildRec.empty())
|
||||
{
|
||||
oBhvr.attrNameLst = new PPTX::Logic::AttrNameLst();
|
||||
}
|
||||
for (const auto& oldAttr : pOld->m_oBehavior.m_pStringList->m_arrRgChildRec)
|
||||
{
|
||||
PPTX::Logic::AttrName addAttr;
|
||||
addAttr.text = oldAttr.m_Value;
|
||||
oBhvr.attrNameLst->list.push_back(addAttr);
|
||||
|
||||
}
|
||||
|
||||
oBhvr.tgtEl.spTgt = new PPTX::Logic::SpTgt();
|
||||
oBhvr.tgtEl.spTgt->spid =
|
||||
std::to_wstring(pOld->m_oBehavior.
|
||||
m_oClientVisualElement.
|
||||
m_oVisualShapeAtom.m_nObjectIdRef);
|
||||
}
|
||||
|
||||
// TODO
|
||||
void FillCBhvr(CRecordExtTimeNodeContainer *pETNC, PPTX::Logic::CBhvr &oBhvr)
|
||||
{
|
||||
CRecordTimeBehaviorContainer* bhvr = nullptr;
|
||||
if (pETNC->m_haveSetBehavior) bhvr = &(pETNC->m_pTimeSetBehavior->m_oBehavior);
|
||||
else if (pETNC->m_haveEffectBehavior) bhvr = &(pETNC->m_pTimeEffectBehavior->m_oBehavior);
|
||||
else if (pETNC->m_haveAnimateBehavior) bhvr = &(pETNC->m_pTimeAnimateBehavior->m_oBehavior);
|
||||
else if (pETNC->m_haveColorBehavior) bhvr = &(pETNC->m_pTimeColorBehavior->m_oBehavior);
|
||||
else if (pETNC->m_haveMotionBehavior) bhvr = &(pETNC->m_pTimeMotionBehavior->m_oTimeBehavior);
|
||||
else if (pETNC->m_haveRotationBehavior) bhvr = &(pETNC->m_pTimeRotationBehavior->m_oBehavior);
|
||||
else if (pETNC->m_haveScaleBehavior) bhvr = &(pETNC->m_pTimeScaleBehavior->m_oBehavior);
|
||||
else bhvr = &(pETNC->m_pTimeCommandBehavior->m_oBevavior);
|
||||
|
||||
//// Atom ////
|
||||
|
||||
// additive
|
||||
if (bhvr->m_oBehaviorAtom.m_bAdditivePropertyUsed) {
|
||||
oBhvr.additive = new PPTX::Limit::TLAdditive;
|
||||
oBhvr.additive = bhvr->m_oBehaviorAtom.m_nBehaviorAdditive ?
|
||||
L"repl" : L"base";
|
||||
}
|
||||
|
||||
// accumulate - MUST be 0
|
||||
// xfrmType - MUST be 0
|
||||
|
||||
|
||||
if (bhvr->m_haveStringList)
|
||||
{
|
||||
if (!bhvr->m_pStringList->m_arrRgChildRec.empty())
|
||||
{
|
||||
oBhvr.attrNameLst = new PPTX::Logic::AttrNameLst();
|
||||
}
|
||||
for (const auto& oldAttr : bhvr->m_pStringList->m_arrRgChildRec)
|
||||
{
|
||||
PPTX::Logic::AttrName addAttr;
|
||||
addAttr.text = oldAttr.m_Value;
|
||||
oBhvr.attrNameLst->list.push_back(addAttr);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
FillCTn(pETNC, oBhvr.cTn);
|
||||
|
||||
if (bhvr->m_oClientVisualElement.m_bVisualShapeAtom)
|
||||
{
|
||||
oBhvr.tgtEl.spTgt = new PPTX::Logic::SpTgt();
|
||||
oBhvr.tgtEl.spTgt->spid =
|
||||
std::to_wstring(bhvr->
|
||||
m_oClientVisualElement.
|
||||
m_oVisualShapeAtom.m_nObjectIdRef);
|
||||
|
||||
if (bhvr->m_oClientVisualElement.m_oVisualShapeAtom.m_nData2 != 0xFFFFFFFF &&
|
||||
bhvr->m_oClientVisualElement.m_oVisualShapeAtom.m_nData1 != 0xFFFFFFFF)
|
||||
{
|
||||
oBhvr.tgtEl.spTgt->txEl = new PPTX::Logic::TxEl;
|
||||
oBhvr.tgtEl.spTgt->txEl->charRg = true;
|
||||
oBhvr.tgtEl.spTgt->txEl->st = bhvr->m_oClientVisualElement.m_oVisualShapeAtom.m_nData1;
|
||||
oBhvr.tgtEl.spTgt->txEl->end = bhvr->m_oClientVisualElement.m_oVisualShapeAtom.m_nData2;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
276
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/CTn.h
Normal file
276
ASCOfficePPTFile/PPTFormatLib/PPTXWriter/TimingConverter/CTn.h
Normal file
@ -0,0 +1,276 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/CTn.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
#include "TnChildren.h"
|
||||
#include "Cond.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
unsigned gcTn_ID = 1;
|
||||
|
||||
void ConvertTnChild(CRecordExtTimeNodeContainer *pETNC, PPTX::Logic::TimeNodeBase &oChild);
|
||||
|
||||
void FillCTn(CRecordExtTimeNodeContainer *pETNC, PPTX::Logic::CTn &oCTn)
|
||||
{
|
||||
oCTn.id = gcTn_ID++;
|
||||
|
||||
if (pETNC->m_haveTimePropertyList && !pETNC->m_pTimePropertyList->m_bEmtyNode)
|
||||
{
|
||||
for (auto* pRec : pETNC->m_pTimePropertyList->m_arrElements)
|
||||
{
|
||||
TimePropertyID4TimeNode VariableType = ( TimePropertyID4TimeNode ) pRec->m_oHeader.RecInstance;
|
||||
|
||||
switch ( VariableType )
|
||||
{
|
||||
case TL_TPID_Display:
|
||||
{
|
||||
oCTn.display = (bool)dynamic_cast<CRecordTimeDisplayType*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_MasterPos:
|
||||
{
|
||||
oCTn.masterRel = new PPTX::Limit::TLMasterRelation;
|
||||
oCTn.masterRel = dynamic_cast<CRecordTimeMasterRelType*>(pRec)->m_Value ?
|
||||
L"sameClick" : L"nextClick";
|
||||
break;
|
||||
}
|
||||
case TL_TPID_SubType: break;
|
||||
case TL_TPID_EffectID:
|
||||
{
|
||||
oCTn.presetID = dynamic_cast<CRecordTimeEffectID*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_EffectDir:
|
||||
{
|
||||
oCTn.presetSubtype = dynamic_cast<CRecordTimeEffectDir*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_EffectType:
|
||||
{
|
||||
// Write presetClass
|
||||
std::wstring presetClass;
|
||||
switch (dynamic_cast<CRecordTimeEffectType*>(pRec)->m_Value) {
|
||||
case 0: break;
|
||||
case 1: presetClass = L"entr"; break;
|
||||
case 2: presetClass = L"exit"; break;
|
||||
case 3: presetClass = L"emph"; break;
|
||||
case 4: presetClass = L"path"; break;
|
||||
case 5: presetClass = L"verb"; break;
|
||||
case 6: presetClass = L"mediacall"; break;
|
||||
}
|
||||
if (!presetClass.empty())
|
||||
{
|
||||
oCTn.presetClass = new PPTX::Limit::TLPresetClass;
|
||||
oCTn.presetClass = presetClass;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case TL_TPID_AfterEffect:
|
||||
{
|
||||
oCTn.afterEffect = (bool)dynamic_cast<CRecordTimeAfterEffect*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_SlideCount: break;
|
||||
case TL_TPID_TimeFilter:
|
||||
{
|
||||
oCTn.tmFilter = dynamic_cast<CRecordTimeNodeTimeFilter*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_EventFilter:
|
||||
{
|
||||
oCTn.evtFilter = dynamic_cast<CRecordTimeEventFilter*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_HideWhenStopped: break;
|
||||
case TL_TPID_GroupID:
|
||||
{
|
||||
oCTn.grpId = dynamic_cast<CRecordTimeGroupID*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_EffectNodeType:
|
||||
{
|
||||
// Write nodeType
|
||||
std::wstring nodeType;
|
||||
switch (dynamic_cast<CRecordTimeEffectNodeType*>(pRec)->m_Value)
|
||||
{
|
||||
case 1: nodeType = L"clickEffect"; break;
|
||||
case 2: nodeType = L"withEffect"; break;
|
||||
case 3: nodeType = L"afterEffect"; break;
|
||||
case 4: nodeType = L"mainSeq"; break;
|
||||
case 5: nodeType = L"interactiveSeq"; break;
|
||||
case 6: nodeType = L"clickPar"; break;
|
||||
case 7: nodeType = L"withGroup"; break;
|
||||
case 8: nodeType = L"afterGroup"; break;
|
||||
case 9: nodeType = L"tmRoot"; break;
|
||||
}
|
||||
if (!nodeType.empty())
|
||||
{
|
||||
oCTn.nodeType = new PPTX::Limit::TLNodeType;
|
||||
oCTn.nodeType = nodeType;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case TL_TPID_PlaceholderNode:
|
||||
{
|
||||
oCTn.nodePh = (bool)dynamic_cast<CRecordTimePlaceholderNode*>(pRec)->m_Value;
|
||||
break;
|
||||
}
|
||||
case TL_TPID_MediaVolume: break;
|
||||
case TL_TPID_MediaMute: break;
|
||||
case TL_TPID_ZoomToFullScreen: break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Reading TimeNodeAtom
|
||||
const auto& oTimeNodeAtom = pETNC->m_oTimeNodeAtom;
|
||||
|
||||
// Write restart
|
||||
if (oTimeNodeAtom.m_fRestartProperty)
|
||||
oCTn.restart = PPTX::Limit::TLRestart(oTimeNodeAtom.m_dwRestart) ;
|
||||
|
||||
|
||||
// Write fill
|
||||
if (oTimeNodeAtom.m_fFillProperty)
|
||||
oCTn.fill = PPTX::Limit::TLNodeFillType(oTimeNodeAtom.m_dwFill);
|
||||
|
||||
// Write dur
|
||||
if (oTimeNodeAtom.m_fDurationProperty)
|
||||
{
|
||||
if (oTimeNodeAtom.m_nDuration == -1)
|
||||
oCTn.dur = L"indefinite";
|
||||
else
|
||||
oCTn.dur = std::to_wstring(oTimeNodeAtom.m_nDuration);
|
||||
}
|
||||
|
||||
|
||||
//// Write Children ////
|
||||
|
||||
|
||||
if (!pETNC->m_haveSequenceAtom)
|
||||
{
|
||||
// Write stCondLst
|
||||
if (pETNC->m_arrRgBeginTimeCondition.empty() == false)
|
||||
{
|
||||
oCTn.stCondLst = new PPTX::Logic::CondLst;
|
||||
oCTn.stCondLst->node_name = L"stCondLst";
|
||||
}
|
||||
for (auto* oldCond : pETNC->m_arrRgBeginTimeCondition) {
|
||||
PPTX::Logic::Cond cond;
|
||||
cond.node_name = L"cond";
|
||||
FillCond(oldCond, cond);
|
||||
oCTn.stCondLst->list.push_back(cond);
|
||||
}
|
||||
|
||||
|
||||
// Write endCondLst
|
||||
if (pETNC->m_arrRgEndTimeCondition.empty() == false)
|
||||
{
|
||||
oCTn.endCondLst = new PPTX::Logic::CondLst;
|
||||
oCTn.endCondLst->node_name = L"endCondLst";
|
||||
}
|
||||
for (auto* oldCond : pETNC->m_arrRgEndTimeCondition) {
|
||||
PPTX::Logic::Cond cond;
|
||||
cond.node_name = L"cond";
|
||||
FillCond(oldCond, cond);
|
||||
oCTn.endCondLst->list.push_back(cond);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// Write childTnLst
|
||||
if (pETNC->m_arrRgExtTimeNodeChildren.empty() == false)
|
||||
{
|
||||
oCTn.childTnLst = new PPTX::Logic::ChildTnLst;
|
||||
}
|
||||
for (auto* oldChild : pETNC->m_arrRgExtTimeNodeChildren) {
|
||||
PPTX::Logic::TimeNodeBase child;
|
||||
ConvertTnChild(oldChild, child);
|
||||
oCTn.childTnLst->list.push_back(child);
|
||||
}
|
||||
|
||||
|
||||
// Write iterate
|
||||
if (pETNC->m_haveIterateDataAtom)
|
||||
{
|
||||
auto* iter = pETNC->m_pTimeIterateDataAtom;
|
||||
oCTn.iterate = new PPTX::Logic::Iterate;
|
||||
|
||||
std::wstring type[] = {L"el", L"wd", L"lt"};
|
||||
if (iter->m_fIterateTypePropertyUsed)
|
||||
oCTn.iterate->type = type[iter->m_nIterateType % 3];
|
||||
|
||||
if (iter->m_fIterateDirectionPropertyUsed)
|
||||
oCTn.iterate->backwards = (bool)iter->m_nIterateDirection;
|
||||
|
||||
if (iter->m_fIterateIntervalTypePropertyUsed)
|
||||
oCTn.iterate->tmAbs = std::to_wstring(iter->m_nIterateIntervalType);
|
||||
|
||||
if (iter->m_fIterateIntervalPropertyUsed)
|
||||
oCTn.iterate->tmPct = iter->m_nIterateInterval;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// Write endSync
|
||||
if (pETNC->m_haveTimeEndSyncTime)
|
||||
{
|
||||
auto* sync = pETNC->m_pTimeEndSyncTimeCondition;
|
||||
oCTn.endSync = new PPTX::Logic::Cond;
|
||||
oCTn.endSync->node_name = L"endSync";
|
||||
FillCond(sync, *(oCTn.endSync));
|
||||
}
|
||||
|
||||
|
||||
// Write subTnLst
|
||||
if (pETNC->m_arrRgSubEffect.empty() == false)
|
||||
{
|
||||
oCTn.subTnLst = new PPTX::Logic::TnLst;
|
||||
}
|
||||
// TODO
|
||||
// for (auto* oldChild : pETNC->m_arrRgSubEffect) {
|
||||
// PPTX::Logic::TimeNodeBase child;
|
||||
// ConvertCRecordExtTimeNodeContainerToTnLst(oldChild, child);
|
||||
// oCTn.childTnLst->list.push_back(child);
|
||||
// }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Cmd.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillCmd(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::Cmd& oCmd)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,82 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../Common/DocxFormat/Source/Base/Nullable.h"
|
||||
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillCond(PPT_FORMAT::CRecordTimeConditionContainer *oldCond, PPTX::Logic::Cond &cond)
|
||||
{
|
||||
if (oldCond->m_oTimeConditionAtom.m_nTimeDelay != -1)
|
||||
cond.delay = std::to_wstring(oldCond->m_oTimeConditionAtom.m_nTimeDelay);
|
||||
else
|
||||
cond.delay = L"indefinite";
|
||||
|
||||
if (oldCond->m_oTimeConditionAtom.m_TriggerObject == TL_TOT_RuntimeNodeRef ||
|
||||
oldCond->m_oTimeConditionAtom.m_TriggerObject == TL_TOT_TimeNode)
|
||||
{
|
||||
cond.tn = oldCond->m_oTimeConditionAtom.m_nID;
|
||||
}
|
||||
|
||||
std::wstring str;
|
||||
|
||||
switch (oldCond->m_oTimeConditionAtom.m_nTriggerEvent)
|
||||
{
|
||||
case 1: str = L"onBegin"; break;
|
||||
case 3: str = L"begin"; break;
|
||||
case 4: str = L"end"; break;
|
||||
case 5: str = L"onClick"; break;
|
||||
case 7: str = L"onMouseOver"; break;
|
||||
case 9: str = L"onNext"; break;
|
||||
case 10: str = L"onPrev"; break;
|
||||
case 11: str = L"onStopAudio"; break;
|
||||
default: str.clear();
|
||||
}
|
||||
|
||||
if (!str.empty()) cond.evt = str;
|
||||
|
||||
// TODO
|
||||
// if (oldCond->m_oVisualElement.)
|
||||
// cond.tgtEl = new PPTX::Logic::TgtEl();
|
||||
|
||||
if (oldCond->m_oVisualElement.m_bVisualPageAtom &&
|
||||
oldCond->m_oVisualElement.m_oVisualPageAtom.m_eType == TL_TVET_Page)
|
||||
{
|
||||
cond.tgtEl = new PPTX::Logic::TgtEl;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Par.h"
|
||||
#include "CTn.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillPar(CRecordExtTimeNodeContainer* pETNC, PPTX::Logic::Par &oPar)
|
||||
{
|
||||
FillCTn(pETNC, oPar.cTn);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
#include "CTn.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillSeq(PPT_FORMAT::CRecordExtTimeNodeContainer *pETNC,
|
||||
PPTX::Logic::Seq& oSec)
|
||||
{
|
||||
if (pETNC->m_haveSequenceAtom)
|
||||
{
|
||||
if (pETNC->m_pTimeSequenceDataAtom->m_fConcurrencyPropertyUsed)
|
||||
oSec.concurrent = (bool)pETNC->m_pTimeSequenceDataAtom->m_nConcurrency;
|
||||
if (pETNC->m_pTimeSequenceDataAtom->m_fNextActionPropertyUsed)
|
||||
oSec.nextAc = pETNC->m_pTimeSequenceDataAtom->m_nNextAction ? L"seek" : L"none";
|
||||
if (pETNC->m_pTimeSequenceDataAtom->m_fPreviousActionPropertyUsed)
|
||||
oSec.prevAc = pETNC->m_pTimeSequenceDataAtom->m_nPreviousAction ? L"skipTimed" : L"none";
|
||||
}
|
||||
FillCTn(pETNC, oSec.cTn);
|
||||
|
||||
// Fill cond lists
|
||||
if (!pETNC->m_arrRgEndTimeCondition.empty())
|
||||
{
|
||||
oSec.prevCondLst = new PPTX::Logic::CondLst();
|
||||
oSec.prevCondLst->node_name = L"prevCondLst";
|
||||
}
|
||||
for (auto oldCond : pETNC->m_arrRgEndTimeCondition)
|
||||
{
|
||||
PPTX::Logic::Cond cond;
|
||||
cond.node_name = L"cond";
|
||||
FillCond(oldCond, cond);
|
||||
oSec.prevCondLst->list.push_back(cond);
|
||||
}
|
||||
|
||||
if (!pETNC->m_arrRgBeginTimeCondition.empty())
|
||||
{
|
||||
oSec.nextCondLst = new PPTX::Logic::CondLst();
|
||||
oSec.nextCondLst->node_name = L"nextCondLst";
|
||||
}
|
||||
for (auto oldCond : pETNC->m_arrRgBeginTimeCondition)
|
||||
{
|
||||
PPTX::Logic::Cond cond;
|
||||
cond.node_name = L"cond";
|
||||
FillCond(oldCond, cond);
|
||||
oSec.nextCondLst->list.push_back(cond);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Set.h"
|
||||
#include "CBhvr.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillSet(PPT_FORMAT::CRecordExtTimeNodeContainer *pETNC,
|
||||
PPTX::Logic::Set& oSet)
|
||||
{
|
||||
if (!pETNC->m_haveSetBehavior) return;
|
||||
|
||||
// TODO
|
||||
FillCBhvr(pETNC, oSet.cBhvr);
|
||||
oSet.to = new PPTX::Logic::AnimVariant();
|
||||
oSet.to->node_name = L"to";
|
||||
oSet.to->strVal = pETNC->m_pTimeSetBehavior->m_oVarTo.m_Value;
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TgtEl.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
// Convert
|
||||
}
|
||||
@ -0,0 +1,124 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/TimeNodeBase.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/WrapperWritingElement.h"
|
||||
|
||||
#include "Anim.h"
|
||||
#include "AnimClr.h"
|
||||
#include "AnimEffect.h"
|
||||
#include "AnimMotion.h"
|
||||
#include "AnimRot.h"
|
||||
#include "AnimScale.h"
|
||||
#include "Audio.h"
|
||||
#include "Cmd.h"
|
||||
#include "Par.h"
|
||||
#include "Seq.h"
|
||||
#include "Set.h"
|
||||
#include "Video.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void ConvertTnChild(CRecordExtTimeNodeContainer *pETNC, PPTX::Logic::TimeNodeBase &oChild)
|
||||
{
|
||||
if (pETNC->m_haveSequenceAtom)
|
||||
{
|
||||
auto seq = new PPTX::Logic::Seq;
|
||||
FillSeq(pETNC, *seq);
|
||||
oChild.m_node = seq;
|
||||
}
|
||||
else if (pETNC->m_haveSetBehavior)
|
||||
{
|
||||
auto set = new PPTX::Logic::Set;
|
||||
FillSet(pETNC, *set);
|
||||
oChild.m_node = set;
|
||||
}
|
||||
else if (pETNC->m_haveAnimateBehavior)
|
||||
{
|
||||
auto anim = new PPTX::Logic::Anim;
|
||||
FillAnim(pETNC, *anim);
|
||||
oChild.m_node = anim;
|
||||
}
|
||||
else if (pETNC->m_haveColorBehavior)
|
||||
{
|
||||
auto animClr = new PPTX::Logic::AnimClr;
|
||||
FillAnimClr(pETNC, *animClr);
|
||||
oChild.m_node = animClr;
|
||||
}
|
||||
else if (pETNC->m_haveEffectBehavior)
|
||||
{
|
||||
auto animEffect = new PPTX::Logic::AnimEffect;
|
||||
FillAnimEffect(pETNC, *animEffect);
|
||||
oChild.m_node = animEffect;
|
||||
}
|
||||
else if (pETNC->m_haveMotionBehavior)
|
||||
{
|
||||
// TODO
|
||||
auto motion = new PPTX::Logic::AnimMotion;
|
||||
FillAnimMotion(pETNC, *motion);
|
||||
oChild.m_node = motion;
|
||||
}
|
||||
else if (pETNC->m_haveRotationBehavior)
|
||||
{
|
||||
// TODO
|
||||
auto rot = new PPTX::Logic::AnimRot;
|
||||
FillAnimRot(pETNC, *rot);
|
||||
oChild.m_node = rot;
|
||||
}
|
||||
else if (pETNC->m_haveScaleBehavior)
|
||||
{
|
||||
// TODO
|
||||
auto scale = new PPTX::Logic::AnimScale;
|
||||
FillAnimScale(pETNC, *scale);
|
||||
oChild.m_node = scale;
|
||||
}
|
||||
else if (pETNC->m_haveCommandBehavior)
|
||||
{
|
||||
// TODO
|
||||
auto cmd = new PPTX::Logic::Cmd;
|
||||
FillCmd(pETNC, *cmd);
|
||||
oChild.m_node = cmd;
|
||||
}
|
||||
else if (pETNC->m_oTimeNodeAtom.m_dwType == TL_TNT_Parallel)
|
||||
{
|
||||
auto par = new PPTX::Logic::Par;
|
||||
FillPar(pETNC, *par);
|
||||
oChild.m_node = par;
|
||||
}
|
||||
else
|
||||
{
|
||||
// ? Audio Video
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLRestart.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Limit/TLNodeFillType.h"
|
||||
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Par.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Seq.h"
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Set.h"
|
||||
|
||||
|
||||
#include "../../../ASCOfficePPTXFile/PPTXFormat/WrapperWritingElement.h"
|
||||
|
||||
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
#include "TnChildren.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void ConvertCRecordExtTimeNodeContainerToTnLst(
|
||||
PPT_FORMAT::CRecordExtTimeNodeContainer *pETNC,
|
||||
PPTX::Logic::TnLst &oTnLst)
|
||||
{
|
||||
if (!pETNC)
|
||||
return;
|
||||
|
||||
gcTn_ID = 1;
|
||||
PPTX::Logic::TimeNodeBase oChildTimeNodeBase;
|
||||
ConvertTnChild(pETNC, oChildTimeNodeBase);
|
||||
oTnLst.list.push_back(oChildTimeNodeBase);
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../../../ASCOfficePPTXFile/PPTXFormat/Logic/Timing/Video.h"
|
||||
#include "../../Records/Animations/ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
void FillVideo(
|
||||
CRecordExtTimeNodeContainer* pETNC,
|
||||
PPTX::Logic::Video& oVideo)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
@ -58,7 +58,7 @@ public:
|
||||
while(0 != nCount)
|
||||
{
|
||||
if (NULL != m_arUsers[nCount-1])
|
||||
delete m_arUsers[nCount-1];
|
||||
RELEASEOBJECT(m_arUsers[nCount-1])
|
||||
|
||||
m_arUsers.pop_back();
|
||||
--nCount;
|
||||
@ -99,7 +99,8 @@ public:
|
||||
|
||||
if (bResult == false)
|
||||
{
|
||||
delete pInfo;
|
||||
delete pInfo;
|
||||
pInfo = NULL; // may not work
|
||||
|
||||
if (m_oCurrentUser.m_bIsEncrypt)
|
||||
return false;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -32,7 +32,8 @@
|
||||
#pragma once
|
||||
#include "ClassesAtom.h"
|
||||
|
||||
#include "../Records/Animations/AnimationTypes.h"
|
||||
#include "../Records/Animations/_includer.h"
|
||||
#include "../Enums/_includer.h"
|
||||
#include "../Records/ExObjListContainer.h"
|
||||
#include "../Records/CryptSession10Container.h"
|
||||
|
||||
@ -80,7 +81,7 @@ public:
|
||||
CSlideInfo* m_pHandoutMasterWrapper;
|
||||
|
||||
std::vector<CRecordBlipStoreContainer*> m_arrBlipStore;
|
||||
std::vector<CFontProperty> m_arrFonts;
|
||||
std::vector<CFontProperty> m_arrFonts;
|
||||
|
||||
PPT_FORMAT::CTextStyles m_oDefaultTextStyle;
|
||||
|
||||
@ -95,7 +96,7 @@ public:
|
||||
CRecordVbaProjectStg* m_VbaProjectStg;
|
||||
int m_lIndexThisUser;
|
||||
|
||||
std::map <_UINT32, Animations::CSlideTimeLine*> m_mapAnimations;
|
||||
// std::map <_UINT32, Animations::CSlideTimeLine*> m_mapAnimations;
|
||||
|
||||
double m_nWriteSlideTimeOffset;
|
||||
double m_nWriteSlideTime;
|
||||
@ -156,6 +157,8 @@ public:
|
||||
void LoadExVideo(CRecordsContainer* pExObject);
|
||||
void LoadExAudio(CRecordsContainer* pExObject);
|
||||
|
||||
void LoadAutoNumbering(CRecordGroupShapeContainer* pGroupContainer, PPT_FORMAT::CTheme* pTheme);
|
||||
|
||||
void CreateDefaultStyle(PPT_FORMAT::CTextStyles& pStyle, PPT_FORMAT::CTheme* pTheme);
|
||||
void CorrectColorScheme(std::vector<CColor>& oScheme)
|
||||
{
|
||||
@ -212,7 +215,7 @@ public:
|
||||
|
||||
int ind = 0;
|
||||
if (layoutRecord.m_pPlaceHolderID[0] == 13 && layoutRecord.m_pPlaceHolderID[1] != 0) ind++;
|
||||
ePlaceholderType phbody = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[ind];
|
||||
PlaceholderEnum phbody = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[ind];
|
||||
switch (phbody)
|
||||
{
|
||||
case PT_MasterTitle: type = L"title"; name = L"Title and Object Slide"; break;
|
||||
@ -230,8 +233,8 @@ public:
|
||||
}break;
|
||||
case SL_TwoColumns:
|
||||
{
|
||||
ePlaceholderType leftType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[1];
|
||||
ePlaceholderType rightType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[2];
|
||||
PlaceholderEnum leftType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[1];
|
||||
PlaceholderEnum rightType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[2];
|
||||
|
||||
name = L"Two Objects Slide";
|
||||
type = L"twoObj";
|
||||
@ -279,8 +282,8 @@ public:
|
||||
}break;
|
||||
case SL_TwoRows:
|
||||
{
|
||||
ePlaceholderType topType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[1];
|
||||
ePlaceholderType bottomType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[2];
|
||||
PlaceholderEnum topType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[1];
|
||||
PlaceholderEnum bottomType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[2];
|
||||
|
||||
if (topType == PT_Body && bottomType == PT_Object)
|
||||
{
|
||||
@ -295,7 +298,7 @@ public:
|
||||
}break;
|
||||
case SL_ColumnTwoRows:
|
||||
{
|
||||
ePlaceholderType leftType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[1];
|
||||
PlaceholderEnum leftType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[1];
|
||||
|
||||
if (leftType == PT_Object)
|
||||
{
|
||||
@ -308,7 +311,7 @@ public:
|
||||
}break;
|
||||
case SL_TwoRowsColumn:
|
||||
{
|
||||
ePlaceholderType rightType = (ePlaceholderType)layoutRecord.m_pPlaceHolderID[2];
|
||||
PlaceholderEnum rightType = (PlaceholderEnum)layoutRecord.m_pPlaceHolderID[2];
|
||||
|
||||
if (rightType == PT_Object)
|
||||
{
|
||||
|
||||
@ -49,7 +49,7 @@ typedef BYTE BOOL1;
|
||||
#define RECORD_TYPE_DOCUMENT_ATOM 1001
|
||||
#define RECORD_TYPE_ENDDOCUMENT 1002
|
||||
#define RECORD_TYPE_SLIDE 1006
|
||||
#define RECORD_TYPE_SLIDE_ATOM 1007
|
||||
#define RECORD_TYPE_SLIDE_ATOM 1007
|
||||
#define RECORD_TYPE_NOTES 1008
|
||||
#define RECORD_TYPE_NOTES_ATOM 1009
|
||||
#define RECORD_TYPE_ENVIRONMENT 1010
|
||||
@ -58,7 +58,7 @@ typedef BYTE BOOL1;
|
||||
#define RECORD_TYPE_MAINMASTER 1016
|
||||
#define RECORD_TYPE_SSSLIDE_INFO_ATOM 1017
|
||||
#define RECORD_TYPE_SLIDE_VIEWINFO 1018
|
||||
#define RECORD_TYPE_GUIDE_ATOM 1019
|
||||
#define RECORD_TYPE_GUIDE_ATOM 1019
|
||||
#define RECORD_TYPE_VIEWINFO 1020
|
||||
#define RECORD_TYPE_VIEWINFO_ATOM 1021
|
||||
#define RECORD_TYPE_SLIDE_VIEWINFO_ATOM 1022
|
||||
@ -73,8 +73,8 @@ typedef BYTE BOOL1;
|
||||
#define RECORD_TYPE_EXOBJLIST_ATOM 1034
|
||||
#define RECORD_TYPE_PPDRAWING_GROUP 1035
|
||||
#define RECORD_TYPE_PPDRAWING 1036
|
||||
#define RT_RoundTripTheme12Atom 1038
|
||||
#define RT_RoundTripColorMapping12Atom 1039
|
||||
#define RECORD_TYPE_RoundTripTheme12Atom 1038
|
||||
#define RECORD_TYPE_RoundTripColorMapping12Atom 1039
|
||||
#define RECORD_TYPE_NAMEDSHOWS 1040
|
||||
#define RECORD_TYPE_NAMEDSHOW 1041
|
||||
#define RECORD_TYPE_NAMEDSHOW_SLIDES 1042
|
||||
@ -189,15 +189,18 @@ typedef BYTE BOOL1;
|
||||
#define RECORD_TYPE_PERSISTPTRINCREMENTALBLOCK 6002
|
||||
#define RECORD_TYPE_GSCALING_ATOM2 10001
|
||||
#define RECORD_TYPE_GRCOLOR_ATOM2 10002
|
||||
#define RECORD_TYPE_CHARTBUILD_ATOM 11013
|
||||
#define RECORD_TYPE_DIAGRAMBUILD 11014
|
||||
#define RECORD_TYPE_DIAGRAMBUILD_ATOM 11015
|
||||
|
||||
// Records ~12000 seem to be related to the Comments used in PPT 2000/XP
|
||||
// (Comments in PPT97 are normal Escher text boxes)
|
||||
//// Records ~12000 seem to be related to the Comments used in PPT 2000/XP
|
||||
//// (Comments in PPT97 are normal Escher text boxes)
|
||||
#define RECORD_TYPE_COMMENT2000 12000
|
||||
#define RECORD_TYPE_COMMENT2000ATOM 12001
|
||||
#define RECORD_TYPE_COMMENT2000SUMMARY 12004
|
||||
#define RECORD_TYPE_COMMENT2000SUMMARYATOM 12005
|
||||
|
||||
// Records ~12050 seem to be related to Document Encryption
|
||||
//// Records ~12050 seem to be related to Document Encryption
|
||||
#define RECORD_TYPE_DOCUMENT_ENCRYPTION_ATOM 0x2F14
|
||||
|
||||
|
||||
@ -246,208 +249,6 @@ typedef BYTE BOOL1;
|
||||
#define RECORD_TYPE_ESCHER_OLEOBJECT 0xF11F
|
||||
#define RECORD_TYPE_ESCHER_SECONDARY_OPT 0xF121
|
||||
#define RECORD_TYPE_ESCHER_TETRIARY_OPT 0xF122
|
||||
#define RECORD_TYPE_TIME_NODE 0xF127
|
||||
#define RECORD_TYPE_TIME_ANIMATE_BEHAVIOR 0xF134
|
||||
|
||||
/// Animations defines ///
|
||||
|
||||
#define RECORD_PROG_TAGS 0x1388 // RT_ProgTags SlideProgTagsContainer
|
||||
#define RECORD_PROG_STRING_TAG 0x1389 // RT_ProgStringTag ProgStringTagContainer
|
||||
#define RECORD_PROG_BINARY_TAG 0x138A // RT_ProgBinaryTag SlideProgTagsContainer-DocProgTagsContainer-ShapeProgTagsContainer
|
||||
#define RECORD_TEXT_MASTER_STYLE10_ATOM 0x0FB2 // RT_TextMasterStyle10Atom TextMasterStyle10Atom
|
||||
|
||||
|
||||
static std::string GetRecordName(_UINT32 dwType)
|
||||
{
|
||||
std::string strName = ("Unknown");
|
||||
|
||||
switch (dwType)
|
||||
{
|
||||
case RECORD_TYPE_UNKNOWN : { strName = ("Unknown"); break; }
|
||||
case RECORD_TYPE_DOCUMENT : { strName = ("Document"); break; }
|
||||
case RECORD_TYPE_DOCUMENT_ATOM : { strName = ("DocumentAtom"); break; }
|
||||
case RECORD_TYPE_ENDDOCUMENT : { strName = ("EndDocument"); break; }
|
||||
case RECORD_TYPE_SLIDE : { strName = ("Slide"); break; }
|
||||
case RECORD_TYPE_SLIDE_ATOM : { strName = ("SlideAtom"); break; }
|
||||
case RECORD_TYPE_NOTES : { strName = ("Notes"); break; }
|
||||
case RECORD_TYPE_NOTES_ATOM : { strName = ("NotesAtom"); break; }
|
||||
case RECORD_TYPE_ENVIRONMENT : { strName = ("Environment"); break; }
|
||||
case RECORD_TYPE_SLIDE_PERSIST_ATOM : { strName = ("SlidePersistAtom"); break; }
|
||||
case RECORD_TYPE_SSLIDE_LAYOUT_ATOM : { strName = ("SSlideLayoutAtom"); break; }
|
||||
case RECORD_TYPE_MAINMASTER : { strName = ("MainMaster"); break; }
|
||||
case RECORD_TYPE_SSSLIDE_INFO_ATOM : { strName = ("SSSlideInfoAtom"); break; }
|
||||
case RECORD_TYPE_SLIDE_VIEWINFO : { strName = ("SlideViewInfo"); break; }
|
||||
case RECORD_TYPE_GUIDE_ATOM : { strName = ("GuideAtom"); break; }
|
||||
case RECORD_TYPE_VIEWINFO : { strName = ("ViewInfo"); break; }
|
||||
case RECORD_TYPE_VIEWINFO_ATOM : { strName = ("ViewInfoAtom"); break; }
|
||||
case RECORD_TYPE_SLIDE_VIEWINFO_ATOM : { strName = ("SlideViewInfoAtom"); break; }
|
||||
case RECORD_TYPE_VBAINFO : { strName = ("VBAInfo"); break; }
|
||||
case RECORD_TYPE_VBAINFO_ATOM : { strName = ("VBAInfoAtom"); break; }
|
||||
case RECORD_TYPE_SSDOCINFO_ATOM : { strName = ("SSDocInfoAtom"); break; }
|
||||
case RECORD_TYPE_SUMMARY : { strName = ("Summary"); break; }
|
||||
case RECORD_TYPE_DOC_ROUTING_SLIP : { strName = ("DocRoutingSlip"); break; }
|
||||
case RECORD_TYPE_OUTLINE_VIEWINFO : { strName = ("OutlineViewInfo"); break; }
|
||||
case RECORD_TYPE_SORTER_VIEWINFO : { strName = ("SorterViewInfo"); break; }
|
||||
case RECORD_TYPE_EXOBJLIST : { strName = ("ExObjList"); break; }
|
||||
case RECORD_TYPE_EXOBJLIST_ATOM : { strName = ("ExObjectListAtom"); break; }
|
||||
case RECORD_TYPE_PPDRAWING_GROUP : { strName = ("PPDrawingGroup"); break; }
|
||||
case RECORD_TYPE_PPDRAWING : { strName = ("PPDrawing"); break; }
|
||||
case RECORD_TYPE_NAMEDSHOWS : { strName = ("NamedShows"); break; }
|
||||
case RECORD_TYPE_NAMEDSHOW : { strName = ("NamedShow"); break; }
|
||||
case RECORD_TYPE_NAMEDSHOW_SLIDES : { strName = ("NamedShowSlides"); break; }
|
||||
case RECORD_TYPE_SHEET_PROPERTIES : { strName = ("SheetProperties"); break; }
|
||||
case RECORD_TYPE_LIST : { strName = ("List"); break; }
|
||||
case RECORD_TYPE_FONTCOLLECTION : { strName = ("FontCollection"); break; }
|
||||
case RECORD_TYPE_BOOKMARKCOLLECTION : { strName = ("BookmarkCollection"); break; }
|
||||
case RECORD_TYPE_SOUNDCOLLECTION : { strName = ("SoundCollection"); break; }
|
||||
case RECORD_TYPE_SOUNDCOLL_ATOM : { strName = ("SoundCollAtom"); break; }
|
||||
case RECORD_TYPE_SOUND : { strName = ("Sound"); break; }
|
||||
case RECORD_TYPE_SOUNDDATA : { strName = ("SoundData"); break; }
|
||||
case RECORD_TYPE_BOOKMARK_SEED_ATOM : { strName = ("BookMarkSeedAtom"); break; }
|
||||
case RECORD_TYPE_COLOR_SCHEME_ATOM : { strName = ("ColorSchemeAtom"); break; }
|
||||
case RECORD_TYPE_OESHAPE_ATOM : { strName = ("OEShapeAtom"); break; }
|
||||
case RECORD_TYPE_EX_OBJREF_ATOM : { strName = ("ExObjRefAtom"); break; }
|
||||
case RECORD_TYPE_OEPLACEHOLDER_ATOM : { strName = ("PlaceHolderAtom"); break; }
|
||||
case RECORD_TYPE_GPOPUBLICINT_ATOM : { strName = ("GpOpublicintAtom"); break; }
|
||||
case RECORD_TYPE_GRCOLOR : { strName = ("GrColor"); break; }
|
||||
case RECORD_TYPE_GRECT_ATOM : { strName = ("GRectAtom"); break; }
|
||||
case RECORD_TYPE_GRATIO_ATOM : { strName = ("GRatioAtom"); break; }
|
||||
case RECORD_TYPE_GSCALING_ATOM : { strName = ("GScalingAtom"); break; }
|
||||
case RECORD_TYPE_GPOINT_ATOM : { strName = ("GPointAtom"); break; }
|
||||
case RECORD_TYPE_OUTLINE_TEXTREF_ATOM : { strName = ("OutlineTextRefAtom"); break; }
|
||||
case RECORD_TYPE_TEXT_HEADER_ATOM : { strName = ("TextHeaderAtom"); break; }
|
||||
case RECORD_TYPE_TEXT_CHARS_ATOM : { strName = ("TextCharsAtom"); break; }
|
||||
case RECORD_TYPE_STYLE_TEXTPROP_ATOM : { strName = ("StyleTextPropAtom"); break; }
|
||||
case RECORD_TYPE_BASE_TEXTPROP_ATOM : { strName = ("BaseTextPropAtom"); break; }
|
||||
case RECORD_TYPE_TXMASTERSTYLE_ATOM : { strName = ("TxMasterStyleAtom"); break; }
|
||||
case RECORD_TYPE_TXCFSTYLE_ATOM : { strName = ("TxCfStyleAtom"); break; }
|
||||
case RECORD_TYPE_TXPFSTYLE_ATOM : { strName = ("TxPfStyleAtom"); break; }
|
||||
case RECORD_TYPE_TEXTRULER_ATOM : { strName = ("TextRulerAtom"); break; }
|
||||
case RECORD_TYPE_TEXTBOOKMARK_ATOM : { strName = ("TextBookmarkAtom"); break; }
|
||||
case RECORD_TYPE_TEXTBYTES_ATOM : { strName = ("TextBytesAtom"); break; }
|
||||
case RECORD_TYPE_TXSISTYLE_ATOM : { strName = ("TxSiStyleAtom"); break; }
|
||||
case RECORD_TYPE_TEXTSPECINFO_ATOM : { strName = ("TextSpecInfoAtom"); break; }
|
||||
case RECORD_TYPE_DEFAULTRULER_ATOM : { strName = ("DefaultRulerAtom"); break; }
|
||||
case RECORD_TYPE_FONTENTITY_ATOM : { strName = ("FontEntityAtom"); break; }
|
||||
case RECORD_TYPE_FONT_EMBEDDEDDATA : { strName = ("FontEmbeddedData"); break; }
|
||||
case RECORD_TYPE_CSTRING : { strName = ("CString"); break; }
|
||||
case RECORD_TYPE_METAFILE : { strName = ("Metafile"); break; }
|
||||
case RECORD_TYPE_EXOLEOBJ_ATOM : { strName = ("ExOleObjAtom"); break; }
|
||||
case RECORD_TYPE_SRKINSOKU : { strName = ("SrKinsoku"); break; }
|
||||
case RECORD_TYPE_HANDOUT : { strName = ("Handout"); break; }
|
||||
case RECORD_TYPE_EXEMBED : { strName = ("Exembed"); break; }
|
||||
case RECORD_TYPE_EXEMBEDATOM : { strName = ("ExembedAtom"); break; }
|
||||
case RECORD_TYPE_EXLINK : { strName = ("ExLink"); break; }
|
||||
case RECORD_TYPE_BOOKMARK_ENTITY_ATOM : { strName = ("BookmarkEntityAtom"); break; }
|
||||
case RECORD_TYPE_EXLINK_ATOM : { strName = ("ExLinkAtom"); break; }
|
||||
case RECORD_TYPE_SRKINSOKU_ATOM : { strName = ("SrKinsokuAtom"); break; }
|
||||
case RECORD_TYPE_EXHYPERLINK_ATOM : { strName = ("ExHyperlinkAtom"); break; }
|
||||
case RECORD_TYPE_EXHYPERLINK : { strName = ("ExHyperlink"); break; }
|
||||
case RECORD_TYPE_SLIDENUMBER_META_ATOM : { strName = ("SlideNumberMcAtom"); break; }
|
||||
case RECORD_TYPE_HEADERSFOOTERS : { strName = ("HeadersFooters"); break; }
|
||||
case RECORD_TYPE_HEADERSFOOTERS_ATOM : { strName = ("HeadersFootersAtom"); break; }
|
||||
case RECORD_TYPE_TXINTERACTIVEINFO_ATOM : { strName = ("TxInteractiveInfoAtom"); break; }
|
||||
case RECORD_TYPE_CHARFORMAT_ATOM : { strName = ("CharFormatAtom"); break; }
|
||||
case RECORD_TYPE_PARAFORMAT_ATOM : { strName = ("ParaFormatAtom"); break; }
|
||||
case RECORD_TYPE_RECOLORINFO_ATOM : { strName = ("ReColorInfoAtom"); break; }
|
||||
case RECORD_TYPE_EXQUICKTIMEMOVIE : { strName = ("ExQuicktimeMovie"); break; }
|
||||
case RECORD_TYPE_EXQUICKTIMEMOVIEDATA : { strName = ("ExQuicktimeMovieData"); break; }
|
||||
case RECORD_TYPE_EXCONTROL : { strName = ("ExControl"); break; }
|
||||
case RECORD_TYPE_SLIDELISTWITHTEXT : { strName = ("SlidelistWithText"); break; }
|
||||
case RECORD_TYPE_INTERACTIVEINFO : { strName = ("InteractiveInfo"); break; }
|
||||
case RECORD_TYPE_INTERACTIVEINFO_ATOM : { strName = ("InteractiveInfoAtom"); break; }
|
||||
case RECORD_TYPE_USER_EDIT_ATOM : { strName = ("UserEditAtom"); break; }
|
||||
case RECORD_TYPE_CURRENTUSER_ATOM : { strName = ("CurrentUserAtom"); break; }
|
||||
case RECORD_TYPE_DATETIME_META_ATOM : { strName = ("DateTimeMCAtom"); break; }
|
||||
case RECORD_TYPE_GENERICDATE_META_ATOM : { strName = ("GenericDateMCAtom"); break; }
|
||||
case RECORD_TYPE_FOOTER_META_ATOM : { strName = ("FooterMCAtom"); break; }
|
||||
case RECORD_TYPE_EXCONTROL_ATOM : { strName = ("ExControlAtom"); break; }
|
||||
case RECORD_TYPE_EX_MEDIA_ATOM : { strName = ("ExMediaAtom"); break; }
|
||||
case RECORD_TYPE_EX_VIDEOCONTAINER : { strName = ("ExVideoContainer"); break; }
|
||||
case RECORD_TYPE_EX_AVIMOVIE : { strName = ("ExAviMovie"); break; }
|
||||
case RECORD_TYPE_EX_MCIMOVIE : { strName = ("ExMciMovie"); break; }
|
||||
case RECORD_TYPE_EX_MIDIAUDIO : { strName = ("ExMidAudio"); break; }
|
||||
case RECORD_TYPE_EX_CDAUDIO : { strName = ("ExCDAudio"); break; }
|
||||
case RECORD_TYPE_EX_WAVAUDIOEMBEDDED : { strName = ("ExWavAudioEmbedded"); break; }
|
||||
case RECORD_TYPE_EX_WAVAUDIOLINK : { strName = ("ExWavAudioLink"); break; }
|
||||
case RECORD_TYPE_EX_OLEOBJSTG : { strName = ("ExOleObjStg"); break; }
|
||||
case RECORD_TYPE_EX_CDAUDIO_ATOM : { strName = ("ExCDAudioAtom"); break; }
|
||||
case RECORD_TYPE_EXWAVAUDIOEMBEDDED_ATOM : { strName = ("ExWavAudioEmbeddedAtom"); break; }
|
||||
case RECORD_TYPE_ANIMATIONINFO : { strName = ("AnimationInfo"); break; }
|
||||
case RECORD_TYPE_ANIMATIONINFO_ATOM : { strName = ("AnimationInfoAtom"); break; }
|
||||
case RECORD_TYPE_RTFDATETIME_META_ATOM : { strName = ("RtfDateTimeMCAtom"); break; }
|
||||
case RECORD_TYPE_PROGTAGS : { strName = ("ProgTags"); break; }
|
||||
case RECORD_TYPE_PROGSTRINGTAG : { strName = ("ProgStringTag"); break; }
|
||||
case RECORD_TYPE_PROGBINARYTAG : { strName = ("ProgBinaryTag"); break; }
|
||||
case RECORD_TYPE_BINARYTAGDATA : { strName = ("BinaryTagData"); break; }
|
||||
case RECORD_TYPE_PRPUBLICINTOPTIONS : { strName = ("PrPublicIntOptions"); break; }
|
||||
case RECORD_TYPE_PERSISTPTRFULLBLOCK : { strName = ("PersistPtrFullBlock"); break; }
|
||||
case RECORD_TYPE_PERSISTPTRINCREMENTALBLOCK : { strName = ("PersistPtrIncrementalBlock"); break; }
|
||||
case RECORD_TYPE_GSCALING_ATOM2 : { strName = ("GScalingAtom2"); break; }
|
||||
case RECORD_TYPE_GRCOLOR_ATOM2 : { strName = ("GRColorAtom2"); break; }
|
||||
case RECORD_TYPE_NORMALVIEW_SETINFO9 : { strName = ("NormalViewSetInfoAtom"); break; }
|
||||
|
||||
// Records ~12000 seem to be related to the Comments used in PPT 2000/XP
|
||||
// (Comments in PPT97 are normal Escher text boxes)
|
||||
case RECORD_TYPE_COMMENT2000 : { strName = ("Comment2000"); break; }
|
||||
case RECORD_TYPE_COMMENT2000ATOM : { strName = ("Comment2000Atom"); break; }
|
||||
case RECORD_TYPE_COMMENT2000SUMMARY : { strName = ("Comment2000Summary"); break; }
|
||||
case RECORD_TYPE_COMMENT2000SUMMARYATOM : { strName = ("Comment2000SummaryAtom"); break; }
|
||||
|
||||
// Records ~12050 seem to be related to Document Encryption
|
||||
case RECORD_TYPE_DOCUMENT_ENCRYPTION_ATOM : { strName = ("DocumentEncryption"); break; }
|
||||
|
||||
case RECORD_TYPE_ORIGINALMAINMASTERID : { strName = ("OriginalMainMasterID"); break; }
|
||||
case RECORD_TYPE_COMPOSITEMASTERID : { strName = ("CompositeMasterID"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPCONTENTMASTERINFO12 : { strName = ("RoundTripContentMasterInfo12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPSHAPEID12 : { strName = ("RoundTripShapeID12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPHFPLACEHOLDER12 : { strName = ("RoundTripHfPlaceholder12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPCONTENTMASTERID : { strName = ("RoundTripContentMasterID"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPOARTTEXTSTYLES12 : { strName = ("RoundTripOartTextStyles12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPSHAPECHECKSUMFORCUSTOMLAYOUTS12 : { strName = ("RoundTripShapeChecksumForCustomLayouts12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPNOTESMASTERTEXTSTYLES12 : { strName = ("RoundTripNotesMasterTextStyles12"); break; }
|
||||
case RECORD_TYPE_ROUNDTRIPCUSTOMTABLESTYLES12 : { strName = ("RoundTripCustomTableStyles12"); break; }
|
||||
|
||||
case RECORD_TYPE_ESCHER_DGG_CONTAINER : { strName = ("DrawingGroupContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_DGG : { strName = ("DrawingGroupRecord"); break; }
|
||||
case RECORD_TYPE_ESCHER_CLSID : { strName = ("CLSID_Record"); break; }
|
||||
case RECORD_TYPE_ESCHER_OPT : { strName = ("OPT"); break; }
|
||||
case RECORD_TYPE_ESCHER_BSTORE_CONTAINER : { strName = ("BlipStoreContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_BSE : { strName = ("BlipStoreEntry"); break; }
|
||||
case RECORD_TYPE_ESCHER_BLIP_START : { strName = ("BlipStart"); break; }
|
||||
case RECORD_TYPE_ESCHER_BLIP_END : { strName = ("BlipEnd"); break; }
|
||||
case RECORD_TYPE_ESCHER_DG_CONTAINER : { strName = ("DrawingContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_DG : { strName = ("DrawingRecord"); break; }
|
||||
case RECORD_TYPE_ESCHER_REGROUPITEMS : { strName = ("RegGroupItems"); break; }
|
||||
case RECORD_TYPE_ESCHER_COLORSCHEME : { strName = ("ColorSheme"); break; }
|
||||
case RECORD_TYPE_ESCHER_SPGR_CONTAINER : { strName = ("GroupShapeContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_SP_CONTAINER : { strName = ("ShapeContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_SPGR : { strName = ("GroupShapeRecord"); break; }
|
||||
case RECORD_TYPE_ESCHER_SP : { strName = ("ShapeRecord"); break; }
|
||||
case RECORD_TYPE_ESCHER_TEXTBOX : { strName = ("TextBox"); break; }
|
||||
case RECORD_TYPE_ESCHER_CLIENTTEXTBOX : { strName = ("ClientTextBox"); break; }
|
||||
case RECORD_TYPE_ESCHER_ANCHOR : { strName = ("Anchor"); break; }
|
||||
case RECORD_TYPE_ESCHER_CHILDANCHOR : { strName = ("ChildAnchor"); break; }
|
||||
case RECORD_TYPE_ESCHER_CLIENTANCHOR : { strName = ("ClientAnchor"); break; }
|
||||
case RECORD_TYPE_ESCHER_CLIENTDATA : { strName = ("ClientData"); break; }
|
||||
case RECORD_TYPE_ESCHER_SOLVERCONTAINER : { strName = ("SolverContainer"); break; }
|
||||
case RECORD_TYPE_ESCHER_CONNECTORRULE : { strName = ("ConnectorRule"); break; }
|
||||
case RECORD_TYPE_ESCHER_ALIGNRULE : { strName = ("AlignRule"); break; }
|
||||
case RECORD_TYPE_ESCHER_ARCRULE : { strName = ("ArcRule"); break; }
|
||||
case RECORD_TYPE_ESCHER_CLIENTRULE : { strName = ("ClientRule"); break; }
|
||||
case RECORD_TYPE_ESCHER_CALLOUTRULE : { strName = ("CallOutRule"); break; }
|
||||
case RECORD_TYPE_ESCHER_SELECTION : { strName = ("Selection"); break; }
|
||||
case RECORD_TYPE_ESCHER_COLORMRU : { strName = ("ColorMRU"); break; }
|
||||
case RECORD_TYPE_ESCHER_DELETEDPSPL : { strName = ("DeletedPSPL"); break; }
|
||||
case RECORD_TYPE_ESCHER_SPLITMENUCOLORS : { strName = ("SplitMenuColors"); break; }
|
||||
case RECORD_TYPE_ESCHER_OLEOBJECT : { strName = ("OleObject"); break; }
|
||||
case RECORD_TYPE_ESCHER_SECONDARY_OPT : { strName = ("SecondaryOPT"); break; }
|
||||
case RECORD_TYPE_ESCHER_TETRIARY_OPT : { strName = ("TetriaryOPT"); break; }
|
||||
default: break;
|
||||
};
|
||||
|
||||
if ((dwType > RECORD_TYPE_ESCHER_BLIP_START) && (dwType < RECORD_TYPE_ESCHER_BLIP_END))
|
||||
{
|
||||
strName = ("Blip");
|
||||
}
|
||||
|
||||
return strName;
|
||||
}
|
||||
|
||||
@ -34,7 +34,7 @@
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.h"
|
||||
#include "SlidePersist.h"
|
||||
#include "../../../OfficeUtils/src/OfficeUtils.h"
|
||||
|
||||
//#include "../Records/OfficeArtClientData.h"
|
||||
|
||||
using namespace PPT_FORMAT;
|
||||
|
||||
|
||||
@ -32,8 +32,10 @@
|
||||
#include "Records.h"
|
||||
|
||||
#include "../Records/RecordsIncluder.h"
|
||||
#include "../Records/Animations/_includer.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
std::wstring CUnknownRecord::ReadStringW(const CFStreamPtr &pStream, int lLen)
|
||||
{
|
||||
@ -160,157 +162,486 @@ void CRecordsContainer::ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pS
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#define RECORDNAME_BY_TYPE(RECORD_TYPE, RECORD_NAME) \
|
||||
case RECORD_TYPE: { name = RECORD_NAME; break;} \
|
||||
|
||||
std::string GetRecordName(PPT_FORMAT::RecordType dwType)
|
||||
{
|
||||
std::string name;
|
||||
switch (dwType) {
|
||||
RECORDNAME_BY_TYPE ( RT_Document, "DocumentContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocumentAtom, "DocumentAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EndDocumentAtom, "EndDocumentAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Slide, "SlideContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideAtom, "SlideAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Notes, "Notes" )
|
||||
RECORDNAME_BY_TYPE ( RT_NotesAtom, "NotesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Environment, "Environment" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlidePersistAtom, "SlidePersistAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_MainMaster, "MainMaster" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideShowSlideInfoAtom, "SlideShowSlideInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideViewInfo, "SlideViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_GuideAtom, "GuideAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ViewInfoAtom, "ViewInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideViewInfoAtom, "SlideViewInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VbaInfo, "VbaInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_VbaInfoAtom, "VbaInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideShowDocInfoAtom, "SlideShowDocInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Summary, "Summary" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocRoutingSlipAtom, "DocRoutingSlipAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineViewInfo, "OutlineViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_SorterViewInfo, "SorterViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectList, "ExternalObjectList" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectListAtom, "ExternalObjectListAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DrawingGroup, "DrawingGroup" )
|
||||
RECORDNAME_BY_TYPE ( RT_Drawing, "Drawing" )
|
||||
RECORDNAME_BY_TYPE ( RT_GridSpacing10Atom, "GridSpacing10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripTheme12Atom, "RoundTripTheme12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripColorMapping12Atom, "RoundTripColorMapping12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShows, "NamedShows" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShow, "NamedShow" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShowSlidesAtom, "NamedShowSlidesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_NotesTextViewInfo9, "NotesTextViewInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9, "NormalViewSetInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9Atom, "NormalViewSetInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripOriginalMainMasterId12Atom, "RoundTripOriginalMainMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripCompositeMasterId12Atom, "RoundTripCompositeMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterInfo12Atom, "RoundTripContentMasterInfo12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripShapeId12Atom, "RoundTripShapeId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripHFPlaceholder12Atom, "RoundTripHFPlaceholder12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterId12Atom, "RoundTripContentMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripOArtTextStyles12Atom, "RoundTripOArtTextStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripHeaderFooterDefaults12Atom, "RoundTripHeaderFooterDefaults12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripDocFlags12Atom, "RoundTripDocFlags12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripShapeCheckSumForCL12Atom, "RoundTripShapeCheckSumForCL12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripNotesMasterTextStyles12Atom, "RoundTripNotesMasterTextStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripCustomTableStyles12Atom, "RoundTripCustomTableStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_List, "List" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontCollection, "FontCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontCollection10, "FontCollection10" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkCollection, "BookmarkCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundCollection, "SoundCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundCollectionAtom, "SoundCollectionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Sound, "Sound" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundDataBlob, "SoundDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkSeedAtom, "BookmarkSeedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ColorSchemeAtom, "ColorSchemeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_BlipCollection9, "BlipCollection9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BlipEntity9Atom, "BlipEntity9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectRefAtom, "ExternalObjectRefAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PlaceholderAtom, "PlaceholderAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ShapeAtom, "ShapeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ShapeFlags10Atom, "ShapeFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripNewPlaceholderId12Atom, "RoundTripNewPlaceholderId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextRefAtom, "OutlineTextRefAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextHeaderAtom, "TextHeaderAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextCharsAtom, "TextCharsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextPropAtom, "StyleTextPropAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_MasterTextPropAtom, "MasterTextPropAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyleAtom, "TextMasterStyleAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextCharFormatExceptionAtom, "TextCharFormatExceptionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextParagraphFormatExceptionAtom, "TextParagraphFormatExceptionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextRulerAtom, "TextRulerAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextBookmarkAtom, "TextBookmarkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextBytesAtom, "TextBytesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextSpecialInfoDefaultAtom, "TextSpecialInfoDefaultAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextSpecialInfoAtom, "TextSpecialInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DefaultRulerAtom, "DefaultRulerAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp9Atom, "StyleTextProp9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyle9Atom, "TextMasterStyle9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps9, "OutlineTextProps9" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextPropsHeader9Atom, "OutlineTextPropsHeader9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextDefaults9Atom, "TextDefaults9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp10Atom, "StyleTextProp10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyle10Atom, "TextMasterStyle10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps10, "OutlineTextProps10" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextDefaults10Atom, "TextDefaults10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps11, "OutlineTextProps11" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp11Atom, "StyleTextProp11Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEntityAtom, "FontEntityAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEmbedDataBlob, "FontEmbedDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_CString, "CString" )
|
||||
RECORDNAME_BY_TYPE ( RT_MetaFile, "MetaFile" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleObjectAtom, "ExternalOleObjectAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Kinsoku, "Kinsoku" )
|
||||
RECORDNAME_BY_TYPE ( RT_Handout, "Handout" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleEmbed, "ExternalOleEmbed" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleEmbedAtom, "ExternalOleEmbedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleLink, "ExternalOleLink" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkEntityAtom, "BookmarkEntityAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleLinkAtom, "ExternalOleLinkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_KinsokuAtom, "KinsokuAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkAtom, "ExternalHyperlinkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlink, "ExternalHyperlink" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideNumberMetaCharAtom, "SlideNumberMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeadersFooters, "HeadersFooters" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeadersFootersAtom, "HeadersFootersAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextInteractiveInfoAtom, "TextInteractiveInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlink9, "ExternalHyperlink9" )
|
||||
RECORDNAME_BY_TYPE ( RT_RecolorInfoAtom, "RecolorInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleControl, "ExternalOleControl" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListWithText, "SlideListWithText" )
|
||||
RECORDNAME_BY_TYPE ( RT_AnimationInfoAtom, "AnimationInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_InteractiveInfo, "InteractiveInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_InteractiveInfoAtom, "InteractiveInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_UserEditAtom, "UserEditAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_CurrentUserAtom, "CurrentUserAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DateTimeMetaCharAtom, "DateTimeMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_GenericDateMetaCharAtom, "GenericDateMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeaderMetaCharAtom, "HeaderMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FooterMetaCharAtom, "FooterMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleControlAtom, "ExternalOleControlAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMediaAtom, "ExternalMediaAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalVideo, "ExternalVideo" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalAviMovie, "ExternalAviMovie" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMciMovie, "ExternalMciMovie" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMidiAudio, "ExternalMidiAudio" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalCdAudio, "ExternalCdAudio" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbedded, "ExternalWavAudioEmbedded" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioLink, "ExternalWavAudioLink" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleObjectStg, "ExternalOleObjectStg" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalCdAudioAtom, "ExternalCdAudioAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbeddedAtom, "ExternalWavAudioEmbeddedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_AnimationInfo, "AnimationInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_RtfDateTimeMetaCharAtom, "RtfDateTimeMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkFlagsAtom, "ExternalHyperlinkFlagsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgTags, "ProgTags" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgStringTag, "ProgStringTag" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgBinaryTag, "ProgBinaryTag" )
|
||||
RECORDNAME_BY_TYPE ( RT_BinaryTagDataBlob, "BinaryTagDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_PrintOptionsAtom, "PrintOptionsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PersistDirectoryAtom, "PersistDirectoryAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PresentationAdvisorFlags9Atom, "PresentationAdvisorFlags9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlDocInfo9Atom, "HtmlDocInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlPublishInfoAtom, "HtmlPublishInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlPublishInfo9, "HtmlPublishInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9, "BroadcastDocInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9Atom, "BroadcastDocInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EnvelopeFlags9Atom, "EnvelopeFlags9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EnvelopeData9Atom, "EnvelopeData9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VisualShapeAtom, "VisualShapeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HashCodeAtom, "HashCodeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VisualPageAtom, "VisualPageAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_BuildList, "BuildList" )
|
||||
RECORDNAME_BY_TYPE ( RT_BuildAtom, "BuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ChartBuild, "ChartBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_ChartBuildAtom, "ChartBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiagramBuild, "DiagramBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiagramBuildAtom, "DiagramBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ParaBuild, "ParaBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_ParaBuildAtom, "ParaBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LevelInfoAtom, "LevelInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripAnimationAtom12Atom, "RoundTripAnimationAtom12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripAnimationHashAtom12Atom, "RoundTripAnimationHashAtom12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Comment10, "Comment10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Comment10Atom, "Comment10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_CommentIndex10, "CommentIndex10" )
|
||||
RECORDNAME_BY_TYPE ( RT_CommentIndex10Atom, "CommentIndex10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LinkedShape10Atom, "LinkedShape10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LinkedSlide10Atom, "LinkedSlide10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideFlags10Atom, "SlideFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideTime10Atom, "SlideTime10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiffTree10, "DiffTree10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Diff10, "Diff10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Diff10Atom, "Diff10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListTableSize10Atom, "SlideListTableSize10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListEntry10Atom, "SlideListEntry10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListTable10, "SlideListTable10" )
|
||||
RECORDNAME_BY_TYPE ( RT_CryptSession10Container, "CryptSession10Container" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEmbedFlags10Atom, "FontEmbedFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FilterPrivacyFlags10Atom, "FilterPrivacyFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocToolbarStates10Atom, "DocToolbarStates10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PhotoAlbumInfo10Atom, "PhotoAlbumInfo10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SmartTagStore11Container, "SmartTagStore11Container" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfo12, "RoundTripSlideSyncInfo12" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfoAtom12, "RoundTripSlideSyncInfoAtom12" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeConditionContainer, "TimeConditionContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeNode, "TimeNode" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCondition, "TimeCondition" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeModifier, "TimeModifier" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeBehaviorContainer, "TimeBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimateBehaviorContainer, "TimeAnimateBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeColorBehaviorContainer, "TimeColorBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeEffectBehaviorContainer, "TimeEffectBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeMotionBehaviorContainer, "TimeMotionBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeRotationBehaviorContainer, "TimeRotationBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeScaleBehaviorContainer, "TimeScaleBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSetBehaviorContainer, "TimeSetBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCommandBehaviorContainer, "TimeCommandBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeBehavior, "TimeBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimateBehavior, "TimeAnimateBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeColorBehavior, "TimeColorBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeEffectBehavior, "TimeEffectBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeMotionBehavior, "TimeMotionBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeRotationBehavior, "TimeRotationBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeScaleBehavior, "TimeScaleBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSetBehavior, "TimeSetBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCommandBehavior, "TimeCommandBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeClientVisualElement, "TimeClientVisualElement" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimePropertyList, "TimePropertyList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeVariantList, "TimeVariantList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimationValueList, "TimeAnimationValueList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeIterateData, "TimeIterateData" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSequenceData, "TimeSequenceData" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeVariant, "TimeVariant" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimationValue, "TimeAnimationValue" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeExtTimeNodeContainer, "TimeExtTimeNodeContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSubEffectContainer, "TimeSubEffectContainer" )
|
||||
|
||||
RECORDNAME_BY_TYPE ( RTE_DGG_CONTAINER, "DGG_CONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BSTORE_CONTAINER, "BSTORE_CONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_DG_CONTAINER, "DG_CONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SPGR_CONTAINER, "SPGR_CONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SP_CONTAINER, "SP_CONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SOLVERCONTAINER, "SOLVERCONTAINER" )
|
||||
RECORDNAME_BY_TYPE ( RTE_DGG, "DGG" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BSE, "BSE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_DG, "DG" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SPGR, "SPGR" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SP, "SP" )
|
||||
RECORDNAME_BY_TYPE ( RTE_OPT, "OPT" )
|
||||
RECORDNAME_BY_TYPE ( RTE_TEXTBOX, "TEXTBOX" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CLIENTTEXTBOX, "CLIENTTEXTBOX" )
|
||||
RECORDNAME_BY_TYPE ( RTE_ANCHOR, "ANCHOR" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CHILDANCHOR, "CHILDANCHOR" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CLIENTANCHOR, "CLIENTANCHOR" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CLIENTDATA, "CLIENTDATA" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CONNECTORRULE, "CONNECTORRULE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_ALIGNRULE, "ALIGNRULE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_ARCRULE, "ARCRULE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CLIENTRULE, "CLIENTRULE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CLSID, "CLSID" )
|
||||
RECORDNAME_BY_TYPE ( RTE_CALLOUTRULE, "CALLOUTRULE" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_START, "BLIP_START" )
|
||||
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_EMF, "BLIP_EMF" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_WMF, "BLIP_WMF" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_PICT, "BLIP_PICT" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_JPEG, "BLIP_JPEG" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_PNG, "BLIP_PNG" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_DIB, "BLIP_DIB" )
|
||||
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_END, "BLIP_END" )
|
||||
RECORDNAME_BY_TYPE ( RTE_REGROUPITEMS, "REGROUPITEMS" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SELECTION, "SELECTION" )
|
||||
|
||||
RECORDNAME_BY_TYPE ( RTE_COLORMRU, "COLORMRU" )
|
||||
RECORDNAME_BY_TYPE ( RTE_DELETEDPSPL, "DELETEDPSPL" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SPLITMENUCOLORS, "SPLITMENUCOLORS" )
|
||||
RECORDNAME_BY_TYPE ( RTE_OLEOBJECT, "OLEOBJECT" )
|
||||
RECORDNAME_BY_TYPE ( RTE_COLORSCHEME, "COLORSCHEME" )
|
||||
RECORDNAME_BY_TYPE ( RTE_SECONDARY_OPT, "SECONDARY_OPT" )
|
||||
RECORDNAME_BY_TYPE ( RTE_TETRIARY_OPT, "TETRIARY_OPT" )
|
||||
RECORDNAME_BY_TYPE ( RTE_BLIP_TIFF, "BLIP_TIFF" )
|
||||
default:
|
||||
name = "UnknownRecord!";
|
||||
}
|
||||
return name;
|
||||
}
|
||||
|
||||
|
||||
IRecord* CreateByType(SRecordHeader oHeader)
|
||||
{
|
||||
|
||||
IRecord* pRecord = NULL;
|
||||
switch (oHeader.RecType)
|
||||
{
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SLIDELISTWITHTEXT , CRecordSlideListWithText)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_DOCUMENT_ATOM , CRecordDocumentAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ENDDOCUMENT , CRecordEndDocument)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_SSLIDE_LAYOUT_ATOM , CRecordSSlideLayoutAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SLIDE_ATOM , CRecordSlideAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_NOTES_ATOM , CRecordNotesAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SLIDE_PERSIST_ATOM , CRecordSlidePersistAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ENVIRONMENT , CRecordDocumentTextInfo)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_FONTCOLLECTION , CRecordFontCollection)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_FONTCOLLECTION10 , CRecordFontCollection)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordMasterPersistAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordNotesPersistAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SSSLIDE_INFO_ATOM , CSlideShowSlideInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_GUIDE_ATOM , CRecordGuideAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_VIEWINFO_ATOM , CRecordZoomViewInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_VIEWINFO_ATOM , CRecordNoZoomViewInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_VIEWINFO_ATOM , CRecordViewInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SLIDE_VIEWINFO_ATOM , CRecordSlideViewInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_VBAINFO_ATOM , CRecordVBAInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SSDOCINFO_ATOM , CRecordSSDocInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_DOC_ROUTING_SLIP , CRecordDocRoutingSlipAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXOBJLIST_ATOM , CRecordExObjListAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordGridSpacing10Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripTheme12Atom , CRecordRoundTripThemeAtom)
|
||||
CREATE_BY_TYPE(RT_RoundTripColorMapping12Atom , CRecordRoundTripColorMappingAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_NAMEDSHOW_SLIDES , CRecordNamedShowSlidesAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_SHEET_PROPERTIES , CRecordNormalViewSetInfoAtom)
|
||||
switch (oHeader.RecType)
|
||||
{
|
||||
CREATE_BY_TYPE(RT_AnimationInfo, CRecordAnimationInfoContainer)
|
||||
CREATE_BY_TYPE(RT_AnimationInfoAtom, CRecordAnimationInfoAtom)
|
||||
CREATE_BY_TYPE(RT_HashCodeAtom, CRecordHashCode10Atom)
|
||||
CREATE_BY_TYPE(RT_BuildList, CRecordBuildListContainer)
|
||||
CREATE_BY_TYPE(RT_ParaBuild, CRecordParaBuildContainer)
|
||||
CREATE_BY_TYPE(RT_ChartBuild, CRecordChartBuildContainer)
|
||||
CREATE_BY_TYPE(RT_DiagramBuild, CRecordDiagramBuildContainer)
|
||||
CREATE_BY_TYPE(RT_ParaBuildAtom, CRecordParaBuildAtom)
|
||||
CREATE_BY_TYPE(RT_LevelInfoAtom, CRecordLevelInfoAtom)
|
||||
CREATE_BY_TYPE(RT_ChartBuildAtom, CRecordChartBuildAtom)
|
||||
CREATE_BY_TYPE(RT_DiagramBuildAtom, CRecordDiagramBuildAtom)
|
||||
CREATE_BY_TYPE(RT_TimeExtTimeNodeContainer, CRecordExtTimeNodeContainer)
|
||||
CREATE_BY_TYPE(RT_TimeSubEffectContainer, CRecordSubEffectContainer)
|
||||
CREATE_BY_TYPE(RT_TimeNode, CRecordTimeNodeAtom)
|
||||
CREATE_BY_TYPE(RT_TimePropertyList, CRecordTimePropertyList4TimeNodeContainer)
|
||||
CREATE_BY_TYPE(RT_TimeAnimateBehaviorContainer, CRecordTimeAnimateBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeAnimateBehavior, CRecordTimeAnimateBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeAnimationValueList, CRecordTimeAnimationValueListContainer)
|
||||
CREATE_BY_TYPE(RT_TimeAnimationValue, CRecordTimeAnimationValueAtom)
|
||||
CREATE_BY_TYPE(RT_TimeBehaviorContainer, CRecordTimeBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeVariantList, CRecordTimeStringListContainer)
|
||||
CREATE_BY_TYPE(RT_TimeClientVisualElement, CRecordClientVisualElementContainer)
|
||||
CREATE_BY_TYPE(RT_VisualPageAtom, CRecordVisualPageAtom)
|
||||
// CREATE_BY_TYPE(RT_VisualShapeAtom, CRecordVisualShapeOrSoundAtom)
|
||||
// CREATE_BY_TYPE(RT_VisualShapeAtom, CRecordVisualSoundAtom)
|
||||
CREATE_BY_TYPE(RT_TimeColorBehaviorContainer, CRecordTimeColorBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeColorBehavior, CRecordTimeColorBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeEffectBehaviorContainer, CRecordTimeEffectBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeEffectBehavior, CRecordTimeEffectBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeMotionBehaviorContainer, CRecordTimeMotionBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeMotionBehavior, CRecordTimeMotionBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeRotationBehaviorContainer, CRecordTimeRotationBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeRotationBehavior, CRecordTimeRotationBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeScaleBehaviorContainer, CRecordTimeScaleBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeScaleBehavior, CRecordTimeScaleBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeSetBehaviorContainer, CRecordTimeSetBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeSetBehavior, CRecordTimeSetBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeCommandBehaviorContainer, CRecordTimeCommandBehaviorContainer)
|
||||
CREATE_BY_TYPE(RT_TimeCommandBehavior, CRecordTimeCommandBehaviorAtom)
|
||||
CREATE_BY_TYPE(RT_TimeIterateData, CRecordTimeIterateDataAtom)
|
||||
CREATE_BY_TYPE(RT_TimeSequenceData, CRecordTimeSequenceDataAtom)
|
||||
CREATE_BY_TYPE(RT_TimeConditionContainer, CRecordTimeConditionContainer)
|
||||
CREATE_BY_TYPE(RT_TimeCondition, CRecordTimeConditionAtom)
|
||||
CREATE_BY_TYPE(RT_TimeModifier, CRecordTimeModifierAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_COLOR_SCHEME_ATOM , CRecordColorSchemeAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ORIGINALMAINMASTERID , CRecordTripOriginalMasterId12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_COMPOSITEMASTERID , CRecordTripCompositeMasterId12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPCONTENTMASTERINFO12 , CRecordRoundTripContentMasterInfo12Atom) // ECMA-376 дубль
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPSHAPEID12 , CRecordRoundTripShapeId12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPHFPLACEHOLDER12 , CRecordRoundTripHFPlaceholder12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPCONTENTMASTERID , CRecordRoundTripContentMasterId12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPOARTTEXTSTYLES12 , CRecordRoundTripOArtTextStyles12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPHEADERFOOTERDEFAULTS12ATOM , CRecordRoundTripHeaderFooterDefaults12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPNOTESMASTERTEXTSTYLES12 , CRecordRoundTripNotesMasterTextStyles12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPDOCFLAGS12 , CRecordRoundTripDocFlags12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPSHAPECHECKSUMFORCUSTOMLAYOUTS12 , CRecordRoundTripShapeCheckSumForCustomLayouts12Atom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPCUSTOMTABLESTYLES12 , CRecordRoundTripCustomTableStyles12Atom)
|
||||
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_BOOKMARK_SEED_ATOM , CRecordBookmarkSeedAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordBlipEntityAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordExObjRefAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_OEPLACEHOLDER_ATOM , CRecordPlaceHolderAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordShapeFlagsAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordShapeFlags10Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordRoundTripNewPlaceholderId12Atom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_OUTLINE_TEXTREF_ATOM , CRecordOutlineTextRefAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TEXT_HEADER_ATOM , CRecordTextHeaderAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TEXT_CHARS_ATOM , CRecordTextCharsAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_STYLE_TEXTPROP_ATOM , CRecordStyleTextPropAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TEXTSPECINFO_ATOM , CRecordTextSpecInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_BASE_TEXTPROP_ATOM , CRecordMasterTextPropAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TXMASTERSTYLE_ATOM , CRecordTextMasterStyleAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TXCFSTYLE_ATOM , CRecordTextCFExceptionAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TXPFSTYLE_ATOM , CRecordTextPFExceptionAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TXSISTYLE_ATOM , CRecordTextSIExceptionAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TEXTRULER_ATOM , CRecordTextRulerAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_TEXTBOOKMARK_ATOM , CRecordTextBookmarkAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TEXTBYTES_ATOM , CRecordTextBytesAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordOutlineTextPropsHeaderExAtom)
|
||||
CREATE_BY_TYPE(RT_SlideListWithText , CRecordSlideListWithText)
|
||||
CREATE_BY_TYPE(RT_DocumentAtom , CRecordDocumentAtom)
|
||||
CREATE_BY_TYPE(RT_EndDocumentAtom , CRecordEndDocument)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_SSLIDE_LAYOUT_ATOM , CRecordSSlideLayoutAtom)
|
||||
CREATE_BY_TYPE(RT_SlideAtom , CRecordSlideAtom)
|
||||
CREATE_BY_TYPE(RT_NotesAtom , CRecordNotesAtom)
|
||||
CREATE_BY_TYPE(RT_SlidePersistAtom , CRecordSlidePersistAtom)
|
||||
CREATE_BY_TYPE(RT_Environment , CRecordDocumentTextInfo)
|
||||
CREATE_BY_TYPE(RT_FontCollection , CRecordFontCollection)
|
||||
CREATE_BY_TYPE(RT_FontCollection10 , CRecordFontCollection)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordMasterPersistAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordNotesPersistAtom)
|
||||
CREATE_BY_TYPE(RT_SlideShowSlideInfoAtom , CSlideShowSlideInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_GUIDE_ATOM , CRecordGuideAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_VIEWINFO_ATOM , CRecordZoomViewInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_VIEWINFO_ATOM , CRecordNoZoomViewInfoAtom)
|
||||
CREATE_BY_TYPE(RT_ViewInfoAtom , CRecordViewInfoAtom)
|
||||
CREATE_BY_TYPE(RT_SlideViewInfoAtom , CRecordSlideViewInfoAtom)
|
||||
CREATE_BY_TYPE(RT_VbaInfoAtom , CRecordVBAInfoAtom)
|
||||
CREATE_BY_TYPE(RT_SlideShowDocInfoAtom , CRecordSSDocInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_DOC_ROUTING_SLIP , CRecordDocRoutingSlipAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalObjectListAtom , CRecordExObjListAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordGridSpacing10Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripTheme12Atom , CRecordRoundTripThemeAtom)
|
||||
CREATE_BY_TYPE(RT_RoundTripColorMapping12Atom , CRecordRoundTripColorMappingAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_NAMEDSHOW_SLIDES , CRecordNamedShowSlidesAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_SHEET_PROPERTIES , CRecordNormalViewSetInfoAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_GUIDE_ATOM , CRecordGuideAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_FONTENTITY_ATOM , CRecordFontEntityAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_FONT_EMBEDDEDDATA , CRecordFontEmbedDataBlob)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_METAFILE , CRecordMetafileBlob)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_CSTRING , CRecordCString)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SOUNDCOLL_ATOM , CRecordSoundCollAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXOLEOBJ_ATOM , CRecordExOleObjAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXEMBEDATOM , CRecordExOleEmbedAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_BOOKMARK_ENTITY_ATOM , CRecordBookmarkEntityAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_EXLINK_ATOM , CRecordExOleLinkAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SRKINSOKU_ATOM , CRecordKinsokuAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXHYPERLINK , CRecordExHyperlinkContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXHYPERLINK_ATOM , CRecordExHyperlinkAtom)
|
||||
CREATE_BY_TYPE(RT_SorterViewInfo , CRecordColorSchemeAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_HEADERSFOOTERS , CRecordHeadersFootersContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_HEADERSFOOTERS_ATOM , CRecordHeadersFootersAtom)
|
||||
CREATE_BY_TYPE(RT_RoundTripOriginalMainMasterId12Atom , CRecordTripOriginalMasterId12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripCompositeMasterId12Atom , CRecordTripCompositeMasterId12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripContentMasterInfo12Atom , CRecordRoundTripContentMasterInfo12Atom) // ECMA-376 дубль
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPSHAPEID12 , CRecordRoundTripShapeId12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripHFPlaceholder12Atom , CRecordRoundTripHFPlaceholder12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPCONTENTMASTERID , CRecordRoundTripContentMasterId12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPOARTTEXTSTYLES12 , CRecordRoundTripOArtTextStyles12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripHeaderFooterDefaults12Atom , CRecordRoundTripHeaderFooterDefaults12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripNotesMasterTextStyles12Atom , CRecordRoundTripNotesMasterTextStyles12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPDOCFLAGS12 , CRecordRoundTripDocFlags12Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_ROUNDTRIPSHAPECHECKSUMFORCUSTOMLAYOUTS12 , CRecordRoundTripShapeCheckSumForCustomLayouts12Atom)
|
||||
CREATE_BY_TYPE(RT_RoundTripCustomTableStyles12Atom , CRecordRoundTripCustomTableStyles12Atom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SLIDENUMBER_META_ATOM , CRecordSlideNumberMetaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_DATETIME_META_ATOM , CRecordDateTimeMetaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_HEADER_META_ATOM , CRecordHeaderMetaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_FOOTER_META_ATOM , CRecordFooterMetaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_GENERICDATE_META_ATOM , CRecordGenericDateMetaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_RTFDATETIME_META_ATOM , CRecordRTFDateTimeMetaAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_BOOKMARK_SEED_ATOM , CRecordBookmarkSeedAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordBlipEntityAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordExObjRefAtom)
|
||||
CREATE_BY_TYPE(RT_PlaceholderAtom , CRecordPlaceHolderAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordShapeFlagsAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordShapeFlags10Atom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN, CRecordRoundTripNewPlaceholderId12Atom)
|
||||
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordMouseTextInteractiveInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordRecolorInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordAnimationInfoAtom)
|
||||
CREATE_BY_TYPE(RT_OutlineTextRefAtom , CRecordOutlineTextRefAtom)
|
||||
CREATE_BY_TYPE(RT_TextHeaderAtom , CRecordTextHeaderAtom)
|
||||
CREATE_BY_TYPE(RT_TextCharsAtom , CRecordTextCharsAtom)
|
||||
CREATE_BY_TYPE(RT_StyleTextPropAtom , CRecordStyleTextPropAtom)
|
||||
CREATE_BY_TYPE(RT_TextSpecialInfoAtom , CRecordTextSpecInfoAtom)
|
||||
CREATE_BY_TYPE(RT_MasterTextPropAtom , CRecordMasterTextPropAtom)
|
||||
CREATE_BY_TYPE(RT_TextMasterStyleAtom , CRecordTextMasterStyleAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_VIDEOCONTAINER , CRecordExVideoContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_OBJREF_ATOM , CRecordExObjRefAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_MEDIA_ATOM , CRecordExMediaAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXCONTROL_ATOM , CRecordExControlAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_BSTORE_CONTAINER , CRecordBlipStoreContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_BSE , CRecordBlipStoreEntry)
|
||||
CREATE_BY_TYPE(RT_TextCharFormatExceptionAtom , CRecordTextCFExceptionAtom)
|
||||
CREATE_BY_TYPE(RT_TextParagraphFormatExceptionAtom , CRecordTextPFExceptionAtom)
|
||||
CREATE_BY_TYPE(RT_TextSpecialInfoDefaultAtom , CRecordTextSIExceptionAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_DG_CONTAINER , CRecordDrawingContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_DGG , CRecordDrawingGroup)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_DG , CRecordDrawingRecord)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SPGR , CRecordGroupShape)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SPGR_CONTAINER , CRecordGroupShapeContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SP_CONTAINER , CRecordShapeContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SP , CRecordShape)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_CLIENTANCHOR , CRecordClientAnchor)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_CHILDANCHOR , CRecordChildAnchor)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SECONDARY_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_TETRIARY_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_REGROUPITEMS , CRecordRegGroupItems)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_SPLITMENUCOLORS , CRecordSplitMenuColorRecord)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_ESCHER_COLORMRU , CRecordMostRecentlyUserColors)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_CDAUDIO , CRecordExCDAudioContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_WAVAUDIOLINK , CRecordWAVAudioLinkContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_WAVAUDIOEMBEDDED , CRecordWAVAudioEmbeddedContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EX_MIDIAUDIO , CRecordExMIDIAudioContainer)
|
||||
CREATE_BY_TYPE(RT_TextRulerAtom , CRecordTextRulerAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_TEXTBOOKMARK_ATOM , CRecordTextBookmarkAtom)
|
||||
CREATE_BY_TYPE(RT_TextBytesAtom , CRecordTextBytesAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordOutlineTextPropsHeaderExAtom)
|
||||
|
||||
// интерактив
|
||||
CREATE_BY_TYPE(RECORD_TYPE_INTERACTIVEINFO_ATOM , CRecordInteractiveInfoAtom)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_TXINTERACTIVEINFO_ATOM , CRecordTextInteractiveInfoAtom)
|
||||
CREATE_BY_TYPE(RT_GuideAtom , CRecordGuideAtom)
|
||||
|
||||
// читаем для анимации
|
||||
CREATE_BY_TYPE ( RECORD_PROG_TAGS , SlideProgTagsContainer )
|
||||
CREATE_BY_TYPE(RT_FontEntityAtom , CRecordFontEntityAtom)
|
||||
CREATE_BY_TYPE(RT_FontEmbedDataBlob , CRecordFontEmbedDataBlob)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_METAFILE , CRecordMetafileBlob)
|
||||
CREATE_BY_TYPE(RT_CString , CRecordCString)
|
||||
CREATE_BY_TYPE(RT_SoundCollectionAtom , CRecordSoundCollAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalOleObjectAtom , CRecordExOleObjAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalOleEmbedAtom , CRecordExOleEmbedAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_BOOKMARK_ENTITY_ATOM , CRecordBookmarkEntityAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_EXLINK_ATOM , CRecordExOleLinkAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SOUNDCOLLECTION , CRecordSoundCollectionContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_EXOBJLIST , CRecordExObjListContainer)
|
||||
CREATE_BY_TYPE(RT_KinsokuAtom , CRecordKinsokuAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalHyperlink , CRecordExHyperlinkContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalHyperlinkAtom , CRecordExHyperlinkAtom)
|
||||
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SOUND , CRecordSoundContainer)
|
||||
CREATE_BY_TYPE(RECORD_TYPE_SOUNDDATA , CRecordSoundDataBlob)
|
||||
CREATE_BY_TYPE(RT_HeadersFooters , CRecordHeadersFootersContainer)
|
||||
CREATE_BY_TYPE(RT_HeadersFootersAtom , CRecordHeadersFootersAtom)
|
||||
|
||||
default:
|
||||
{
|
||||
}break;
|
||||
};
|
||||
CREATE_BY_TYPE(RT_SlideNumberMetaCharAtom , CRecordSlideNumberMetaAtom)
|
||||
CREATE_BY_TYPE(RT_DateTimeMetaCharAtom , CRecordDateTimeMetaAtom)
|
||||
CREATE_BY_TYPE(RT_HeaderMetaCharAtom , CRecordHeaderMetaAtom)
|
||||
CREATE_BY_TYPE(RT_FooterMetaCharAtom , CRecordFooterMetaAtom)
|
||||
CREATE_BY_TYPE(RT_GenericDateMetaCharAtom , CRecordGenericDateMetaAtom)
|
||||
CREATE_BY_TYPE(RT_RtfDateTimeMetaCharAtom , CRecordRTFDateTimeMetaAtom)
|
||||
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordMouseTextInteractiveInfoAtom)
|
||||
//CREATE_BY_TYPE(RECORD_TYPE_UNKNOWN , CRecordRecolorInfoAtom)
|
||||
|
||||
CREATE_BY_TYPE(RT_ExternalVideo , CRecordExVideoContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalObjectRefAtom , CRecordExObjRefAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalMediaAtom , CRecordExMediaAtom)
|
||||
CREATE_BY_TYPE(RT_ExternalOleControlAtom , CRecordExControlAtom)
|
||||
|
||||
CREATE_BY_TYPE(RTE_BSTORE_CONTAINER , CRecordBlipStoreContainer)
|
||||
CREATE_BY_TYPE(RTE_BSE , CRecordBlipStoreEntry)
|
||||
|
||||
CREATE_BY_TYPE(RTE_DG_CONTAINER , CRecordDrawingContainer)
|
||||
CREATE_BY_TYPE(RTE_DGG , CRecordDrawingGroup)
|
||||
CREATE_BY_TYPE(RTE_DG , CRecordDrawingRecord)
|
||||
CREATE_BY_TYPE(RTE_SPGR , CRecordGroupShape)
|
||||
CREATE_BY_TYPE(RTE_SPGR_CONTAINER , CRecordGroupShapeContainer)
|
||||
CREATE_BY_TYPE(RTE_SP_CONTAINER , CRecordShapeContainer)
|
||||
CREATE_BY_TYPE(RTE_SP , CRecordShape)
|
||||
CREATE_BY_TYPE(RTE_CLIENTANCHOR , CRecordClientAnchor)
|
||||
CREATE_BY_TYPE(RTE_CHILDANCHOR , CRecordChildAnchor)
|
||||
CREATE_BY_TYPE(RTE_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RTE_SECONDARY_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RTE_TETRIARY_OPT , CRecordShapeProperties)
|
||||
CREATE_BY_TYPE(RTE_REGROUPITEMS , CRecordRegGroupItems)
|
||||
CREATE_BY_TYPE(RTE_SPLITMENUCOLORS , CRecordSplitMenuColorRecord)
|
||||
CREATE_BY_TYPE(RTE_COLORMRU , CRecordMostRecentlyUserColors)
|
||||
CREATE_BY_TYPE(RTE_CLIENTDATA , CRecordOfficeArtClientData)
|
||||
|
||||
CREATE_BY_TYPE(RT_ExternalCdAudio , CRecordExCDAudioContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalWavAudioLink , CRecordWAVAudioLinkContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalWavAudioEmbedded , CRecordWAVAudioEmbeddedContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalMidiAudio , CRecordExMIDIAudioContainer)
|
||||
|
||||
CREATE_BY_TYPE(RT_List , CRecordDocInfoListContainer)
|
||||
|
||||
// интерактив
|
||||
CREATE_BY_TYPE(RT_InteractiveInfoAtom , CRecordInteractiveInfoAtom)
|
||||
CREATE_BY_TYPE(RT_TextInteractiveInfoAtom , CRecordTextInteractiveInfoAtom)
|
||||
|
||||
// читаем для анимации
|
||||
|
||||
CREATE_BY_TYPE(RT_SoundCollection , CRecordSoundCollectionContainer)
|
||||
CREATE_BY_TYPE(RT_ExternalObjectList , CRecordExObjListContainer)
|
||||
|
||||
CREATE_BY_TYPE(RT_Sound , CRecordSoundContainer)
|
||||
CREATE_BY_TYPE(RT_SoundDataBlob , CRecordSoundDataBlob)
|
||||
|
||||
|
||||
default:
|
||||
{
|
||||
}break;
|
||||
};
|
||||
|
||||
if (NULL == pRecord)
|
||||
{
|
||||
|
||||
if (oHeader.IsContainer())
|
||||
{
|
||||
pRecord = new CRecordsContainer();
|
||||
@ -321,9 +652,11 @@ IRecord* CreateByType(SRecordHeader oHeader)
|
||||
#ifdef _DEBUG
|
||||
char str[1024]={};
|
||||
sprintf(str, "Unknown record type: %x\t" , oHeader.RecType);
|
||||
std::cout << str << GetRecordName((_UINT32)oHeader.RecType) << "\n";
|
||||
std::cout << str << GetRecordName(oHeader.RecType) << "\n";
|
||||
#endif
|
||||
}
|
||||
}
|
||||
} else
|
||||
{
|
||||
}
|
||||
return pRecord;
|
||||
}
|
||||
|
||||
@ -32,39 +32,46 @@
|
||||
#pragma once
|
||||
|
||||
#include "PPTFileDefines.h"
|
||||
#include "../Enums/RecordType.h"
|
||||
#include "../Reader/ReadStructures.h"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Shapes/BaseShape/PPTShape/Enums.h"
|
||||
#include "../../../ASCOfficeXlsFile2/source/XlsFormat/Binary/CFStream.h"
|
||||
#include "../../../Common/3dParty/pole/pole.h"
|
||||
#include "../../../OfficeCryptReader/source/CryptTransform.h"
|
||||
#include "../../../Common/DocxFormat/Source/Base/Nullable.h"
|
||||
|
||||
|
||||
#include <boost/smart_ptr/shared_array.hpp>
|
||||
|
||||
using namespace PPT_FORMAT;
|
||||
//using namespace PPT_FORMAT;
|
||||
using namespace XLS;
|
||||
|
||||
using NSCommon::nullable;
|
||||
|
||||
std::string GetRecordName(PPT_FORMAT::RecordType dwType);
|
||||
|
||||
class SRecordHeader
|
||||
{
|
||||
public:
|
||||
unsigned char RecVersion;
|
||||
unsigned short RecInstance;
|
||||
unsigned short RecType;
|
||||
_UINT32 RecLen;
|
||||
unsigned char RecVersion;
|
||||
unsigned short RecInstance;
|
||||
PPT_FORMAT::RecordType RecType;
|
||||
_UINT32 RecLen;
|
||||
|
||||
void Clear()
|
||||
{
|
||||
RecVersion = 0;
|
||||
RecInstance = 0;
|
||||
RecType = 0;
|
||||
RecType = RT_NONE;
|
||||
RecLen = 0;
|
||||
}
|
||||
SRecordHeader()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
bool ReadFromStream(const CFStreamPtr &pStream)
|
||||
bool ReadFromStream(const CFStreamPtr &pStream)
|
||||
{
|
||||
Clear();
|
||||
Clear();
|
||||
|
||||
if (pStream->isEOF()) return FALSE;
|
||||
POLE::uint64 nRd = 0;
|
||||
@ -149,7 +156,7 @@ public:
|
||||
SRecordHeader m_oHeader;
|
||||
|
||||
virtual ~IRecord(){}
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, const CFStreamPtr &pStream) = 0;
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, const CFStreamPtr &pStream) = 0;
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream) = 0;
|
||||
};
|
||||
|
||||
@ -166,7 +173,7 @@ public:
|
||||
~CUnknownRecord()
|
||||
{
|
||||
}
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, const CFStreamPtr &pStream)
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, const CFStreamPtr &pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
@ -179,8 +186,8 @@ public:
|
||||
StreamUtils::StreamSkip((long)m_oHeader.RecLen, pStream);
|
||||
}
|
||||
|
||||
std::wstring ReadStringW(const CFStreamPtr &pStream, int size);
|
||||
std::string ReadStringA(const CFStreamPtr &pStream, int size);
|
||||
std::wstring ReadStringW(const CFStreamPtr &pStream, int size);
|
||||
std::string ReadStringA(const CFStreamPtr &pStream, int size);
|
||||
};
|
||||
|
||||
IRecord* CreateByType(SRecordHeader oHeader);
|
||||
@ -204,9 +211,11 @@ public:
|
||||
size_t nCount = m_arRecords.size();
|
||||
while(0 != nCount)
|
||||
{
|
||||
if (NULL != m_arRecords[nCount-1])
|
||||
delete m_arRecords[nCount-1];
|
||||
|
||||
if (NULL != m_arRecords[nCount-1])
|
||||
{
|
||||
delete m_arRecords[nCount-1];
|
||||
m_arRecords[nCount-1] = NULL;
|
||||
}
|
||||
m_arRecords.pop_back();
|
||||
--nCount;
|
||||
}
|
||||
@ -305,5 +314,5 @@ class CRecordVBAInfo : public CRecordsContainer {};
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
#define CREATE_BY_TYPE(RECORD_TYPE, CLASS_RECORD_NAME) \
|
||||
case RECORD_TYPE: { pRecord = new CLASS_RECORD_NAME(); break; } \
|
||||
case RECORD_TYPE: { pRecord = new CLASS_RECORD_NAME(); break; } \
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
@ -0,0 +1,136 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../../Structures/ColorIndexStruct.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct SFlagsAH {
|
||||
|
||||
USHORT m_fA_H;
|
||||
|
||||
USHORT getH()const {return (m_fA_H & 0xC000) >> 14;}
|
||||
USHORT getG()const {return (m_fA_H & 0x3000) >> 12;}
|
||||
USHORT getF()const {return (m_fA_H & 0xC00) >> 10;}
|
||||
USHORT getE()const {return (m_fA_H & 0x300) >> 8;}
|
||||
USHORT getD()const {return (m_fA_H & 0xC0) >> 6;}
|
||||
USHORT getC()const {return (m_fA_H & 0x30) >> 4;}
|
||||
USHORT getB()const {return (m_fA_H & 0xC) >> 2;}
|
||||
USHORT getA()const {return (m_fA_H & 0x3) >> 0;}
|
||||
|
||||
|
||||
|
||||
void ReadFromStream(POLE::Stream* pStream) {
|
||||
m_fA_H = StreamUtils::ReadWORD(pStream);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class CRecordAnimationInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
ColorIndexStruct m_sDimColor;
|
||||
|
||||
USHORT m_fReverse;
|
||||
USHORT m_fAutomatic;
|
||||
USHORT m_fSound;
|
||||
USHORT m_fStopSound;
|
||||
USHORT m_fPlay;
|
||||
USHORT m_fSynchronous;
|
||||
USHORT m_fHide;
|
||||
USHORT m_fAnimateBg;
|
||||
|
||||
USHORT m_Reserved;
|
||||
|
||||
_UINT32 m_SoundIdRef;
|
||||
_UINT32 m_DelayTime;
|
||||
|
||||
USHORT m_OrderID;
|
||||
USHORT m_SlideCount;
|
||||
|
||||
BYTE m_AnimBuildType;
|
||||
BYTE m_AnimEffect;
|
||||
BYTE m_AnimEffectDirection;
|
||||
BYTE m_AnimAfterEffect;
|
||||
BYTE m_TextBuildSubEffect;
|
||||
BYTE m_OleVerb;
|
||||
public:
|
||||
|
||||
CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_sDimColor.ReadFromStream(pStream);
|
||||
|
||||
SFlagsAH fAH;
|
||||
fAH.ReadFromStream(pStream);
|
||||
|
||||
m_fReverse = fAH.getA();
|
||||
m_fAutomatic = fAH.getB();
|
||||
m_fSound = fAH.getC();
|
||||
m_fStopSound = fAH.getD();
|
||||
m_fPlay = fAH.getE();
|
||||
m_fSynchronous = fAH.getF();
|
||||
m_fHide = fAH.getG();
|
||||
m_fAnimateBg = fAH.getH();
|
||||
|
||||
m_Reserved = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_SoundIdRef = StreamUtils::ReadDWORD(pStream);
|
||||
m_DelayTime = StreamUtils::ReadDWORD(pStream);
|
||||
|
||||
m_OrderID = StreamUtils::ReadWORD(pStream);
|
||||
m_SlideCount = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_AnimBuildType = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffectDirection = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimAfterEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_TextBuildSubEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_OleVerb = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
|
||||
StreamUtils::StreamSkip(2, pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "AnimationInfoAtom.h"
|
||||
#include "../SoundContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordAnimationInfoContainer: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordAnimationInfoAtom m_AnimationAtom;
|
||||
CRecordSoundContainer m_AnimationSound;
|
||||
|
||||
CRecordAnimationInfoContainer(){}
|
||||
~CRecordAnimationInfoContainer(){}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & thisHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
SRecordHeader oHeader;
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_AnimationAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (m_oHeader.RecLen != 36 && oHeader.ReadFromStream(pStream))
|
||||
m_AnimationSound.ReadFromStream ( oHeader, pStream );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,545 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "AnimationTypes.h"
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------//
|
||||
// Animation Types //
|
||||
//----------------------------------------------------------------------------------------------------------------------//
|
||||
|
||||
/*
|
||||
static const wchar_t EffectBehaviorBlindsHorizontal [] = L"blinds(horizontal)";
|
||||
static const wchar_t EffectBehaviorBoxIn [] = L"box(in)";
|
||||
static const wchar_t EffectBehaviorBoxOut [] = L"box(out)";
|
||||
static const wchar_t EffectBehaviorCheckerboardAcross [] = L"checkerboard(across)";
|
||||
static const wchar_t EffectBehaviorCheckerboardDown [] = L"checkerboard(down)";
|
||||
static const wchar_t EffectBehaviorCircleIn [] = L"circle(in)";
|
||||
static const wchar_t EffectBehaviorCircleOut [] = L"circle(out)";
|
||||
static const wchar_t EffectBehaviorDiamondIn [] = L"diamond(in)";
|
||||
static const wchar_t EffectBehaviorDiamonOut [] = L"diamond(out)";
|
||||
static const wchar_t EffectBehaviorDissolve [] = L"dissolve";
|
||||
static const wchar_t EffectBehaviorFade [] = L"fade";
|
||||
static const wchar_t EffectBehaviorPlusIn [] = L"plus(in)";
|
||||
static const wchar_t EffectBehaviorPlusOut [] = L"plus(out)";
|
||||
static const wchar_t EffectBehaviorBarnInVertical [] = L"barn(inVertical)";
|
||||
static const wchar_t EffectBehaviorBarnInHorizontal [] = L"barn(inHorizontal)";
|
||||
static const wchar_t EffectBehaviorBarnOutVertical [] = L"barn(outVertical)";
|
||||
static const wchar_t EffectBehaviorBarnOnHorizontal [] = L"barn(outHorizontal)";
|
||||
static const wchar_t EffectBehaviorRandomBarHorizontal [] = L"randombar(horizontal)";
|
||||
static const wchar_t EffectBehaviorRandomBarVertical [] = L"randombar(vertical)";
|
||||
static const wchar_t EffectBehaviorStripsDownLeft [] = L"strips(downLeft)";
|
||||
static const wchar_t EffectBehaviorStripsUpLeft [] = L"strips(upLeft)";
|
||||
static const wchar_t EffectBehaviorStripsDownRight [] = L"strips(downRight)";
|
||||
static const wchar_t EffectBehaviorStripsUpRight [] = L"strips(upRight)";
|
||||
static const wchar_t EffectBehaviorWedge [] = L"wedge";
|
||||
static const wchar_t EffectBehaviorWheel1 [] = L"wheel(1)";
|
||||
static const wchar_t EffectBehaviorWheel2 [] = L"wheel(2)";
|
||||
static const wchar_t EffectBehaviorWheel3 [] = L"wheel(3)";
|
||||
static const wchar_t EffectBehaviorWheel4 [] = L"wheel(4)";
|
||||
static const wchar_t EffectBehaviorWheel8 [] = L"wheel(8)";
|
||||
static const wchar_t EffectBehaviorWipeRight [] = L"wipe(right)";
|
||||
static const wchar_t EffectBehaviorWipeLeft [] = L"wipe(left)";
|
||||
static const wchar_t EffectBehaviorWipeUp [] = L"wipe(up)";
|
||||
static const wchar_t EffectBehaviorWipeDown [] = L"wipe(down)";
|
||||
*/
|
||||
|
||||
#pragma region _MACROSES_
|
||||
|
||||
#define GET_ENUM_STRING(NAMEE, VALUEE)\
|
||||
case TL_##NAMEE##VALUEE: \
|
||||
return std::wstring(_T("TL_")) + std::wstring(_T(#NAMEE)) + std::wstring(_T(#VALUEE)); \
|
||||
break;
|
||||
|
||||
#if defined(_WIN32) || defined (_WIN64)
|
||||
#define GET_EFFECT_NAME_BY_ID(VALUE,DESCRIPTION) \
|
||||
case (##VALUE) : return std::wstring(_T(#DESCRIPTION)); break;
|
||||
#else
|
||||
#define GET_EFFECT_NAME_BY_ID(VALUE,DESCRIPTION) \
|
||||
case ##VALUE : return std::wstring(_T(#DESCRIPTION)); break;
|
||||
#endif
|
||||
#pragma endregion
|
||||
|
||||
namespace Animations
|
||||
{
|
||||
std::wstring Helpers::GetTimePropertyID4TimeNode ( TimePropertyID4TimeNode Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TPID_, Display );
|
||||
GET_ENUM_STRING( TPID_, MasterPos );
|
||||
GET_ENUM_STRING( TPID_, SlaveType );
|
||||
GET_ENUM_STRING( TPID_, EffectID );
|
||||
GET_ENUM_STRING( TPID_, EffectDir );
|
||||
GET_ENUM_STRING( TPID_, AfterEffect );
|
||||
GET_ENUM_STRING( TPID_, SlideCount );
|
||||
GET_ENUM_STRING( TPID_, TimeFilter );
|
||||
GET_ENUM_STRING( TPID_, EventFilter );
|
||||
GET_ENUM_STRING( TPID_, HideWhenStopped );
|
||||
GET_ENUM_STRING( TPID_, GroupID );
|
||||
GET_ENUM_STRING( TPID_, EffectNodeType );
|
||||
GET_ENUM_STRING( TPID_, PlaceholderNode );
|
||||
GET_ENUM_STRING( TPID_, MediaVolume );
|
||||
GET_ENUM_STRING( TPID_, MediaMute );
|
||||
GET_ENUM_STRING( TPID_, ZoomToFullScreen );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimePropertyID4TimeNode : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTimeVariantTypeEnum ( TimeVariantTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TVT_, Bool );
|
||||
GET_ENUM_STRING( TVT_, Int );
|
||||
GET_ENUM_STRING( TVT_, Float );
|
||||
GET_ENUM_STRING( TVT_, String );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeVariantTypeEnum : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTimeNodeTypeEnum ( TimeNodeTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TNT_, Parallel );
|
||||
GET_ENUM_STRING( TNT_, Sequential );
|
||||
GET_ENUM_STRING( TNT_, Behavior );
|
||||
GET_ENUM_STRING( TNT_, Media );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeNodeTypeEnum : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTriggerObjectEnum ( TriggerObjectEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TOT_, None ); // None
|
||||
GET_ENUM_STRING( TOT_, VisualElement ); // An animatable object.
|
||||
GET_ENUM_STRING( TOT_, TimeNode ); // A time node.
|
||||
GET_ENUM_STRING( TOT_, RuntimeNodeRef ); // Runtime child time nodes.
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TriggerObjectEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetTimeVisualElementEnum ( TimeVisualElementEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TVET_, Shape );
|
||||
GET_ENUM_STRING( TVET_, Page );
|
||||
GET_ENUM_STRING( TVET_, TextRange );
|
||||
GET_ENUM_STRING( TVET_, Audio );
|
||||
GET_ENUM_STRING( TVET_, Video );
|
||||
GET_ENUM_STRING( TVET_, ChartElement );
|
||||
GET_ENUM_STRING( TVET_, ShapeOnly );
|
||||
GET_ENUM_STRING( TVET_, AllTextRange );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeVisualElementEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetElementTypeEnum ( ElementTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( ET_, ShapeType );
|
||||
GET_ENUM_STRING( ET_, SoundType );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("ElementTypeEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetTimeAnimateBehaviorValueTypeEnum ( TimeAnimateBehaviorValueTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TABVT_, String );
|
||||
GET_ENUM_STRING( TABVT_, Number );
|
||||
GET_ENUM_STRING( TABVT_, Color );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeAnimateBehaviorValueTypeEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
std::wstring Helpers::GetAnimationClassName ( AnimationsClassType Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
case Animations::RT_TimeNode:
|
||||
return std::wstring (_T("TimeNodeAtom") );
|
||||
|
||||
case Animations::RT_TimePropertyList: // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
return std::wstring (_T("TimePropertyList4TimeNodeContainer"));
|
||||
|
||||
case Animations::RT_TimeExtTimeNodeContainer:
|
||||
return std::wstring (_T("ExtTimeNodeContainer"));
|
||||
|
||||
case Animations::RT_SlideTime10Atom :
|
||||
return std::wstring (_T("SlideTime10Atom"));
|
||||
|
||||
case Animations::RT_SlideFlags10Atom:
|
||||
return std::wstring (_T("SlideFlags10Atom"));
|
||||
|
||||
case Animations::RT_HashCodeAtom:
|
||||
return std::wstring (_T("HashCode10Atom"));
|
||||
|
||||
case Animations::RT_TimeSequenceData:
|
||||
return std::wstring (_T("TimeSequenceDataAtom"));
|
||||
|
||||
case Animations::RT_TimeConditionContainer:
|
||||
return std::wstring (_T("TimeConditionContainer"));
|
||||
|
||||
case Animations::RT_TimeCondition:
|
||||
return std::wstring (_T("TimeConditionAtom"));
|
||||
}
|
||||
|
||||
return std::wstring (_T(""));
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetEffectTypeOfGroup ( _UINT32 Value )
|
||||
{
|
||||
if ( 0x00000001 == Value )
|
||||
return std::wstring ( _T("Entrance") );
|
||||
if ( 0x00000002 == Value )
|
||||
return std::wstring ( _T("Exit") );
|
||||
if ( 0x00000003 == Value )
|
||||
return std::wstring ( _T("Emphasis") );
|
||||
if ( 0x00000004 == Value )
|
||||
return std::wstring ( _T("MotionPath") );
|
||||
if ( 0x00000005 == Value )
|
||||
return std::wstring ( _T("ActionVerb") );
|
||||
if ( 0x00000006 == Value )
|
||||
return std::wstring ( _T("MediaCommand") );
|
||||
|
||||
return std::wstring ( _T("") );
|
||||
}
|
||||
// the corresponding effect type is an entrance or an exit effect
|
||||
std::wstring Helpers::GetEffectEntranceOrExitNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000000, Custom ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, Appear ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, FlyIn ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, Blinds ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, Box ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, CheckBoard ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, Circle ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, Crawl ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Diamond ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Dissolve ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, Fade ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000B, FlashOnce ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000C, Peek ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000D, Plus ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, RandomBars ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, Spiral ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, Split ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000011, Stretch ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, Strips ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, Swivel ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, Wedge ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, Wheel ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, Wipe ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, Zoom ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, RandomEffects ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, Boomerang ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, Bounce ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, ColorReveal ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, Credits ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001D, EaseIn ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Float ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, GrowAndTurn ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000020, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000021, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, LightSpeed ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, PinWheel ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000024, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000025, RiseUp ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000026, Swish ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000027, ThinLine ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000028, Unfold ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000029, Whip ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002A, Ascend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002B, CenterRevolve ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000002C, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002D, FadedSwivel ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000002E, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002F, Descend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000030, Sling ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000031, Spinner ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000032, Compress ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000033, Zip ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000034, ArcUp ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000035, FadedZoom ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000036, Glide ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000037, Expand ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000038, Flip ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000039, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003A, Fold ); // The corresponding effect direction MUST be ignored.
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
|
||||
// the corresponding effect type is an emphasis effect
|
||||
std::wstring Helpers::GetEffectEmphasisNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, ChangeFont ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, ChangeFontSize ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, ChangeFontStyle ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, GrowAndShrink ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Spin ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Transparency ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, BoldFlash ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000B, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000C, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000D, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, Blast ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, BoldReveal ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, BrushOnColor ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000011, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, BrushOnUnderline ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, ColorBlend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, ColorWave ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, ComplementaryColor ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, ComplementaryColor2 ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, ContrastingColor ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, Darken ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, Desaturate ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, FlashBulb ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, Flicker ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, GrowWithColor ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000001D, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Lighten ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, StyleEmphasis ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000020, Teeter ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000021, VerticalGrow ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, Wave ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, Blink ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000024, Shimmer ); // The corresponding effect direction MUST be ignored.
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
// the corresponding effect type is a motion path effect
|
||||
std::wstring Helpers::GetEffectMotionPathNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000000, Custom );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, Circle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, RightTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, Diamond );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, Hexagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, FivePointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, CrescentMoon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, Square );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Trapezoid );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Heart );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, Octagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000B, SixPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000C, Football );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000D, EqualTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, Parallelogram );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, Pentagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, FourPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000011, EightPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, Teardrop );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, PointyStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, CurvedSquare );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, CurvedX );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, VerticalFigure8 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, CurvyStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, LoopDeLoop );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, BuzzSaw );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, HorizontalFigure8 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, Peanut );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, Figure8four );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001D, Neutron );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Swoosh );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, Bean );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000020, Plus );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000021, InvertedTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, InvertedSquare );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, Left );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000024, TurnRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000025, ArcDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000026, Zigzag );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000027, SCurve2 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000028, SineWave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000029, BounceLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002A, Down );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002B, TurnUp );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002C, ArcUp );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002D, HeartBeat );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002E, SpiralRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002F, Wave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000030, CurvyLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000031, DiagonalDownRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000032, TurnDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000033, ArcLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000034, Funnel );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000035, Spring );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000036, BounceRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000037, SpiralLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000038, DiagonalUpRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000039, TurnUpRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003A, ArcRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003B, Scurve1 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003C, DecayingWave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003D, CurvyRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003E, StairsDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003F, Right );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000040, Up );
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetEffectNameByID ( _UINT32 EffectType, _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectType )
|
||||
{
|
||||
case 0x00000001: // Entrance +
|
||||
case 0x00000002: // Exit
|
||||
return Animations::Helpers::GetEffectEntranceOrExitNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000003: // Emphasis +
|
||||
return Animations::Helpers::GetEffectEmphasisNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000004: // Motion path +
|
||||
return Animations::Helpers::GetEffectMotionPathNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000005: // Action verb
|
||||
case 0x00000006: // Media command
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return std::wstring ( _T("") );
|
||||
}
|
||||
}
|
||||
|
||||
namespace Animations
|
||||
{
|
||||
IRecord* CAnimationFactory::BuildAnimationObject ( WORD Type )
|
||||
{
|
||||
switch ( Type )
|
||||
{
|
||||
case Animations::RT_SlideTime10Atom :
|
||||
return new Animations::SlideTime10Atom ();
|
||||
|
||||
case Animations::RT_SlideFlags10Atom:
|
||||
return new Animations::SlideFlags10Atom ();
|
||||
|
||||
case Animations::RT_HashCodeAtom:
|
||||
return new Animations::HashCode10Atom ();
|
||||
|
||||
case Animations::RT_TimeExtTimeNodeContainer:
|
||||
return new Animations::ExtTimeNodeContainer ();
|
||||
|
||||
case Animations::RT_TimeNode:
|
||||
return new Animations::TimeNodeAtom ();
|
||||
|
||||
case Animations::RT_TimePropertyList: // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
return new Animations::TimePropertyList4TimeNodeContainer ();
|
||||
|
||||
case Animations::RT_TimeSequenceData:
|
||||
return new Animations::TimeSequenceDataAtom ();
|
||||
|
||||
case Animations::RT_TimeConditionContainer:
|
||||
return new TimeConditionContainer ();
|
||||
|
||||
case Animations::RT_TimeCondition:
|
||||
return new TimeConditionAtom ();
|
||||
|
||||
case Animations::RT_TimeClientVisualElement:
|
||||
return new ClientVisualElementContainer ();
|
||||
|
||||
case Animations::RT_VisualPageAtom:
|
||||
return new VisualPageAtom ();
|
||||
|
||||
case Animations::RT_TimeEffectBehaviorContainer:
|
||||
return new TimeEffectBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeEffectBehavior:
|
||||
return new TimeEffectBehaviorAtom ();
|
||||
|
||||
case Animations::RT_TimeBehavior:
|
||||
return new TimeBehaviorAtom ();
|
||||
|
||||
case Animations::RT_TimeBehaviorContainer:
|
||||
return new TimeBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeMotionBehaviorContainer:
|
||||
return new TimeMotionBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeSetBehaviorContainer:
|
||||
return new TimeSetBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeAnimateBehaviorContainer:
|
||||
return new TimeAnimateBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeScaleBehaviorContainer:
|
||||
return new TimeScaleBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeRotationBehaviorContainer:
|
||||
return new TimeRotationBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeSlaveContainer:
|
||||
return new SlaveContainer ();
|
||||
|
||||
case Animations::RT_TimeModifierAtom:
|
||||
return new TimeModifierAtom();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
66
ASCOfficePPTFile/PPTFormatLib/Records/Animations/BuildAtom.h
Normal file
66
ASCOfficePPTFile/PPTFormatLib/Records/Animations/BuildAtom.h
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nBuildType = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBuildId = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nShapeIdRef = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fExpanded = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fUIExpanded = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nBuildType; // 1 - Paragraph build type, 2 - Chart build type, 3 - Diagram build type
|
||||
_UINT32 m_nBuildId;
|
||||
_UINT32 m_nShapeIdRef;
|
||||
|
||||
bool m_fExpanded;
|
||||
bool m_fUIExpanded;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "ParaBuildContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordBuildListContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordBuildListContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CRecordBuildListContainer()
|
||||
{
|
||||
for ( size_t i = 0; i < n_arrRgChildRec.size(); ++i )
|
||||
RELEASEOBJECT (n_arrRgChildRec[i]);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos(0); StreamUtils::StreamPosition(lPos, pStream);
|
||||
|
||||
_UINT32 lCurLen(0);
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while (lCurLen < m_oHeader.RecLen) {
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
IRecord* pBuildListSubContainer = CreateByType(ReadHeader);
|
||||
pBuildListSubContainer->ReadFromStream(ReadHeader, pStream);
|
||||
|
||||
n_arrRgChildRec.push_back(pBuildListSubContainer);
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek(lPos + m_oHeader.RecLen, pStream);
|
||||
}
|
||||
public:
|
||||
std::vector <IRecord*> n_arrRgChildRec;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,60 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordChartBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
ChartBuildEnum m_ChartBuild;
|
||||
BYTE m_fAnimBackground;
|
||||
|
||||
CRecordChartBuildAtom(){}
|
||||
~CRecordChartBuildAtom(){}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_ChartBuild = (ChartBuildEnum)StreamUtils::ReadDWORD(pStream);
|
||||
m_fAnimBackground = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
StreamUtils::StreamSkip(3, pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "ChartBuildAtom.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordChartBuildContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordChartBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordChartBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oChartBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordChartBuildAtom m_oChartBuildAtom;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "VisualPageAtom.h"
|
||||
#include "VisualShapeAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordClientVisualElementContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordClientVisualElementContainer ()
|
||||
{
|
||||
m_bVisualPageAtom = false;
|
||||
m_bVisualShapeAtom = false;
|
||||
}
|
||||
|
||||
void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream ) override
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
if ( RT_VisualPageAtom == ReadHeader.RecType )
|
||||
{
|
||||
m_bVisualPageAtom = true;
|
||||
m_oVisualPageAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( RT_VisualShapeAtom == ReadHeader.RecType )
|
||||
{
|
||||
m_bVisualShapeAtom = true;
|
||||
m_oVisualShapeAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordVisualPageAtom m_oVisualPageAtom;
|
||||
CRecordVisualShapeAtom m_oVisualShapeAtom;
|
||||
|
||||
bool m_bVisualPageAtom;
|
||||
bool m_bVisualShapeAtom;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordDiagramBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
DiagramBuildEnum m_oDiagramBuild;
|
||||
|
||||
CRecordDiagramBuildAtom(){}
|
||||
~CRecordDiagramBuildAtom(){}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_oDiagramBuild = (DiagramBuildEnum)StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "DiagramBuildAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordDiagramBuildContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordDiagramBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordDiagramBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oDiagramBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordDiagramBuildAtom m_oDiagramBuildAtom;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,406 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
#include "TimeAnimateBehaviorContainer.h"
|
||||
#include "TimeColorBehaviorContainer.h"
|
||||
#include "TimeEffectBehaviorContainer.h"
|
||||
#include "TimeMotionBehaviorContainer.h"
|
||||
#include "TimeRotationBehaviorContainer.h"
|
||||
#include "TimeScaleBehaviorContainer.h"
|
||||
#include "TimeSetBehaviorContainer.h"
|
||||
#include "TimeCommandBehaviorContainer.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
#include "TimeIterateDataAtom.h"
|
||||
#include "TimeSequenceDataAtom.h"
|
||||
#include "TimeConditionContainer.h"
|
||||
#include "TimeModifierAtom.h"
|
||||
#include "SubEffectContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordExtTimeNodeContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
/*-------------------------------------- record --------------------------------- */
|
||||
|
||||
CRecordTimeNodeAtom m_oTimeNodeAtom;
|
||||
//
|
||||
CRecordTimePropertyList4TimeNodeContainer* m_pTimePropertyList; // OPTIONAL
|
||||
CRecordTimeAnimateBehaviorContainer* m_pTimeAnimateBehavior; // OPTIONAL
|
||||
CRecordTimeColorBehaviorContainer* m_pTimeColorBehavior; // OPTIONAL
|
||||
CRecordTimeEffectBehaviorContainer* m_pTimeEffectBehavior; // OPTIONAL
|
||||
CRecordTimeMotionBehaviorContainer* m_pTimeMotionBehavior; // OPTIONAL
|
||||
CRecordTimeRotationBehaviorContainer* m_pTimeRotationBehavior; // OPTIONAL
|
||||
CRecordTimeScaleBehaviorContainer* m_pTimeScaleBehavior; // OPTIONAL
|
||||
CRecordTimeSetBehaviorContainer* m_pTimeSetBehavior; // OPTIONAL
|
||||
CRecordTimeCommandBehaviorContainer* m_pTimeCommandBehavior; // OPTIONAL
|
||||
CRecordClientVisualElementContainer* m_pClientVisualElement; // OPTIONAL - It MUST exist only if timeNodeAtom.type is TL_TNT_Media
|
||||
|
||||
CRecordTimeIterateDataAtom* m_pTimeIterateDataAtom; // OPTIONAL
|
||||
CRecordTimeSequenceDataAtom* m_pTimeSequenceDataAtom; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgBeginTimeCondition; // OPTIONAL
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgEndTimeCondition; // OPTIONAL
|
||||
CRecordTimeConditionContainer* m_pTimeEndSyncTimeCondition; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeModifierAtom*> m_arrRgTimeModifierAtom; // OPTIONAL
|
||||
std::vector<CRecordSubEffectContainer*> m_arrRgSubEffect; // OPTIONAL
|
||||
std::vector <CRecordExtTimeNodeContainer*> m_arrRgExtTimeNodeChildren; // OPTIONAL
|
||||
|
||||
/*-------------------------------------- record --------------------------------- */
|
||||
|
||||
bool m_haveTimePropertyList;
|
||||
bool m_haveAnimateBehavior;
|
||||
bool m_haveColorBehavior;
|
||||
bool m_haveEffectBehavior;
|
||||
bool m_haveMotionBehavior;
|
||||
bool m_haveRotationBehavior;
|
||||
bool m_haveScaleBehavior;
|
||||
bool m_haveSetBehavior;
|
||||
bool m_haveCommandBehavior;
|
||||
bool m_haveClientVisualElement;
|
||||
|
||||
bool m_haveIterateDataAtom;
|
||||
bool m_haveSequenceAtom;
|
||||
|
||||
bool m_haveTimeEndSyncTime;
|
||||
|
||||
public:
|
||||
|
||||
CRecordExtTimeNodeContainer() :
|
||||
m_pTimePropertyList(nullptr),
|
||||
m_pTimeAnimateBehavior(nullptr),
|
||||
m_pTimeColorBehavior(nullptr),
|
||||
m_pTimeEffectBehavior(nullptr),
|
||||
m_pTimeMotionBehavior(nullptr),
|
||||
m_pTimeRotationBehavior(nullptr),
|
||||
m_pTimeScaleBehavior(nullptr),
|
||||
m_pTimeSetBehavior(nullptr),
|
||||
m_pTimeCommandBehavior(nullptr),
|
||||
m_pClientVisualElement(nullptr),
|
||||
|
||||
m_pTimeIterateDataAtom(nullptr),
|
||||
m_pTimeSequenceDataAtom(nullptr),
|
||||
|
||||
m_pTimeEndSyncTimeCondition(nullptr),
|
||||
|
||||
|
||||
m_haveTimePropertyList(false),
|
||||
m_haveAnimateBehavior(false),
|
||||
m_haveColorBehavior(false),
|
||||
m_haveEffectBehavior(false),
|
||||
m_haveMotionBehavior(false),
|
||||
m_haveRotationBehavior(false),
|
||||
m_haveScaleBehavior(false),
|
||||
m_haveSetBehavior(false),
|
||||
m_haveCommandBehavior(false),
|
||||
m_haveClientVisualElement(false),
|
||||
|
||||
m_haveIterateDataAtom(false),
|
||||
m_haveSequenceAtom(false),
|
||||
|
||||
m_haveTimeEndSyncTime(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordExtTimeNodeContainer()
|
||||
{
|
||||
RELEASEOBJECT(m_pTimePropertyList);
|
||||
RELEASEOBJECT(m_pTimeAnimateBehavior);
|
||||
RELEASEOBJECT(m_pTimeColorBehavior);
|
||||
RELEASEOBJECT(m_pTimeEffectBehavior);
|
||||
RELEASEOBJECT(m_pTimeMotionBehavior);
|
||||
RELEASEOBJECT(m_pTimeRotationBehavior);
|
||||
RELEASEOBJECT(m_pTimeScaleBehavior);
|
||||
RELEASEOBJECT(m_pTimeSetBehavior);
|
||||
RELEASEOBJECT(m_pTimeCommandBehavior);
|
||||
RELEASEOBJECT(m_pClientVisualElement);
|
||||
|
||||
RELEASEOBJECT(m_pTimeIterateDataAtom);
|
||||
RELEASEOBJECT(m_pTimeSequenceDataAtom);
|
||||
|
||||
RELEASEOBJECT(m_pTimeEndSyncTimeCondition);
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgBeginTimeCondition.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgBeginTimeCondition[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgEndTimeCondition.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgEndTimeCondition[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgTimeModifierAtom.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgTimeModifierAtom[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgSubEffect.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgSubEffect[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgExtTimeNodeChildren.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgExtTimeNodeChildren[i] );
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader rHeader;
|
||||
|
||||
if ( rHeader.ReadFromStream(pStream) )
|
||||
m_oTimeNodeAtom.ReadFromStream ( rHeader, pStream );
|
||||
|
||||
UINT lCurLen = m_oTimeNodeAtom.m_oHeader.RecLen + 8;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
LONG lPosLoop = 0;
|
||||
StreamUtils::StreamPosition ( lPosLoop, pStream );
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
switch (ReadHeader.RecType)
|
||||
{
|
||||
case RT_TimePropertyList:
|
||||
{
|
||||
|
||||
m_pTimePropertyList = new CRecordTimePropertyList4TimeNodeContainer;
|
||||
m_pTimePropertyList->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveTimePropertyList = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeAnimateBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeAnimateBehavior = new CRecordTimeAnimateBehaviorContainer;
|
||||
m_pTimeAnimateBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveAnimateBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeColorBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeColorBehavior = new CRecordTimeColorBehaviorContainer;
|
||||
m_pTimeColorBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveColorBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeEffectBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeEffectBehavior = new CRecordTimeEffectBehaviorContainer();
|
||||
m_pTimeEffectBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveEffectBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeMotionBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeMotionBehavior = new CRecordTimeMotionBehaviorContainer();
|
||||
m_pTimeMotionBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveMotionBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeRotationBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeRotationBehavior = new CRecordTimeRotationBehaviorContainer();
|
||||
m_pTimeRotationBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveRotationBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeScaleBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeScaleBehavior = new CRecordTimeScaleBehaviorContainer();
|
||||
m_pTimeScaleBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveScaleBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSetBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeSetBehavior = new CRecordTimeSetBehaviorContainer();
|
||||
m_pTimeSetBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveSetBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeCommandBehaviorContainer:
|
||||
{
|
||||
|
||||
m_pTimeCommandBehavior = new CRecordTimeCommandBehaviorContainer();
|
||||
m_pTimeCommandBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveCommandBehavior = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeClientVisualElement:
|
||||
{
|
||||
|
||||
m_pClientVisualElement = new CRecordClientVisualElementContainer();
|
||||
m_pClientVisualElement->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveClientVisualElement = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeIterateData:
|
||||
{
|
||||
|
||||
m_pTimeIterateDataAtom = new CRecordTimeIterateDataAtom();
|
||||
m_pTimeIterateDataAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveIterateDataAtom = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSequenceData:
|
||||
{
|
||||
|
||||
m_pTimeSequenceDataAtom = new CRecordTimeSequenceDataAtom();
|
||||
m_pTimeSequenceDataAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveSequenceAtom = true;
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeConditionContainer:
|
||||
{
|
||||
|
||||
CRecordTimeConditionContainer* pTimeCondition =
|
||||
new CRecordTimeConditionContainer();
|
||||
pTimeCondition->ReadFromStream(ReadHeader, pStream);
|
||||
unsigned short recInst = ReadHeader.RecInstance;
|
||||
|
||||
if (recInst == TL_CT_Begin || recInst == TL_CT_Next)
|
||||
m_arrRgBeginTimeCondition.push_back(pTimeCondition);
|
||||
|
||||
else if (recInst == TL_CT_End || recInst == TL_CT_Previous)
|
||||
m_arrRgEndTimeCondition.push_back(pTimeCondition);
|
||||
else
|
||||
m_pTimeEndSyncTimeCondition = pTimeCondition;
|
||||
|
||||
|
||||
break; // A lot of records. Look at instance
|
||||
}
|
||||
|
||||
|
||||
case RT_TimeModifier:
|
||||
{
|
||||
|
||||
CRecordTimeModifierAtom* pModAtom = new CRecordTimeModifierAtom();
|
||||
pModAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgTimeModifierAtom.push_back(pModAtom);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSubEffectContainer:
|
||||
{
|
||||
|
||||
CRecordSubEffectContainer* pSub = new CRecordSubEffectContainer();
|
||||
pSub->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgSubEffect.push_back(pSub);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeExtTimeNodeContainer:
|
||||
{
|
||||
|
||||
CRecordExtTimeNodeContainer* pExt = new CRecordExtTimeNodeContainer();
|
||||
pExt->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgExtTimeNodeChildren.push_back(pExt);
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
// throw ;
|
||||
}
|
||||
|
||||
}
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
inline CRecordTimeModifierAtom* GetModifier (_UINT32 Type)
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrRgTimeModifierAtom.size(); ++i )
|
||||
if (m_arrRgTimeModifierAtom[i]->m_nType == Type)
|
||||
return m_arrRgTimeModifierAtom[i];
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline int GetNodeType () const
|
||||
{
|
||||
return m_oTimeNodeAtom.m_dwType;
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -1,51 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
class CRecordAnimationInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
return CUnknownRecord::ReadFromStream(oHeader, pStream);
|
||||
}
|
||||
};
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordHashCode10Atom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
_UINT32 m_nHash;
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nHash = StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordLevelInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordLevelInfoAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordLevelInfoAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nLevel = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
|
||||
_UINT32 m_nLevel;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordParaBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nParaBuild = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBuildLevel = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fAnimBackground = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fReverse = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fUserSetAnimBackground = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_fAutomatic = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
|
||||
m_nDelayTime = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nParaBuild; // 0 - All paragraphs in the shape animate at the same time.
|
||||
// 1 - Paragraph levels 1 to n – 1 in the shape animate separately.
|
||||
// All paragraph levels n or greater animate at the same time.
|
||||
// 2 - Applies a custom animation paragraph build type to the
|
||||
// paragraphs of the shape.
|
||||
// 3 - The shape and all paragraphs within the shape animate as one
|
||||
// graphical object.
|
||||
_UINT32 m_nBuildLevel;
|
||||
|
||||
bool m_fAnimBackground;
|
||||
bool m_fReverse;
|
||||
bool m_fUserSetAnimBackground;
|
||||
bool m_fAutomatic;
|
||||
|
||||
_UINT32 m_nDelayTime;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "ParaBuildLevel.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "ParaBuildAtom.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordParaBuildContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordParaBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CRecordParaBuildContainer()
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrRgParaBuildLevel.size(); ++i )
|
||||
RELEASEOBJECT (m_arrRgParaBuildLevel[i]);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & thisHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
LONG lPos(0); StreamUtils::StreamPosition(lPos, pStream);
|
||||
UINT lCurLen = 0;
|
||||
SRecordHeader oHeader;
|
||||
// UINT res = 0;
|
||||
|
||||
if (oHeader.ReadFromStream(pStream)){
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
lCurLen += oHeader.RecLen + 8;
|
||||
}
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
{
|
||||
m_oParaBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
lCurLen += oHeader.RecLen + 8;
|
||||
}
|
||||
|
||||
// TODO may not work
|
||||
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen ) {
|
||||
CRecordParaBuildLevel* pLevel = new CRecordParaBuildLevel();
|
||||
pLevel->ReadFromStream(pStream);
|
||||
|
||||
m_arrRgParaBuildLevel.push_back(pLevel);
|
||||
|
||||
lCurLen += pLevel->getRecordLen();
|
||||
}
|
||||
StreamUtils::StreamSeek(lPos + m_oHeader.RecLen, pStream);
|
||||
}
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordParaBuildAtom m_oParaBuildAtom;
|
||||
|
||||
std::vector <CRecordParaBuildLevel*> m_arrRgParaBuildLevel;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "LevelInfoAtom.h"
|
||||
#include "ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
class CRecordParaBuildLevel
|
||||
{
|
||||
public:
|
||||
CRecordParaBuildLevel () : m_nRecordLen(0)
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordParaBuildLevel()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( POLE::Stream* pStream )
|
||||
{
|
||||
SRecordHeader oHeader;
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
{
|
||||
m_oLevelInfoAtom.ReadFromStream ( oHeader, pStream );
|
||||
m_nRecordLen += oHeader.RecLen + 8;
|
||||
}
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
{
|
||||
m_oTimeNode.ReadFromStream ( oHeader, pStream );
|
||||
m_nRecordLen += oHeader.RecLen + 8;
|
||||
}
|
||||
}
|
||||
|
||||
_UINT32 getRecordLen()const {return m_nRecordLen;}
|
||||
|
||||
CRecordLevelInfoAtom m_oLevelInfoAtom;
|
||||
CRecordExtTimeNodeContainer m_oTimeNode; // ExtTimeNodeContainer
|
||||
|
||||
private:
|
||||
_UINT32 m_nRecordLen;
|
||||
};
|
||||
@ -0,0 +1,179 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeNodeAtom.h"
|
||||
#include "TimePropertyList4TimeNodeContainer.h"
|
||||
#include "TimeColorBehaviorContainer.h"
|
||||
#include "TimeSetBehaviorContainer.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
#include "TimeConditionContainer.h"
|
||||
#include "TimeCommandBehaviorContainer.h"
|
||||
#include "TimeModifierAtom.h"
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
#define SUBEFFECT_CASE(RECORD_TYPE, P_VAR, CLASS_RECORD_NAME, FLAG) \
|
||||
case RECORD_TYPE: { P_VAR = new CLASS_RECORD_NAME(); \
|
||||
P_VAR->ReadFromStream(ReadHeader, pStream); \
|
||||
FLAG = true; \
|
||||
break; } \
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct CRecordSubEffectContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordSubEffectContainer () :
|
||||
m_pTimePropertyList(nullptr),
|
||||
m_pTimeColorBehavior(nullptr),
|
||||
m_pTimeSetBehavior(nullptr),
|
||||
m_pTimeCommandBehavior(nullptr),
|
||||
m_pClientVisualElement(nullptr),
|
||||
|
||||
m_haveTimePropertyList(false),
|
||||
m_haveColorBehavior(false),
|
||||
m_haveSetBehavior(false),
|
||||
m_haveCommandBehavior(false),
|
||||
m_haveClientVisualElement(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordSubEffectContainer ()
|
||||
{
|
||||
RELEASEOBJECT(m_pTimePropertyList);
|
||||
RELEASEOBJECT(m_pTimeColorBehavior);
|
||||
RELEASEOBJECT(m_pTimeSetBehavior);
|
||||
RELEASEOBJECT(m_pTimeCommandBehavior);
|
||||
RELEASEOBJECT(m_pClientVisualElement);
|
||||
|
||||
for (auto pRecord : m_arrRgBeginTimeCondition)
|
||||
RELEASEOBJECT(pRecord);
|
||||
for (auto pRecord : m_arrRgEndTimeCondition)
|
||||
RELEASEOBJECT(pRecord);
|
||||
for (auto pRecord : m_arrRgTimeModifierAtom)
|
||||
RELEASEOBJECT(pRecord);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream (SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos(0); StreamUtils::StreamPosition(lPos, pStream);
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oTimeNodeAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
UINT lCurLen = m_oTimeNodeAtom.m_oHeader.RecLen + 8;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
switch (ReadHeader.RecType)
|
||||
{
|
||||
SUBEFFECT_CASE(RT_TimePropertyList, m_pTimePropertyList,
|
||||
CRecordTimePropertyList4TimeNodeContainer, m_haveTimePropertyList)
|
||||
SUBEFFECT_CASE(RT_TimeColorBehaviorContainer, m_pTimeColorBehavior,
|
||||
CRecordTimeColorBehaviorContainer, m_haveColorBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeSetBehaviorContainer, m_pTimeSetBehavior,
|
||||
CRecordTimeSetBehaviorContainer, m_haveSetBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeCommandBehaviorContainer, m_pTimeCommandBehavior,
|
||||
CRecordTimeCommandBehaviorContainer, m_haveCommandBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeClientVisualElement, m_pClientVisualElement,
|
||||
CRecordClientVisualElementContainer, m_haveClientVisualElement)
|
||||
|
||||
case RT_TimeConditionContainer:
|
||||
{
|
||||
CRecordTimeConditionContainer* pTimeCondition =
|
||||
new CRecordTimeConditionContainer();
|
||||
pTimeCondition->ReadFromStream(ReadHeader, pStream);
|
||||
unsigned short recInst = ReadHeader.RecInstance;
|
||||
|
||||
if (recInst == TL_CT_Begin)
|
||||
m_arrRgBeginTimeCondition.push_back(pTimeCondition);
|
||||
|
||||
else if (recInst == TL_CT_End)
|
||||
m_arrRgEndTimeCondition.push_back(pTimeCondition);
|
||||
else
|
||||
throw ;
|
||||
|
||||
break; // A lot of records. Look at instance
|
||||
}
|
||||
|
||||
case RT_TimeModifier:
|
||||
{
|
||||
CRecordTimeModifierAtom* pModAtom = new CRecordTimeModifierAtom();
|
||||
pModAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgTimeModifierAtom.push_back(pModAtom);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
throw ;
|
||||
}
|
||||
}
|
||||
StreamUtils::StreamSeek(lPos + m_oHeader.RecLen, pStream);
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeNodeAtom m_oTimeNodeAtom;
|
||||
CRecordTimePropertyList4TimeNodeContainer* m_pTimePropertyList; // OPTIONAL
|
||||
CRecordTimeColorBehaviorContainer* m_pTimeColorBehavior; // OPTIONAL
|
||||
CRecordTimeSetBehaviorContainer* m_pTimeSetBehavior; // OPTIONAL
|
||||
CRecordTimeCommandBehaviorContainer* m_pTimeCommandBehavior; // OPTIONAL
|
||||
CRecordClientVisualElementContainer* m_pClientVisualElement; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgBeginTimeCondition; // OPTIONAL
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgEndTimeCondition; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeModifierAtom*> m_arrRgTimeModifierAtom; // OPTIONAL
|
||||
|
||||
bool m_haveTimePropertyList;
|
||||
bool m_haveColorBehavior;
|
||||
bool m_haveSetBehavior;
|
||||
bool m_haveCommandBehavior;
|
||||
bool m_haveClientVisualElement;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimateBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nCalcMode = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_bToPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_bCalcModePropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_bAnimationValuesPropertyUsed = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
m_bValueTypePropertyUsed = ( 0x20 == ( 0x20 & ((BYTE)Value) ) );
|
||||
|
||||
m_ValueType = (TimeAnimateBehaviorValueTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nCalcMode;
|
||||
|
||||
bool m_bByPropertyUsed;
|
||||
bool m_bFromPropertyUsed;
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bCalcModePropertyUsed;
|
||||
bool m_bAnimationValuesPropertyUsed;
|
||||
bool m_bValueTypePropertyUsed;
|
||||
|
||||
TimeAnimateBehaviorValueTypeEnum m_ValueType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeAnimateBehaviorAtom.h"
|
||||
#include "TimeStringListContainer.h"
|
||||
#include "TimeAnimationValueListContainer.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimateBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oAnimateBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bAnimationValuesPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oAnimateValueList.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bByPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarBy.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bFromPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarFrom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bToPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarTo.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeAnimateBehaviorAtom m_oAnimateBehaviorAtom;
|
||||
CRecordTimeAnimationValueListContainer m_oAnimateValueList;
|
||||
|
||||
CRecordTimeVariantString m_oVarBy;
|
||||
CRecordTimeVariantString m_oVarFrom;
|
||||
CRecordTimeVariantString m_oVarTo;
|
||||
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeAnimateColor
|
||||
{
|
||||
_UINT32 model; // 0 - RGB, 2 - IndexScheme
|
||||
_UINT32 component0;
|
||||
_UINT32 component1;
|
||||
_UINT32 component2;
|
||||
|
||||
inline unsigned long FRGB (BYTE alpha = 0xFF)
|
||||
{
|
||||
return ((component2 << 16) | (component1 << 8) | (component0 << 0) | (alpha << 24));
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeAnimateColorBy
|
||||
{
|
||||
_UINT32 model; // 0 - RGB, 1 - HSL, 2 - IndexScheme
|
||||
_UINT32 component0;
|
||||
_UINT32 component1;
|
||||
_UINT32 component2;
|
||||
|
||||
inline unsigned long FRGB (BYTE alpha = 0xFF) //
|
||||
{
|
||||
return ((component2 << 16) | (component1 << 8) | (component0 << 0) | (alpha << 24));
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimationValueAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nTime = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
long m_nTime;
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeAnimationValueListEntry.h"
|
||||
#include <memory>
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimationValueListContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
~CRecordTimeAnimationValueListContainer()
|
||||
{
|
||||
for (auto pEntry : m_arrEntry)
|
||||
{
|
||||
RELEASEOBJECT(pEntry);
|
||||
}
|
||||
}
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
auto Entry = new CRecordTimeAnimationEntry;
|
||||
Entry->ReadFromStream ( lCurLen, ReadHeader, pStream );
|
||||
|
||||
m_arrEntry.push_back ( Entry );
|
||||
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
std::vector<CRecordTimeAnimationEntry*> m_arrEntry;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,83 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeAnimationValueAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeAnimationEntry
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordTimeAnimationEntry()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CRecordTimeAnimationEntry()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( UINT& CurLen, SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oTimeAnimationValueAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
// UINT res = 0;
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
m_pVarValue = TimeVariantFactoryMethod( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
CurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
m_VarFormula.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
CurLen += 8 + ReadHeader.RecLen;
|
||||
}
|
||||
|
||||
CRecordTimeAnimationValueAtom m_oTimeAnimationValueAtom;
|
||||
nullable<CRecordTimeVariant> m_pVarValue;
|
||||
CRecordTimeVariantString m_VarFormula;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
_UINT32 dwFlags = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bAdditivePropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)dwFlags) ) );
|
||||
m_bAttributeNamesPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)dwFlags) ) );
|
||||
|
||||
m_nBehaviorAdditive = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBehaviorAccumulate = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBehaviorTransform = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bAdditivePropertyUsed;
|
||||
bool m_bAttributeNamesPropertyUsed;
|
||||
|
||||
_UINT32 m_nBehaviorAdditive;
|
||||
_UINT32 m_nBehaviorAccumulate;
|
||||
_UINT32 m_nBehaviorTransform;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,131 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/RecordType.h"
|
||||
#include "TimeBehaviorAtom.h"
|
||||
#include "TimeStringListContainer.h"
|
||||
#include "TimePropertyList4TimeBehavior.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeBehaviorContainer () :
|
||||
m_pStringList(nullptr),
|
||||
m_pPropertyList(nullptr),
|
||||
|
||||
m_haveStringList(false),
|
||||
m_havePropertyList(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordTimeBehaviorContainer ()
|
||||
{
|
||||
RELEASEOBJECT (m_pStringList);
|
||||
RELEASEOBJECT (m_pPropertyList);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos(0); StreamUtils::StreamPosition(lPos, pStream);
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
UINT lCurLen = 8 + ReadHeader.RecLen;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if (ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
RecordType nRecord = ReadHeader.RecType;
|
||||
|
||||
switch (nRecord)
|
||||
{
|
||||
case RT_TimeVariantList:
|
||||
{
|
||||
m_pStringList = new CRecordTimeStringListContainer();
|
||||
m_pStringList->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveStringList = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimePropertyList:
|
||||
{
|
||||
m_pPropertyList = new CRecordTimePropertyList4TimeBehavior();
|
||||
m_pPropertyList->ReadFromStream(ReadHeader, pStream);
|
||||
m_havePropertyList = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeClientVisualElement:
|
||||
{
|
||||
m_oClientVisualElement.ReadFromStream( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
default:
|
||||
break ;
|
||||
}
|
||||
}
|
||||
StreamUtils::StreamSeek(lPos + m_oHeader.RecLen, pStream);
|
||||
}
|
||||
|
||||
|
||||
inline _UINT32 GetObjectID ()
|
||||
{
|
||||
return m_oClientVisualElement.m_oVisualShapeAtom.m_nObjectIdRef;
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeBehaviorAtom m_oBehaviorAtom;
|
||||
CRecordTimeStringListContainer* m_pStringList; // OPTIONAL
|
||||
CRecordTimePropertyList4TimeBehavior* m_pPropertyList; // OPTIONAL
|
||||
CRecordClientVisualElementContainer m_oClientVisualElement;
|
||||
|
||||
bool m_haveStringList;
|
||||
bool m_havePropertyList;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeAnimateColor.h"
|
||||
#include "TimeAnimateColorBy.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeColorBehaviorAtom: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 flag = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)flag) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)flag) ) );
|
||||
m_fToPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)flag) ) );
|
||||
m_fColorSpacePropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)flag) ) );
|
||||
m_fDirectionPropertyUsed = ( 0x10 == ( 0x10 & ((BYTE)flag) ) );
|
||||
|
||||
pStream->read ((unsigned char*) &m_sColorBy , sizeof ( TimeAnimateColorBy ) );
|
||||
pStream->read ((unsigned char*) &m_sColorFrom , sizeof ( TimeAnimateColor ) );
|
||||
pStream->read ((unsigned char*) &m_sColorTo , sizeof ( TimeAnimateColor ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fColorSpacePropertyUsed;
|
||||
bool m_fDirectionPropertyUsed;
|
||||
|
||||
TimeAnimateColorBy m_sColorBy;
|
||||
TimeAnimateColor m_sColorFrom;
|
||||
TimeAnimateColor m_sColorTo;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeColorBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeColorBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
m_oColorBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream (ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeColorBehaviorAtom m_oColorBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeCommandBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeCommandBehaviorAtom ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordTimeCommandBehaviorAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &oHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
BYTE flags = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
m_fTypePropertyUsed = ( 0x01 == ( 0x01 & (flags) ) );
|
||||
m_fCommandPropertyUsed = ( 0x02 == ( 0x02 & (flags) ) );
|
||||
|
||||
StreamUtils::StreamSkip(28, pStream);
|
||||
|
||||
m_eCommandBehaviorType = (TimeCommandBehaviorTypeEnum)
|
||||
StreamUtils::ReadLONG(pStream);
|
||||
|
||||
}
|
||||
public:
|
||||
bool m_fTypePropertyUsed;
|
||||
bool m_fCommandPropertyUsed;
|
||||
TimeCommandBehaviorTypeEnum m_eCommandBehaviorType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeCommandBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeCommandBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeCommandBehaviorContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordTimeCommandBehaviorContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oCommandBehaviorAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oVarCommand.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBevavior.ReadFromStream ( oHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeCommandBehaviorAtom m_oCommandBehaviorAtom;
|
||||
CRecordTimeVariantString m_oVarCommand;
|
||||
CRecordTimeBehaviorContainer m_oBevavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeConditionAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_TriggerObject = ( TriggerObjectEnum )StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_nTriggerEvent = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nID = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nTimeDelay = StreamUtils::ReadLONG ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TriggerObjectEnum m_TriggerObject;
|
||||
_UINT32 m_nTriggerEvent;
|
||||
_UINT32 m_nID;
|
||||
LONG m_nTimeDelay;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeConditionAtom.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeConditionContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader header;
|
||||
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oTimeConditionAtom.ReadFromStream ( header, pStream );
|
||||
|
||||
if ( TL_TOT_VisualElement == m_oTimeConditionAtom.m_TriggerObject )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oVisualElement.ReadFromStream ( header, pStream );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeConditionAtom m_oTimeConditionAtom;
|
||||
CRecordClientVisualElementContainer m_oVisualElement;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeEffectBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
_UINT32 dwFlags = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bTransitionPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)dwFlags) ) );
|
||||
m_bTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)dwFlags) ) );
|
||||
m_bProgressPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)dwFlags) ) );
|
||||
m_bRuntimeContextObsolete = ( 0x08 == ( 0x08 & ((BYTE)dwFlags) ) );
|
||||
|
||||
m_nEffectTransition = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
bool m_bTransitionPropertyUsed;
|
||||
bool m_bTypePropertyUsed;
|
||||
bool m_bProgressPropertyUsed;
|
||||
bool m_bRuntimeContextObsolete;
|
||||
|
||||
_UINT32 m_nEffectTransition;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeEffectBehaviorAtom.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeEffectBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader header;
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_effectBehaviorAtom.ReadFromStream ( header, pStream );
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bTypePropertyUsed )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarType.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bProgressPropertyUsed )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarProgress.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bRuntimeContextObsolete )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarRuntimeContext.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
if (header.RecType == 0xF12A)
|
||||
{
|
||||
m_oBehavior.ReadFromStream (header, pStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
StreamUtils::StreamSkip (header.RecLen, pStream);
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oBehavior.ReadFromStream ( header, pStream );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeEffectBehaviorAtom m_effectBehaviorAtom;
|
||||
|
||||
CRecordTimeVariantString m_oVarType;
|
||||
CRecordTimeVariantFloat m_oVarProgress;
|
||||
CRecordTimeVariantString m_oVarRuntimeContext;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeIterateDataAtom: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nIterateInterval = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateType = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateDirection = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateIntervalType = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fIterateDirectionPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fIterateTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fIterateIntervalPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_fIterateIntervalTypePropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nIterateInterval;
|
||||
_UINT32 m_nIterateType;
|
||||
_UINT32 m_nIterateDirection;
|
||||
_UINT32 m_nIterateIntervalType;
|
||||
|
||||
bool m_fIterateDirectionPropertyUsed;
|
||||
bool m_fIterateTypePropertyUsed;
|
||||
bool m_fIterateIntervalPropertyUsed;
|
||||
bool m_fIterateIntervalTypePropertyUsed;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeModifierAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nType = StreamUtils::ReadDWORD(pStream);
|
||||
m_Value = StreamUtils::ReadFLOAT(pStream);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
unsigned long m_nType; // 0x00000000 Repeat count.
|
||||
// 0x00000001 Repeat duration.
|
||||
// 0x00000002 Speed.
|
||||
// 0x00000003 Accelerate.
|
||||
// 0x00000004 Decelerate.
|
||||
float m_Value;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeMotionBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_bToPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_bOriginPropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_bPathPropertyUsed = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
|
||||
m_bEditRotationPropertyUsed = ( 0x40 == ( 0x40 & ((BYTE)Value) ) );
|
||||
m_bPointsTypesPropertyUsed = ( 0x80 == ( 0x80 & ((BYTE)Value) ) );
|
||||
|
||||
m_nXBY = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYBY = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nXFROM = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYFROM = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nXTO = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYTO = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nBehaviorOrigin = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bByPropertyUsed;
|
||||
bool m_bFromPropertyUsed;
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bOriginPropertyUsed;
|
||||
bool m_bPathPropertyUsed;
|
||||
bool m_bEditRotationPropertyUsed;
|
||||
bool m_bPointsTypesPropertyUsed;
|
||||
|
||||
FLOAT m_nXBY;
|
||||
FLOAT m_nYBY;
|
||||
FLOAT m_nXFROM;
|
||||
FLOAT m_nYFROM;
|
||||
FLOAT m_nXTO;
|
||||
FLOAT m_nYTO;
|
||||
_UINT32 m_nBehaviorOrigin;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,105 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeMotionBehaviorAtom.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeMotionBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
//UINT res = 0;
|
||||
|
||||
SRecordHeader header;
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oMotionBehaviorAtom.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
UINT lCurLen = m_oMotionBehaviorAtom.m_oHeader.RecLen + 8;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
header.ReadFromStream(pStream);
|
||||
|
||||
lCurLen += header.RecLen + 8;
|
||||
|
||||
switch (header.RecType) {
|
||||
case RT_TimeVariant:
|
||||
{
|
||||
if (header.RecLen > 5 ) {
|
||||
m_pVarPath = new CRecordTimeVariantString();
|
||||
m_pVarPath->ReadFromStream(header, pStream);
|
||||
}else if (header.RecLen == 5){
|
||||
StreamUtils::StreamSkip(5, pStream);
|
||||
} else
|
||||
StreamUtils::StreamSkip(header.RecLen, pStream);
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeBehaviorContainer:
|
||||
{
|
||||
m_oTimeBehavior.ReadFromStream(header, pStream);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
StreamUtils::StreamSeek(lPos + m_oHeader.RecLen, pStream);
|
||||
}
|
||||
|
||||
|
||||
~CRecordTimeMotionBehaviorContainer()
|
||||
{
|
||||
RELEASEOBJECT(m_pVarPath)
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeMotionBehaviorAtom m_oMotionBehaviorAtom;
|
||||
CRecordTimeVariantString* m_pVarPath; // OPTIONAL
|
||||
// reserved (13 bytes): An optional TimeVariantInt record that MUST be ignored.
|
||||
CRecordTimeBehaviorContainer m_oTimeBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeNodeAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition(lPos, pStream);
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
// 0x00000000 Does not restart.
|
||||
// 0x00000001 Can restart at any time.
|
||||
// 0x00000002 Can restart when the corresponding time node is not active.
|
||||
// 0x00000003 Same as 0x00000000.
|
||||
m_dwRestart = StreamUtils::ReadDWORD ( pStream );
|
||||
// 0x00000000 specifies that this time node is a parallel time node,
|
||||
// which allows all of its child nodes to start at the same time.
|
||||
m_dwType = (TimeNodeTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// 0x00000000 The properties remain at their ending values while the parent time node is still running or holding. After which, the properties reset to their original values.
|
||||
// 0x00000001 The properties reset to their original values after the time node becomes inactive.
|
||||
// 0x00000002 The properties remain at their ending values while the parent time node is still running or holding, or until another sibling time node is started under a sequential time node as specified in the type field. After which, the properties reset to their original values.
|
||||
// 0x00000003 Same as 0x00000000.
|
||||
// 0x00000004 Same as 0x00000001.
|
||||
m_dwFill = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
// duration: 0xFFFFFFFF specifies that the duration of the time node is infinite,
|
||||
// and that its actual duration is determined by the durations of its child nodes.
|
||||
m_nDuration = StreamUtils::ReadLONG ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fFillProperty = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fRestartProperty = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
|
||||
m_fGroupingTypeProperty = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_fDurationProperty = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_dwRestart;
|
||||
TimeNodeTypeEnum m_dwType;
|
||||
_UINT32 m_dwFill;
|
||||
long m_nDuration;
|
||||
|
||||
bool m_fFillProperty;
|
||||
bool m_fRestartProperty;
|
||||
bool m_fGroupingTypeProperty;
|
||||
bool m_fDurationProperty;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeNodeTimeFilter : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeVariant4Behavior.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimePropertyList4TimeBehavior : public CRecordsContainer
|
||||
{
|
||||
public:
|
||||
//static const _UINT32 RT_TimePropertyList = 0xF13D; // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
|
||||
CRecordTimePropertyList4TimeBehavior ()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordTimePropertyList4TimeBehavior ()
|
||||
{
|
||||
CRecordsContainer::Clear();
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & thisHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
UINT lCurLen = 0;
|
||||
SRecordHeader oHeader;
|
||||
|
||||
while (lCurLen < m_oHeader.RecLen)
|
||||
{
|
||||
// if (oHeader.ReadFromStream(pStream) == FALSE)
|
||||
// {
|
||||
// break;
|
||||
// }
|
||||
|
||||
if (oHeader.ReadFromStream(pStream)) {
|
||||
lCurLen += 8 + oHeader.RecLen;
|
||||
IRecord* pRecord = FactoryTimeVariant4Behavior::createByInstanse(oHeader.RecInstance);
|
||||
if (pRecord)
|
||||
{
|
||||
pRecord->ReadFromStream(oHeader, pStream);
|
||||
m_arRecords.push_back(pRecord);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
// Empty
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,134 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimePropertyList4TimeNodeContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
//static const _UINT32 RT_TimePropertyList = 0xF13D; // Specifies a CRecordTimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
|
||||
CRecordTimePropertyList4TimeNodeContainer ()
|
||||
{
|
||||
m_bEmtyNode = false;
|
||||
}
|
||||
|
||||
virtual ~CRecordTimePropertyList4TimeNodeContainer ()
|
||||
{
|
||||
ClearNodes ();
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( 0 == m_oHeader.RecLen )
|
||||
m_bEmtyNode = true;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if (ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
CRecordTimeVariant* pRecord = NULL;
|
||||
|
||||
TimePropertyID4TimeNode VariableType = ( TimePropertyID4TimeNode ) ReadHeader.RecInstance;
|
||||
|
||||
switch ( VariableType )
|
||||
{
|
||||
case TL_TPID_Display: pRecord = new CRecordTimeDisplayType (); break;
|
||||
case TL_TPID_MasterPos: pRecord = new CRecordTimeMasterRelType (); break;
|
||||
case TL_TPID_SubType: pRecord = new CRecordTimeSubType (); break;
|
||||
case TL_TPID_EffectID: pRecord = new CRecordTimeEffectID (); break;
|
||||
case TL_TPID_EffectDir: pRecord = new CRecordTimeEffectDir (); break;
|
||||
case TL_TPID_EffectType: pRecord = new CRecordTimeEffectType (); break;
|
||||
case TL_TPID_AfterEffect: pRecord = new CRecordTimeAfterEffect (); break;
|
||||
case TL_TPID_SlideCount: pRecord = new CRecordTimeSlideCount (); break;
|
||||
case TL_TPID_TimeFilter: pRecord = new CRecordTimeNodeTimeFilter (); break;
|
||||
case TL_TPID_EventFilter: pRecord = new CRecordTimeEventFilter (); break;
|
||||
case TL_TPID_HideWhenStopped: pRecord = new CRecordTimeHideWhenStopped (); break;
|
||||
case TL_TPID_GroupID: pRecord = new CRecordTimeGroupID (); break;
|
||||
case TL_TPID_EffectNodeType: pRecord = new CRecordTimeEffectNodeType (); break;
|
||||
case TL_TPID_PlaceholderNode: pRecord = new CRecordTimePlaceholderNode (); break;
|
||||
case TL_TPID_MediaVolume: pRecord = new CRecordTimeMediaVolume (); break;
|
||||
case TL_TPID_MediaMute: pRecord = new CRecordTimeMediaMute (); break;
|
||||
case TL_TPID_ZoomToFullScreen: pRecord = new CRecordTimeZoomToFullScreen (); break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
|
||||
pRecord->ReadFromStream ( ReadHeader, pStream );
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
inline bool IsEmpty ()
|
||||
{
|
||||
return m_bEmtyNode;
|
||||
}
|
||||
|
||||
void ClearNodes ()
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrElements.size(); ++i )
|
||||
{
|
||||
RELEASEOBJECT ( m_arrElements[i] );
|
||||
}
|
||||
m_arrElements.clear ();
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bEmtyNode;
|
||||
|
||||
std::vector <CRecordTimeVariant*> m_arrElements;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeRotationBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 src = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)src) ) );
|
||||
m_fToPropertyUsed = ( 0x03 == ( 0x03 & ((BYTE)src) ) );
|
||||
m_fDirectionPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)src) ) );
|
||||
|
||||
m_By = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_From = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_To = StreamUtils::ReadFLOAT ( pStream );
|
||||
|
||||
m_nRotationDirection = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fDirectionPropertyUsed;
|
||||
float m_By;
|
||||
float m_From;
|
||||
float m_To;
|
||||
_UINT32 m_nRotationDirection; // 0 - rotate clockwise, 1 - rotate counter clockwise
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeRotationBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeRotationBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oRotationBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeRotationBehaviorAtom m_oRotationBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeScaleBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 src = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)src) ) );
|
||||
m_fToPropertyUsed = ( 0x03 == ( 0x03 & ((BYTE)src) ) );
|
||||
m_fZoomContentsUsed = ( 0x04 == ( 0x04 & ((BYTE)src) ) );
|
||||
|
||||
m_XBy = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YBy = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_XFrom = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YFrom = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_XTo = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YTo = StreamUtils::ReadFLOAT ( pStream );
|
||||
|
||||
src = StreamUtils::ReadDWORD ( pStream );
|
||||
m_fZoomContents = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fZoomContentsUsed;
|
||||
float m_XBy;
|
||||
float m_YBy;
|
||||
float m_XFrom;
|
||||
float m_YFrom;
|
||||
float m_XTo;
|
||||
float m_YTo;
|
||||
bool m_fZoomContents;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "TimeScaleBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeScaleBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oScaleBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeScaleBehaviorAtom m_oScaleBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeSequenceDataAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
m_nConcurrency = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nNextAction = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nPreviousAction = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fConcurrencyPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fNextActionPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fPreviousActionPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nConcurrency;
|
||||
_UINT32 m_nNextAction;
|
||||
_UINT32 m_nPreviousAction;
|
||||
|
||||
bool m_fConcurrencyPropertyUsed;
|
||||
bool m_fNextActionPropertyUsed;
|
||||
bool m_fPreviousActionPropertyUsed;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* 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-12 Ernesta Birznieka-Upisha
|
||||
* 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 "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeSetBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bToPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bValueTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
|
||||
m_eValueType = (TimeAnimateBehaviorValueTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bValueTypePropertyUsed;
|
||||
|
||||
TimeAnimateBehaviorValueTypeEnum m_eValueType;
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user