mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-02-22 15:57:09 +08:00
Compare commits
10 Commits
core-windo
...
core-windo
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a3f98c502 | |||
| 8677540a82 | |||
| f4ceac5b2b | |||
| 61be4ea100 | |||
| 51c6ce2ba2 | |||
| e13bc44198 | |||
| 56cefcb1be | |||
| 6f860c17e3 | |||
| fb9edc4f81 | |||
| 4eb0a73f3c |
@ -61,7 +61,7 @@ namespace Writers
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:body>")));
|
||||
oFile.WriteStringUTF8(m_oContent.GetData());
|
||||
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:sectPr >")));
|
||||
oFile.WriteStringUTF8( std::wstring(_T("<w:sectPr>")));
|
||||
oFile.WriteStringUTF8(WriteSectPrHdrFtr());
|
||||
oFile.WriteStringUTF8(m_oSecPr.GetData());
|
||||
oFile.WriteStringUTF8( std::wstring(_T("</w:sectPr>")));
|
||||
|
||||
@ -6615,8 +6615,10 @@ public:
|
||||
std::wstring sChartsWorksheetRelsName = L"../embeddings/" + sXlsxFilename;
|
||||
long rIdXlsx;
|
||||
std::wstring bstrChartsWorksheetRelType = OOX::FileTypes::MicrosoftOfficeExcelWorksheet.RelationType();
|
||||
m_oFileWriter.m_pDrawingConverter->WriteRels(bstrChartsWorksheetRelType, sChartsWorksheetRelsName, std::wstring(), &rIdXlsx);
|
||||
|
||||
|
||||
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");
|
||||
|
||||
@ -5489,9 +5489,15 @@ namespace BinDocxRW
|
||||
m_oBcw.m_oStream.WriteBYTE(c_oSerPropLenType::Variable);
|
||||
|
||||
int nCurPos = m_oBcw.WriteItemWithLengthStart();
|
||||
|
||||
NSCommon::smart_ptr<PPTX::CCommonRels> pOldRels = *m_pOfficeDrawingConverter->m_pBinaryWriter->m_pCommonRels;
|
||||
OOX::CPath chartPath = pChart->GetReadPath();
|
||||
m_pOfficeDrawingConverter->SetRelsPath(chartPath.GetPath());
|
||||
|
||||
BinXlsxRW::BinaryChartWriter oBinaryChartWriter(m_oBcw.m_oStream, m_pOfficeDrawingConverter);
|
||||
oBinaryChartWriter.WriteCT_ChartSpace(*pChart);
|
||||
|
||||
*m_pOfficeDrawingConverter->m_pBinaryWriter->m_pCommonRels = pOldRels;
|
||||
|
||||
m_oBcw.WriteItemWithLengthEnd(nCurPos);
|
||||
}
|
||||
|
||||
@ -3,19 +3,19 @@ Microsoft Visual Studio Solution File, Format Version 9.00
|
||||
# Visual Studio 2005
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFormatWriterLib", "..\source\win32\OdfFormat.vcproj", "{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56} = {C739151F-5384-41DF-A1A6-F089E2C1AD56}
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812} = {609ED938-3CA8-4BED-B363-25096D4C4812}
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540} = {9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Oox2OdfConverter", "..\source\win32\Oox2OdfConverter.vcproj", "{BEE01B53-244A-44E6-8947-ED9342D9247E}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0} = {21663823-DE45-479B-91D0-B4FEF4916EF0}
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0} = {A100103A-353E-45E8-A9B8-90B87CC5C0B0}
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD} = {E5A67556-44DA-4481-8F87-0A3AEDBD20DD}
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A} = {94954A67-A853-43B1-A727-6EF2774C5A6A}
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302} = {36636678-AE25-4BE6-9A34-2561D1BCF302}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfFileWriterTest", "OdfFileWTest.vcproj", "{FBA8446A-150F-4A10-B4DA-1022048D6473}"
|
||||
@ -40,9 +40,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OdfCommon", "..\..\ASCOffic
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "raster", "..\..\DesktopEditor\raster\raster_vs2005.vcproj", "{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}"
|
||||
ProjectSection(ProjectDependencies) = postProject
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2} = {37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1} = {EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36} = {BC52A07C-A797-423D-8C4F-8678805BBB36}
|
||||
EndProjectSection
|
||||
EndProject
|
||||
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "jbig2", "..\..\DesktopEditor\raster\JBig2\win32\jbig2.vcproj", "{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}"
|
||||
@ -92,700 +92,204 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libxml2", "..\..\DesktopEdi
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug Multithreaded|Win32 = Debug Multithreaded|Win32
|
||||
Debug Multithreaded|x64 = Debug Multithreaded|x64
|
||||
Debug Singlethreaded|Win32 = Debug Singlethreaded|Win32
|
||||
Debug Singlethreaded|x64 = Debug Singlethreaded|x64
|
||||
Debug|Win32 = Debug|Win32
|
||||
Debug|x64 = Debug|x64
|
||||
Release Multithreaded|Win32 = Release Multithreaded|Win32
|
||||
Release Multithreaded|x64 = Release Multithreaded|x64
|
||||
Release Singlethreaded|Win32 = Release Singlethreaded|Win32
|
||||
Release Singlethreaded|x64 = Release Singlethreaded|x64
|
||||
Release|Win32 = Release|Win32
|
||||
Release|x64 = Release|x64
|
||||
Unicode Debug|Win32 = Unicode Debug|Win32
|
||||
Unicode Debug|x64 = Unicode Debug|x64
|
||||
Unicode Release|Win32 = Unicode Release|Win32
|
||||
Unicode Release|x64 = Unicode Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Debug|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|Win32.Build.0 = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Release|x64.Build.0 = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{E5A67556-44DA-4481-8F87-0A3AEDBD20DD}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Debug|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|Win32.Build.0 = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Release|x64.Build.0 = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{BEE01B53-244A-44E6-8947-ED9342D9247E}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Debug|x64.Build.0 = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release|Win32.Build.0 = Release|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release|x64.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Release|x64.Build.0 = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{FBA8446A-150F-4A10-B4DA-1022048D6473}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Debug|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|Win32.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|x64.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Multithreaded|x64.Build.0 = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|Win32.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|x64.ActiveCfg = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release Singlethreaded|x64.Build.0 = ReleaseOpenSource|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|Win32.Build.0 = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.ActiveCfg = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Release|x64.Build.0 = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{A100103A-353E-45E8-A9B8-90B87CC5C0B0}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Debug|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|Win32.Build.0 = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Release|x64.Build.0 = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{94954A67-A853-43B1-A727-6EF2774C5A6A}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Debug|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|Win32.Build.0 = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Release|x64.Build.0 = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{37CA072A-5BDE-498B-B3A7-5E404F5F9BF2}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Debug|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|Win32.Build.0 = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Release|x64.Build.0 = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{609ED938-3CA8-4BED-B363-25096D4C4812}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Debug|x64.Build.0 = Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|Win32.Build.0 = Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.ActiveCfg = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Release|x64.Build.0 = Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{9CAA294E-58C3-4CEB-ABA0-CB9786CA5540}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Debug|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|Win32.Build.0 = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Release|x64.Build.0 = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{EE1B576A-07C5-4ACC-920F-81C41DD0C8C1}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Debug|x64.Build.0 = Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|Win32.Build.0 = Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.ActiveCfg = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Release|x64.Build.0 = Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{BC52A07C-A797-423D-8C4F-8678805BBB36}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Debug|x64.Build.0 = Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|Win32.Build.0 = Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.ActiveCfg = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Release|x64.Build.0 = Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{FFDA5DA1-BB65-4695-B678-BE59B4A1355D}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Debug|x64.Build.0 = Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|Win32.Build.0 = Release|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.ActiveCfg = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Release|x64.Build.0 = Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{764C3A2D-FB0F-428E-B1C7-62D1DD2CE239}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Debug|x64.Build.0 = Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|Win32.Build.0 = Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.ActiveCfg = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Release|x64.Build.0 = Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{818753F2-DBB9-4D3B-898A-A604309BE470}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Debug|x64.Build.0 = Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|Win32.Build.0 = Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.ActiveCfg = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Release|x64.Build.0 = Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{9A037A69-D1DF-4505-AB2A-6CB3641C476E}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Debug|x64.Build.0 = Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|Win32.Build.0 = Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.ActiveCfg = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Release|x64.Build.0 = Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{40A69F40-063E-43FD-8543-455495D8733E}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Debug|x64.Build.0 = Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|Win32.Build.0 = Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.ActiveCfg = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Release|x64.Build.0 = Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{43A0E60E-5C4A-4C09-A29B-7683F503BBD7}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Debug|x64.Build.0 = Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|Win32.Build.0 = Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.ActiveCfg = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Release|x64.Build.0 = Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{DF861D33-9BC1-418C-82B1-581F590FE169}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Debug|x64.Build.0 = Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|Win32.Build.0 = Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.ActiveCfg = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Release|x64.Build.0 = Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.ActiveCfg = Unicode Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|Win32.Build.0 = Unicode Debug|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.ActiveCfg = Unicode Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Debug|x64.Build.0 = Unicode Debug|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.ActiveCfg = Unicode Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|Win32.Build.0 = Unicode Release|Win32
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.ActiveCfg = Unicode Release|x64
|
||||
{0588563C-F05C-428C-B21A-DD74756628B3}.Unicode Release|x64.Build.0 = Unicode Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Debug|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|Win32.Build.0 = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Release|x64.Build.0 = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{C739151F-5384-41DF-A1A6-F089E2C1AD56}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.ActiveCfg = Debug Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|Win32.Build.0 = Debug Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.ActiveCfg = Debug Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Multithreaded|x64.Build.0 = Debug Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.ActiveCfg = Debug Singlethreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|Win32.Build.0 = Debug Singlethreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.ActiveCfg = Debug Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug Singlethreaded|x64.Build.0 = Debug Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Debug|x64.Build.0 = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.ActiveCfg = Release Multithreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|Win32.Build.0 = Release Multithreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.ActiveCfg = Release Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Multithreaded|x64.Build.0 = Release Multithreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.ActiveCfg = Release Singlethreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|Win32.Build.0 = Release Singlethreaded|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.ActiveCfg = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release Singlethreaded|x64.Build.0 = Release Singlethreaded|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|Win32.Build.0 = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.ActiveCfg = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Release|x64.Build.0 = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{78B079BD-9FC7-4B9E-B4A6-96DA0F00248B}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Debug|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|Win32.Build.0 = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Release|x64.Build.0 = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{F8274B05-168E-4D6E-B843-AA7510725363}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Debug|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|Win32.Build.0 = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Release|x64.Build.0 = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{617F9069-5E37-4B80-9A3A-E77AFC4CC7AD}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Debug|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Release|x64.Build.0 = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{36636678-AE25-4BE6-9A34-2561D1BCF302}.Unicode Release|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|Win32.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Multithreaded|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Singlethreaded|Win32.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Singlethreaded|x64.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug Singlethreaded|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|Win32.Build.0 = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Debug|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Multithreaded|Win32.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Multithreaded|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Multithreaded|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Singlethreaded|Win32.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Singlethreaded|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release Singlethreaded|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.ActiveCfg = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|Win32.Build.0 = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Release|x64.Build.0 = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Debug|Win32.ActiveCfg = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Debug|Win32.Build.0 = Debug|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Debug|x64.ActiveCfg = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Debug|x64.Build.0 = Debug|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Release|Win32.ActiveCfg = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Release|Win32.Build.0 = Release|Win32
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Release|x64.ActiveCfg = Release|x64
|
||||
{21663823-DE45-479B-91D0-B4FEF4916EF0}.Unicode Release|x64.Build.0 = Release|x64
|
||||
EndGlobalSection
|
||||
GlobalSection(SolutionProperties) = preSolution
|
||||
HideSolutionNode = FALSE
|
||||
|
||||
@ -1887,7 +1887,7 @@ void odf_drawing_context::set_textarea_font(std::wstring & latin, std::wstring &
|
||||
if (!impl_->current_text_properties) return;
|
||||
|
||||
if (!ea.empty()) impl_->current_text_properties->content_.fo_font_family_ = ea;
|
||||
if (!cs.empty()) impl_->current_text_properties->content_.style_font_family_complex_= cs;
|
||||
if (!cs.empty()) impl_->current_text_properties->content_.style_font_family_complex_ = cs;
|
||||
if (!latin.empty()) impl_->current_text_properties->content_.style_font_family_asian_ = latin;
|
||||
|
||||
}
|
||||
@ -2218,7 +2218,7 @@ void odf_drawing_context::set_text(odf_text_context* text_context)
|
||||
{
|
||||
if (text_context == NULL || impl_->current_level_.size() < 1 ) return;
|
||||
|
||||
//if (impl_->is_presentation_ && *impl_->is_presentation_) return;
|
||||
if (impl_->is_presentation_ && *impl_->is_presentation_) return;
|
||||
|
||||
for (size_t i = 0; i < text_context->text_elements_list_.size(); i++)
|
||||
{
|
||||
|
||||
@ -112,7 +112,7 @@ void odp_conversion_context::end_layout_slide()
|
||||
void odp_conversion_context::start_text_context()
|
||||
{
|
||||
text_context_ = new odf_text_context(this);
|
||||
|
||||
text_context_->set_styles_context(slide_context_.get_styles_context());
|
||||
}
|
||||
void odp_conversion_context::end_text_context()
|
||||
{
|
||||
|
||||
@ -53,6 +53,11 @@ void odp_slide_context::set_styles_context(odf_style_context* styles_context)
|
||||
styles_context_ = styles_context;
|
||||
}
|
||||
|
||||
odf_style_context* odp_slide_context::get_styles_context()
|
||||
{
|
||||
return styles_context_;
|
||||
}
|
||||
|
||||
odp_page_state & odp_slide_context::state()
|
||||
{
|
||||
return page_state_list_.back();
|
||||
|
||||
@ -53,7 +53,8 @@ public:
|
||||
void start_page (office_element_ptr & elm);
|
||||
void end_page ();
|
||||
|
||||
void set_styles_context (odf_style_context* styles_context);
|
||||
void set_styles_context(odf_style_context* styles_context);
|
||||
odf_style_context* get_styles_context();
|
||||
|
||||
odp_page_state & state();
|
||||
|
||||
|
||||
@ -417,15 +417,11 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
|
||||
}
|
||||
|
||||
if (type < 0)return;
|
||||
/////////////////////////////////////////////////////////////////////////////////
|
||||
//-----------------------------------------------------------------------------
|
||||
odf_context()->drawing_context()->start_shape(type);
|
||||
|
||||
//if (oox_shape->levelUp)
|
||||
//{
|
||||
// convert((PPTX::Logic::SpPr *)&oox_shape->levelUp->spPr, oox_shape->levelUp->style.GetPointer());
|
||||
//}
|
||||
convert(&oox_shape->spPr, oox_shape->style.GetPointer());
|
||||
//имя, описалово, номер ...
|
||||
|
||||
convert(&oox_shape->nvSpPr);
|
||||
|
||||
if (oox_shape->txXfrm.IsInit() == false)
|
||||
@ -453,6 +449,7 @@ void OoxConverter::convert(PPTX::Logic::Shape *oox_shape)
|
||||
odf_context()->drawing_context()->end_drawing();
|
||||
}
|
||||
}
|
||||
|
||||
void OoxConverter::convert(PPTX::Logic::SpPr *oox_spPr, PPTX::Logic::ShapeStyle* oox_sp_style)
|
||||
{
|
||||
if (oox_spPr == NULL) return;
|
||||
@ -1074,8 +1071,8 @@ void OoxConverter::convert(PPTX::Logic::Paragraph *oox_paragraph, PPTX::Logic::T
|
||||
//свойства могут быть приписаны не только к параграфу, но и к самому объекту
|
||||
if (!paragraph_properties)
|
||||
{
|
||||
odf_context()->styles_context()->create_style(L"", odf_types::style_family::Paragraph, true, false, -1);
|
||||
paragraph_properties = odf_context()->styles_context()->last_state()->get_paragraph_properties();
|
||||
odf_context()->text_context()->get_styles_context()->create_style(L"", odf_types::style_family::Paragraph, true, false, -1);
|
||||
paragraph_properties = odf_context()->text_context()->get_styles_context()->last_state()->get_paragraph_properties();
|
||||
|
||||
//if(list_present && oox_list_style)
|
||||
//{
|
||||
@ -1196,11 +1193,9 @@ void OoxConverter::convert(PPTX::Logic::TextParagraphPr *oox_paragraph_pr, odf_w
|
||||
//nullable<SimpleTypes::CCoordinate32<> > m_oDefTabSz;
|
||||
//nullable<SimpleTypes::CTextFontAlignType<>> m_oFontAlgn;
|
||||
|
||||
|
||||
|
||||
if (oox_paragraph_pr->defRPr.IsInit())//может быть пустым !!!
|
||||
if (oox_paragraph_pr->defRPr.IsInit())
|
||||
{
|
||||
odf_writer::style_text_properties * text_properties = odf_context()->text_context()->get_text_properties();
|
||||
odf_writer::style_text_properties * text_properties = odf_context()->text_context()->get_styles_context()->last_state()->get_text_properties();
|
||||
if (text_properties)
|
||||
convert(oox_paragraph_pr->defRPr.GetPointer(), text_properties);
|
||||
|
||||
@ -1231,6 +1226,8 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
if (!oox_run_pr) return;
|
||||
if (!text_properties) return;
|
||||
|
||||
PPTX::Theme *theme = oox_theme();
|
||||
|
||||
PPTX::Logic::GradFill* gradFill = &oox_run_pr->Fill.as<PPTX::Logic::GradFill>();
|
||||
if (gradFill)
|
||||
{
|
||||
@ -1243,8 +1240,19 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
odf_context()->drawing_context()->end_area_properties();
|
||||
}
|
||||
}
|
||||
PPTX::Logic::SolidFill* solidFill = &oox_run_pr->Fill.as<PPTX::Logic::SolidFill>();
|
||||
if (solidFill)
|
||||
{
|
||||
std::wstring hexColor;
|
||||
_CP_OPT(double) opacity;
|
||||
convert(&solidFill->Color, hexColor, opacity);
|
||||
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
text_properties->content_.fo_color_ = odf_types::color(hexColor);
|
||||
}
|
||||
|
||||
if (oox_run_pr->ln.IsInit())
|
||||
if (oox_run_pr->ln.IsInit() && oox_run_pr->ln->Fill.getType() != OOX::et_a_noFill)
|
||||
{
|
||||
if (odf_context()->drawing_context()->change_text_box_2_wordart())
|
||||
{
|
||||
@ -1257,7 +1265,6 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
if (oox_run_pr->b.IsInit())
|
||||
{
|
||||
if (oox_run_pr->b.get() == true)
|
||||
@ -1266,17 +1273,6 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
text_properties->content_.fo_font_weight_ = odf_types::font_weight(odf_types::font_weight::WNormal);
|
||||
}
|
||||
|
||||
PPTX::Logic::SolidFill* solidFill = &oox_run_pr->Fill.as<PPTX::Logic::SolidFill>();
|
||||
if (solidFill)
|
||||
{
|
||||
std::wstring hexColor;
|
||||
_CP_OPT(double) opacity;
|
||||
convert(&solidFill->Color, hexColor, opacity);
|
||||
|
||||
int res = 0;
|
||||
if ((res = hexColor.find(L"#")) < 0) hexColor = std::wstring(L"#") + hexColor;
|
||||
text_properties->content_.fo_color_ = odf_types::color(hexColor);
|
||||
}
|
||||
if (oox_run_pr->i.IsInit())
|
||||
{
|
||||
if (oox_run_pr->i.get() ==true)
|
||||
@ -1293,7 +1289,17 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
if (oox_run_pr->latin.IsInit())
|
||||
{
|
||||
if (!oox_run_pr->latin->typeface.empty())
|
||||
text_properties->content_.fo_font_family_ = oox_run_pr->latin->typeface;
|
||||
{
|
||||
std::wstring font = oox_run_pr->latin->typeface;
|
||||
|
||||
if (font == L"+mj-lt")
|
||||
font = theme->themeElements.fontScheme.majorFont.latin.typeface;
|
||||
else if (font == L"+mn-lt")
|
||||
font = theme->themeElements.fontScheme.minorFont.latin.typeface;
|
||||
|
||||
if (!font.empty())
|
||||
text_properties->content_.fo_font_family_ = font;
|
||||
}
|
||||
else
|
||||
{
|
||||
text_properties->content_.fo_font_family_ = L"Calibri";//default_font; ????
|
||||
@ -1302,7 +1308,17 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
if (oox_run_pr->ea.IsInit())
|
||||
{
|
||||
if (!oox_run_pr->ea->typeface.empty())
|
||||
text_properties->content_.style_font_family_asian_ = oox_run_pr->ea->typeface;
|
||||
{
|
||||
std::wstring font = oox_run_pr->ea->typeface;
|
||||
|
||||
if (font == L"+mj-ea")
|
||||
font = theme->themeElements.fontScheme.majorFont.ea.typeface;
|
||||
else if (font == L"+mn-ea")
|
||||
font = theme->themeElements.fontScheme.minorFont.ea.typeface;
|
||||
|
||||
if (!font.empty())
|
||||
text_properties->content_.style_font_family_asian_ = font;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
@ -1310,7 +1326,17 @@ void OoxConverter::convert(PPTX::Logic::RunProperties *oox_run_pr, odf_writer::s
|
||||
if (oox_run_pr->cs.IsInit())
|
||||
{
|
||||
if (!oox_run_pr->cs->typeface.empty())
|
||||
text_properties->content_.style_font_family_complex_ = oox_run_pr->cs->typeface;
|
||||
{
|
||||
std::wstring font = oox_run_pr->cs->typeface;
|
||||
|
||||
if (font == L"+mj-cs")
|
||||
font = theme->themeElements.fontScheme.majorFont.cs.typeface;
|
||||
else if (font == L"+mn-cs")
|
||||
font = theme->themeElements.fontScheme.minorFont.cs.typeface;
|
||||
|
||||
if (!font.empty())
|
||||
text_properties->content_.style_font_family_complex_ = font;
|
||||
}
|
||||
else
|
||||
{
|
||||
}
|
||||
@ -1439,20 +1465,22 @@ void OoxConverter::convert(PPTX::Logic::TxBody *oox_txBody, PPTX::Logic::ShapeSt
|
||||
|
||||
odf_context()->start_text_context();
|
||||
|
||||
|
||||
|
||||
for (size_t i = 0; i < oox_txBody->Paragrs.size(); i++)
|
||||
{
|
||||
convert(&oox_txBody->Paragrs[i], oox_txBody->lstStyle.GetPointer());
|
||||
}
|
||||
odf_context()->drawing_context()->set_text( odf_context()->text_context());
|
||||
|
||||
//наложим внешние настройки для текста
|
||||
//внешние настройки для текста
|
||||
|
||||
convert(oox_txBody->bodyPr.GetPointer());
|
||||
|
||||
if (oox_style)
|
||||
{
|
||||
convert(&oox_style->fontRef);
|
||||
}
|
||||
|
||||
odf_context()->end_text_context();
|
||||
}
|
||||
void OoxConverter::convert(PPTX::Logic::ArcTo *oox_geom_path)
|
||||
@ -1585,7 +1613,15 @@ void OoxConverter::convert(PPTX::Logic::FontRef *style_font_ref)
|
||||
style_font = &theme->themeElements.fontScheme.minorFont;
|
||||
}
|
||||
if (style_font)
|
||||
odf_context()->drawing_context()->set_textarea_font(style_font->latin.typeface, style_font->ea.typeface, style_font->cs.typeface);
|
||||
{
|
||||
std::wstring latin = style_font->latin.typeface;
|
||||
std::wstring ea = style_font->ea.typeface;
|
||||
std::wstring cs = style_font->cs.typeface;
|
||||
|
||||
//theme->themeElements.fontScheme
|
||||
|
||||
odf_context()->drawing_context()->set_textarea_font(latin, ea, cs);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2248,32 +2248,25 @@ void DocxConverter::convert(SimpleTypes::CTheme<>* oox_font_theme, _CP_OPT(std::
|
||||
case SimpleTypes::themeMajorAscii:
|
||||
case SimpleTypes::themeMajorHAnsi :
|
||||
font = docx_theme->themeElements.fontScheme.majorFont.latin.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
case SimpleTypes::themeMajorBidi:
|
||||
font = docx_theme->themeElements.fontScheme.majorFont.cs.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
case SimpleTypes::themeMajorEastAsia:
|
||||
font = docx_theme->themeElements.fontScheme.majorFont.ea.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
case SimpleTypes::themeMinorAscii:
|
||||
case SimpleTypes::themeMinorHAnsi:
|
||||
font = docx_theme->themeElements.fontScheme.minorFont.latin.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
case SimpleTypes::themeMinorBidi:
|
||||
font = docx_theme->themeElements.fontScheme.minorFont.cs.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
case SimpleTypes::themeMinorEastAsia:
|
||||
font = docx_theme->themeElements.fontScheme.minorFont.ea.typeface;
|
||||
if (font.length() > 0) odf_font_name = font;
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (!font.empty()) odf_font_name = font;
|
||||
}
|
||||
|
||||
void DocxConverter::convert(OOX::Logic::CText *oox_text)
|
||||
|
||||
@ -897,23 +897,16 @@ void PptxConverter::convert_slide(PPTX::Logic::CSld *oox_slide, bool bPlaceholde
|
||||
smart_ptr<PPTX::WrapperWritingElement> pElem = oox_slide->spTree.SpTreeElems[i].GetElem();
|
||||
smart_ptr<PPTX::Logic::Shape> pShape = pElem.smart_dynamic_cast<PPTX::Logic::Shape>();
|
||||
|
||||
if (pShape.IsInit() && pShape->nvSpPr.nvPr.ph.is_init())
|
||||
if (pShape.IsInit())
|
||||
{
|
||||
if (bPlaceholders)
|
||||
{
|
||||
pShape->FillLevelUp();
|
||||
PPTX::Logic::Shape update_shape;
|
||||
|
||||
if (pShape->levelUp)
|
||||
pShape->levelUp->Merge(update_shape, true);
|
||||
pShape->Merge(update_shape);
|
||||
pShape->FillLevelUp();
|
||||
if (!bPlaceholders && pShape->nvSpPr.nvPr.ph.is_init())
|
||||
continue;
|
||||
|
||||
OoxConverter::convert(&update_shape);
|
||||
}
|
||||
//else
|
||||
//{
|
||||
// OoxConverter::convert(pShape.operator->());
|
||||
//}
|
||||
PPTX::Logic::Shape update_shape;
|
||||
pShape->Merge(update_shape);
|
||||
|
||||
OoxConverter::convert(&update_shape);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@ -82,7 +82,8 @@ namespace NSBinPptxRW
|
||||
|
||||
FontsEmbedded = 44,
|
||||
SlideNotesRels = 45,
|
||||
NotesRels = 46
|
||||
NotesRels = 46,
|
||||
NotesMastersRels= 47
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@ -154,6 +154,7 @@ namespace NSBinPptxRW
|
||||
std::vector<LONG> m_oSlide_Layout_Rels;
|
||||
std::vector<LONG> m_oSlide_Notes_Rels;
|
||||
std::vector<LONG> m_oNote_Rels;
|
||||
std::vector<LONG> m_oNotesMasters_Rels;
|
||||
|
||||
NSShapeImageGen::CImageManager* m_pImageManager;
|
||||
|
||||
|
||||
@ -147,13 +147,18 @@ namespace PPTX2EditorAdvanced
|
||||
|
||||
// проверяем theme
|
||||
size_t pPointerTh = (size_t)(noteMaster->theme_.operator ->());
|
||||
LONG nNotesMastersRelsIndex = -1;
|
||||
std::map<size_t, LONG>::const_iterator pSearchTh = pCommon->themes.find(pPointerTh);
|
||||
if (pSearchTh == pCommon->themes.end())
|
||||
{
|
||||
LONG lCountTh = (LONG)_themes.size();
|
||||
pCommon->themes [pPointerTh] = lCountTh;
|
||||
_themes.push_back(noteMaster->theme_);
|
||||
nNotesMastersRelsIndex = lCountTh;
|
||||
} else {
|
||||
nNotesMastersRelsIndex = pSearchTh->second;
|
||||
}
|
||||
oBinaryWriter.m_pCommon->m_oNotesMasters_Rels.push_back(nNotesMastersRelsIndex);
|
||||
}
|
||||
|
||||
// записываем все слайды
|
||||
@ -490,6 +495,21 @@ namespace PPTX2EditorAdvanced
|
||||
oBinaryWriter.EndRecord();
|
||||
// ------------------------------------------------
|
||||
|
||||
// NoteRels --------------------------------------
|
||||
oBinaryWriter.StartMainRecord(NSMainTables::NotesMastersRels);
|
||||
oBinaryWriter.StartRecord(NSMainTables::NotesMastersRels);
|
||||
oBinaryWriter.WriteBYTE(NSBinPptxRW::g_nodeAttributeStart);
|
||||
|
||||
_s_rels = oBinaryWriter.m_pCommon->m_oNotesMasters_Rels.size();
|
||||
for (size_t i = 0; i < _s_rels; ++i)
|
||||
{
|
||||
oBinaryWriter.WriteInt1(0, oBinaryWriter.m_pCommon->m_oNotesMasters_Rels[i]);
|
||||
}
|
||||
|
||||
oBinaryWriter.WriteBYTE(NSBinPptxRW::g_nodeAttributeEnd);
|
||||
oBinaryWriter.EndRecord();
|
||||
// ------------------------------------------------
|
||||
|
||||
|
||||
oBinaryWriter.EndRecord();
|
||||
}
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "./../WrapperWritingElement.h"
|
||||
#include "NvGraphicFramePr.h"
|
||||
#include "Xfrm.h"
|
||||
#include "ShapeProperties.h"
|
||||
#include "Table/Table.h"
|
||||
#include "SmartArt.h"
|
||||
#include "Pic.h"
|
||||
|
||||
@ -43,8 +43,9 @@ namespace PPTX
|
||||
{
|
||||
Shape::Shape(std::wstring name_)
|
||||
{
|
||||
m_name = name_;
|
||||
levelUp = NULL;
|
||||
m_name = name_;
|
||||
m_pLevelUp = NULL;
|
||||
m_nMasterTextType = -1;
|
||||
}
|
||||
|
||||
Shape::~Shape()
|
||||
@ -53,21 +54,31 @@ namespace PPTX
|
||||
|
||||
Shape::Shape(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
levelUp = NULL;
|
||||
m_pLevelUp = NULL;
|
||||
m_nMasterTextType = -1;
|
||||
|
||||
fromXML(node);
|
||||
}
|
||||
Shape::Shape(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
levelUp = NULL;
|
||||
m_pLevelUp = NULL;
|
||||
m_nMasterTextType = -1;
|
||||
|
||||
fromXML(oReader);
|
||||
}
|
||||
const Shape& Shape::operator =(XmlUtils::CXmlNode& node)
|
||||
{
|
||||
m_pLevelUp = NULL;
|
||||
m_nMasterTextType = -1;
|
||||
|
||||
fromXML(node);
|
||||
return *this;
|
||||
}
|
||||
const Shape& Shape::operator =(XmlUtils::CXmlLiteReader& oReader)
|
||||
{
|
||||
m_pLevelUp = NULL;
|
||||
m_nMasterTextType = -1;
|
||||
|
||||
fromXML(oReader);
|
||||
return *this;
|
||||
}
|
||||
@ -367,11 +378,11 @@ namespace PPTX
|
||||
{
|
||||
nvSpPr.SetParentPointer(this);
|
||||
spPr.SetParentPointer(this);
|
||||
if(style.IsInit())
|
||||
|
||||
if (style.IsInit())
|
||||
style->SetParentPointer(this);
|
||||
if(txBody.IsInit())
|
||||
txBody->SetParentPointer(this);
|
||||
levelUp = NULL;
|
||||
if (txBody.IsInit())
|
||||
txBody->SetParentPointer(this);
|
||||
}
|
||||
|
||||
void Shape::toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter)const
|
||||
@ -432,257 +443,106 @@ namespace PPTX
|
||||
}
|
||||
|
||||
|
||||
void Shape::GetRect(Aggplus::RECT& pRect)const
|
||||
void Shape::FillLevelUp()
|
||||
{
|
||||
pRect.bottom = 0;
|
||||
pRect.left = 0;
|
||||
pRect.right = 0;
|
||||
pRect.top = 0;
|
||||
|
||||
if(spPr.xfrm.is_init())
|
||||
if ((m_pLevelUp == NULL) && (nvSpPr.nvPr.ph.IsInit()))
|
||||
{
|
||||
pRect.left = spPr.xfrm->offX.get_value_or(0);
|
||||
pRect.top = spPr.xfrm->offY.get_value_or(0);
|
||||
pRect.right = pRect.left + spPr.xfrm->extX.get_value_or(0);
|
||||
pRect.bottom = pRect.top + spPr.xfrm->extY.get_value_or(0);
|
||||
}
|
||||
|
||||
if(parentIs<Logic::SpTree>())
|
||||
parentAs<Logic::SpTree>().NormalizeRect(pRect);
|
||||
}
|
||||
|
||||
void Shape::FillLevelUp()const
|
||||
{
|
||||
if((levelUp == NULL) && (nvSpPr.nvPr.ph.IsInit()))
|
||||
{
|
||||
if((nvSpPr.nvPr.ph->type.IsInit()) || (nvSpPr.nvPr.ph->idx.IsInit()))
|
||||
if ((nvSpPr.nvPr.ph->type.IsInit()) || (nvSpPr.nvPr.ph->idx.IsInit()))
|
||||
{
|
||||
if(parentFileIs<Slide>())
|
||||
parentFileAs<Slide>().Layout->GetLevelUp(*this);
|
||||
if (parentFileIs<Slide>())
|
||||
parentFileAs<Slide>().Layout->GetLevelUp(this);
|
||||
else if(parentFileIs<SlideLayout>())
|
||||
parentFileAs<SlideLayout>().Master->GetLevelUp(*this);
|
||||
parentFileAs<SlideLayout>().Master->GetLevelUp(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Shape::FillShapeProperties(ShapeProperties& props)
|
||||
void Shape::Merge(Shape& shape, bool bIsSlidePlaceholder)
|
||||
{
|
||||
//props.SetParentFilePointer(*parentFile);
|
||||
if(parentFileIs<SlideMaster>())
|
||||
{
|
||||
std::wstring type = nvSpPr.nvPr.ph.IsInit()?nvSpPr.nvPr.ph->type.get_value_or(_T("body")):_T("");
|
||||
//if( (nvSpPr->cNvSpPr->txBox.get_value_or(false)) && (type == "") )
|
||||
// type = "text-box";
|
||||
parentFileAs<SlideMaster>().FillShapeProperties(props, type);
|
||||
props.FillFromTextBody(txBody);
|
||||
if(style.IsInit())
|
||||
props.FillFontRef(style->fontRef);
|
||||
if (m_pLevelUp)
|
||||
m_pLevelUp->Merge(shape, true);
|
||||
|
||||
//props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
else if(parentFileIs<SlideLayout>())
|
||||
{
|
||||
//FillLevelUp();
|
||||
//if(levelUp != NULL)
|
||||
// levelUp->GetShapeProperties(props);
|
||||
//else
|
||||
//{
|
||||
std::wstring type = nvSpPr.nvPr.ph.IsInit()?nvSpPr.nvPr.ph->type.get_value_or(_T("body")):_T("");
|
||||
//if( (nvSpPr->cNvSpPr->txBox.get_value_or(false)) && (type == "") )
|
||||
// type = "text-box";
|
||||
parentFileAs<SlideLayout>().FillShapeProperties(props, type);
|
||||
//}
|
||||
|
||||
props.FillFromTextBody(txBody);
|
||||
if(style.IsInit())
|
||||
props.FillFontRef(style->fontRef);
|
||||
|
||||
//props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
else if(parentFileIs<Slide>())
|
||||
{
|
||||
//FillLevelUp();
|
||||
//if(levelUp != NULL)
|
||||
// levelUp->GetShapeProperties(props);
|
||||
//else
|
||||
//{
|
||||
std::wstring type = nvSpPr.nvPr.ph.is_init()?nvSpPr.nvPr.ph->type.get_value_or(_T("body")):_T("");
|
||||
//if( (nvSpPr->cNvSpPr->txBox.get_value_or(false)) && (type == "") )
|
||||
// type = "text-box";
|
||||
parentFileAs<Slide>().FillShapeProperties(props, type);
|
||||
//}
|
||||
|
||||
props.FillFromTextBody(txBody);
|
||||
if(style.IsInit())
|
||||
props.FillFontRef(style->fontRef);
|
||||
|
||||
//props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
|
||||
void Shape::FillShapeTextProperties(CShapeTextProperties& props)
|
||||
{
|
||||
std::wstring type = nvSpPr.nvPr.ph.IsInit()?nvSpPr.nvPr.ph->type.get_value_or(_T("body")):_T("");
|
||||
if (parentFileIs<SlideMaster>())
|
||||
{
|
||||
parentFileAs<SlideMaster>().FillShapeTextProperties(props, type);
|
||||
props.FillFromTextBody(txBody, NULL);
|
||||
if (style.IsInit())
|
||||
props.FillFontRef(style->fontRef, isFontRefInSlide);
|
||||
}
|
||||
else if (parentFileIs<SlideLayout>())
|
||||
{
|
||||
parentFileAs<SlideLayout>().FillShapeTextProperties(props, type);
|
||||
props.FillFromTextBody(txBody, NULL);
|
||||
if(style.IsInit())
|
||||
props.FillFontRef(style->fontRef, isFontRefInSlide);
|
||||
}
|
||||
else if (parentFileIs<Slide>())
|
||||
{
|
||||
parentFileAs<Slide>().FillShapeTextProperties(props, type);
|
||||
props.FillFromTextBody(txBody, body);
|
||||
if(style.IsInit())
|
||||
props.FillFontRef(style->fontRef, isFontRefInSlide);
|
||||
}
|
||||
|
||||
props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
|
||||
DWORD Shape::GetFill(UniFill& fill)const
|
||||
{
|
||||
DWORD BGRA = 0;
|
||||
//fill.SetParentFilePointer(*parentFile);
|
||||
|
||||
if(style.IsInit())
|
||||
{
|
||||
if(parentFileIs<PPTX::Slide>())
|
||||
parentFileAs<PPTX::Slide>().theme->GetFillStyle(style->fillRef.idx.get_value_or(0), fill);
|
||||
else if(parentFileIs<PPTX::SlideLayout>())
|
||||
parentFileAs<PPTX::SlideLayout>().theme->GetFillStyle(style->fillRef.idx.get_value_or(0), fill);
|
||||
else if(parentFileIs<PPTX::SlideMaster>())
|
||||
parentFileAs<PPTX::SlideMaster>().theme->GetFillStyle(style->fillRef.idx.get_value_or(0), fill);
|
||||
|
||||
if (style->fillRef.Color.is_init())
|
||||
{
|
||||
if (fill.is<PPTX::Logic::SolidFill>())
|
||||
{
|
||||
fill.as<PPTX::Logic::SolidFill>().Color = style->fillRef.Color;
|
||||
}
|
||||
}
|
||||
BGRA = style->fillRef.Color.GetBGRA();
|
||||
}
|
||||
|
||||
if(spPr.Fill.is_init())
|
||||
spPr.Fill.Merge(fill);
|
||||
|
||||
//if((!fill.is_init()) && (bMergeWithLevelUp))
|
||||
//{
|
||||
// FillLevelUp();
|
||||
// if(levelUp != NULL)
|
||||
// BGRA = levelUp->GetFill(fill);
|
||||
//}
|
||||
|
||||
return BGRA;
|
||||
}
|
||||
|
||||
DWORD Shape::GetLine(Ln& line)const
|
||||
{
|
||||
DWORD BGRA = 0;
|
||||
|
||||
if(style.IsInit())
|
||||
{
|
||||
if(parentFileIs<PPTX::Slide>())
|
||||
parentFileAs<PPTX::Slide>().theme->GetLineStyle(style->lnRef.idx.get_value_or(0), line);
|
||||
else if(parentFileIs<PPTX::SlideLayout>())
|
||||
parentFileAs<PPTX::SlideLayout>().theme->GetLineStyle(style->lnRef.idx.get_value_or(0), line);
|
||||
else if(parentFileIs<PPTX::SlideMaster>())
|
||||
parentFileAs<PPTX::SlideMaster>().theme->GetLineStyle(style->lnRef.idx.get_value_or(0), line);
|
||||
|
||||
BGRA = style->lnRef.Color.GetBGRA();
|
||||
}
|
||||
|
||||
if(spPr.ln.IsInit())
|
||||
spPr.ln->Merge(line);
|
||||
return BGRA;
|
||||
}
|
||||
|
||||
void Shape::Merge(Shape& shape, bool bIsSlidePlaceholder)const
|
||||
{
|
||||
shape.nvSpPr = nvSpPr;
|
||||
shape.m_name = m_name;
|
||||
shape.m_nMasterTextType = m_nMasterTextType;
|
||||
|
||||
shape.nvSpPr = nvSpPr;
|
||||
spPr.Merge(shape.spPr);
|
||||
if(style.is_init())
|
||||
|
||||
if (parentFileIs<SlideMaster>() && (parentFileAs<SlideMaster>()).txStyles.IsInit())
|
||||
{
|
||||
shape.isFontRefInSlide = bIsSlidePlaceholder;
|
||||
TextListStyle * listMasterStyle = NULL;
|
||||
|
||||
std::wstring type = nvSpPr.nvPr.ph->type.get_value_or(_T("body"));
|
||||
if ((type == L"title") || (type == L"ctrTitle"))
|
||||
{
|
||||
m_nMasterTextType = 1;
|
||||
listMasterStyle = (parentFileAs<SlideMaster>()).txStyles->titleStyle.GetPointer();
|
||||
}
|
||||
else if ((type == L"body") || (type == L"subTitle") || (type == L"obj"))
|
||||
{
|
||||
m_nMasterTextType = 2;
|
||||
listMasterStyle = (parentFileAs<SlideMaster>()).txStyles->bodyStyle.GetPointer();
|
||||
}
|
||||
else if (type != L"")
|
||||
{
|
||||
m_nMasterTextType = 3;
|
||||
listMasterStyle = (parentFileAs<SlideMaster>()).txStyles->otherStyle.GetPointer();
|
||||
}
|
||||
|
||||
if (listMasterStyle)
|
||||
{
|
||||
if(!txBody.is_init())
|
||||
txBody = new TxBody();
|
||||
|
||||
TextListStyle *newListStyle = new TextListStyle();
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
if(listMasterStyle->levels[i].is_init())
|
||||
listMasterStyle->levels[i]->Merge(newListStyle->levels[i]);
|
||||
if(txBody->lstStyle->levels[i].is_init())
|
||||
txBody->lstStyle->levels[i]->Merge(newListStyle->levels[i]);
|
||||
}
|
||||
txBody->lstStyle.reset(newListStyle);
|
||||
}
|
||||
}
|
||||
shape.m_nMasterTextType = m_nMasterTextType;
|
||||
|
||||
if (style.is_init())
|
||||
{
|
||||
shape.m_bIsFontRefInSlide = bIsSlidePlaceholder;
|
||||
shape.style = style;
|
||||
shape.style->SetParentFilePointer(parentFile);
|
||||
}
|
||||
if (!bIsSlidePlaceholder)
|
||||
{
|
||||
if(txBody.IsInit())
|
||||
{
|
||||
if(!shape.txBody.is_init())
|
||||
shape.txBody = new TxBody();
|
||||
|
||||
txBody->Merge(shape.txBody);
|
||||
|
||||
if (txBody.IsInit())
|
||||
{
|
||||
if(!shape.txBody.is_init())
|
||||
shape.txBody = new TxBody();
|
||||
|
||||
if (!bIsSlidePlaceholder)
|
||||
{
|
||||
txBody->Merge(shape.txBody);
|
||||
shape.txBody->Paragrs = txBody->Paragrs;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (txBody.is_init())
|
||||
{
|
||||
if(!shape.txBody.is_init())
|
||||
shape.txBody = new TxBody();
|
||||
|
||||
else
|
||||
{
|
||||
if (txBody->bodyPr.IsInit())
|
||||
txBody->bodyPr->Merge(shape.txBody->bodyPr);
|
||||
|
||||
if(txBody->lstStyle.is_init())
|
||||
txBody->bodyPr->Merge(shape.txBody->bodyPr);
|
||||
}
|
||||
if (txBody->lstStyle.is_init())
|
||||
{
|
||||
if(!shape.txBody->lstStyle.is_init())
|
||||
shape.txBody->lstStyle = new TextListStyle();
|
||||
for (int i = 0; i < 10; i++)
|
||||
{
|
||||
for (int i = 0; i < 10; i++)
|
||||
if(txBody->lstStyle->levels[i].is_init())
|
||||
txBody->lstStyle->levels[i]->Merge(body[i]);
|
||||
if(txBody->lstStyle->levels[i].is_init())
|
||||
txBody->lstStyle->levels[i]->Merge(shape.txBody->lstStyle->levels[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Shape::GetShapeFullDescription(Shape& shape, int level)const
|
||||
{
|
||||
if(level == 0)
|
||||
//shape.SetParentFilePointer(*parentFile);
|
||||
shape.SetParentPointer(parentElement);
|
||||
|
||||
if(!nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
Merge(shape);
|
||||
return;
|
||||
}
|
||||
if(parentFileIs<PPTX::SlideMaster>())
|
||||
{
|
||||
Merge(shape);
|
||||
return;
|
||||
}
|
||||
if(parentFileIs<PPTX::SlideLayout>())
|
||||
{
|
||||
FillLevelUp();
|
||||
if(levelUp != NULL)
|
||||
levelUp->GetShapeFullDescription(shape, level + 1);
|
||||
Merge(shape);
|
||||
return;
|
||||
}
|
||||
if(parentFileIs<PPTX::Slide>())
|
||||
{
|
||||
FillLevelUp();
|
||||
if(levelUp != NULL)
|
||||
levelUp->GetShapeFullDescription(shape, level + 1);
|
||||
Merge(shape, true);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
void Shape::toXmlWriterVML(NSBinPptxRW::CXmlWriter *pWriter, NSCommon::smart_ptr<PPTX::Theme>& oTheme, NSCommon::smart_ptr<PPTX::Logic::ClrMap>& oClrMap, bool in_group)
|
||||
{
|
||||
std::wstring strPath, strTextRect;
|
||||
|
||||
@ -38,8 +38,6 @@
|
||||
#include "SpPr.h"
|
||||
#include "ShapeStyle.h"
|
||||
#include "TxBody.h"
|
||||
#include "ShapeProperties.h"
|
||||
#include "ShapeTextProperties.h"
|
||||
#include "UniFill.h"
|
||||
#include "Ln.h"
|
||||
|
||||
@ -303,19 +301,10 @@ namespace PPTX
|
||||
}
|
||||
std::wstring GetText()const{if(txBody.IsInit()) return txBody->GetText(); return _T(""); };
|
||||
|
||||
void GetShapeFullDescription(Shape& shape, int level = 0)const;
|
||||
void GetRect(Aggplus::RECT& pRect)const;
|
||||
DWORD GetFill(UniFill& fill)const;
|
||||
DWORD GetLine(Ln& line)const;
|
||||
void FillLevelUp();
|
||||
void Merge(Shape& shape, bool bIsSlidePlaceholder = false);
|
||||
|
||||
void FillShapeProperties(ShapeProperties& props);
|
||||
void FillShapeTextProperties(CShapeTextProperties& props);
|
||||
void FillLevelUp()const;
|
||||
|
||||
mutable Shape const * levelUp;
|
||||
void Merge(Shape& shape, bool bIsSlidePlaceholder = false)const;
|
||||
public:
|
||||
void SetLevelUpElement(const Shape& p)const{levelUp = &p;};
|
||||
void SetLevelUpElement( Shape* p){m_pLevelUp = p;};
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const;
|
||||
void toXmlWriterVML (NSBinPptxRW::CXmlWriter* pWriter, smart_ptr<PPTX::Theme>& oTheme, smart_ptr<PPTX::Logic::ClrMap>& oClrMap, bool in_group = false);
|
||||
@ -326,8 +315,10 @@ namespace PPTX
|
||||
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
std::wstring m_name;
|
||||
bool m_bOleShape;
|
||||
|
||||
Shape * m_pLevelUp;
|
||||
int m_nMasterTextType;
|
||||
bool m_bIsFontRefInSlide;
|
||||
//-------------------------------------------------------------------------------------------------
|
||||
NvSpPr nvSpPr;
|
||||
SpPr spPr;
|
||||
nullable<ShapeStyle> style;
|
||||
@ -338,10 +329,6 @@ namespace PPTX
|
||||
nullable<OOX::Logic::CSdtContent> oTextBoxShape;
|
||||
nullable<BodyPr> oTextBoxBodyPr;
|
||||
|
||||
bool isFontRefInSlide;
|
||||
mutable nullable<TextParagraphPr> body[10];
|
||||
|
||||
// Attributes
|
||||
nullable_bool attrUseBgFill;
|
||||
protected:
|
||||
virtual void FillParentPointersForChilds();
|
||||
|
||||
@ -1,824 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* 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 Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* 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 "ShapeProperties.h"
|
||||
#include "Fills/SolidFill.h"
|
||||
#include "Fills/GradFill.h"
|
||||
#include "../Slide.h"
|
||||
#include "../SlideLayout.h"
|
||||
#include "../SlideMaster.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
ShapeProperties::ShapeProperties()
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
TextParagraphPr ppr;
|
||||
RunProperties rpr;
|
||||
ppr.defRPr = rpr;
|
||||
|
||||
levels[i] = ppr;
|
||||
masters[i] = ppr;
|
||||
}
|
||||
m_nTextType = 0;
|
||||
}
|
||||
|
||||
ShapeProperties::~ShapeProperties()
|
||||
{
|
||||
}
|
||||
|
||||
void ShapeProperties::FillFromTextBody(const nullable<TxBody>& Src)
|
||||
{
|
||||
if(Src.IsInit())
|
||||
{
|
||||
if (Src->bodyPr.IsInit())
|
||||
Src->bodyPr->Merge(bodyPr);
|
||||
|
||||
if(Src->lstStyle.IsInit())
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
if(Src->lstStyle->levels[i].IsInit())
|
||||
Src->lstStyle->levels[i]->Merge(levels[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShapeProperties::FillFromTextListStyle(const nullable<TextListStyle>& Src)
|
||||
{
|
||||
if(Src.IsInit())
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
if(Src->levels[i].IsInit())
|
||||
Src->levels[i]->Merge(masters[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void ShapeProperties::FillFromTextListStyle(const TextListStyle& Src)
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
if(Src.levels[i].IsInit())
|
||||
Src.levels[i]->Merge(masters[i]);
|
||||
}
|
||||
}
|
||||
|
||||
void ShapeProperties::FillFontRef(const FontRef& Src)
|
||||
{
|
||||
fontStyle = Src;
|
||||
}
|
||||
|
||||
void ShapeProperties::FillMasterFontSize(int size)
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
if(masters[i]->defRPr.IsInit())
|
||||
masters[i]->defRPr->sz = size;
|
||||
else
|
||||
{
|
||||
PPTX::Logic::RunProperties rpr;
|
||||
rpr.sz = size;
|
||||
masters[i]->defRPr = rpr;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetParagraphAlgn(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->algn.IsInit())
|
||||
return pParagraph->algn->get();
|
||||
|
||||
//return levels[level]->algn.get_value_or(masters[level]->algn.get_value_or(0));
|
||||
|
||||
if (levels[level]->algn.is_init())
|
||||
return levels[level]->algn.get_value();
|
||||
|
||||
if (masters[level]->algn.is_init())
|
||||
return masters[level]->algn.get_value();
|
||||
return _T("l");
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphLeftMargin(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->marL.IsInit())
|
||||
return pParagraph->marL.get();
|
||||
//return levels[level]->marL.get_value_or(levels[9].marL.get_value_or(347663));
|
||||
//return levels[level]->marL.get_value_or(masters[level]->marL.get_value_or(0));
|
||||
|
||||
if (levels[level]->marL.is_init())
|
||||
return levels[level]->marL.get();
|
||||
|
||||
if (masters[level]->marL.is_init())
|
||||
return masters[level]->marL.get();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphIndent(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->indent.IsInit())
|
||||
return pParagraph->indent.get();
|
||||
//return levels[level]->indent.get_value_or(levels[9].indent.get_value_or(-342900));
|
||||
//return levels[level]->indent.get_value_or(masters[level]->indent.get_value_or(0));
|
||||
|
||||
if (levels[level]->indent.is_init())
|
||||
return levels[level]->indent.get();
|
||||
|
||||
if (masters[level]->indent.is_init())
|
||||
return masters[level]->indent.get();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphDefTabSz(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->defTabSz.IsInit())
|
||||
return pParagraph->defTabSz.get();
|
||||
//return levels[level]->defTabSz.get_value_or(levels[9].defTabSz.get_value_or(376300));
|
||||
//return levels[level]->defTabSz.get_value_or(masters[level]->defTabSz.get_value_or(376300));
|
||||
|
||||
if (levels[level]->defTabSz.is_init())
|
||||
return levels[level]->defTabSz.get();
|
||||
|
||||
if (masters[level]->defTabSz.is_init())
|
||||
return masters[level]->defTabSz.get();
|
||||
return 376300;
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetParagraphFontAlgn(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->fontAlgn.IsInit())
|
||||
return pParagraph->fontAlgn->get();
|
||||
//return levels[level]->fontAlgn.get_value_or(levels[9].fontAlgn.get_value_or("base"));
|
||||
//return levels[level]->fontAlgn.get_value_or(masters[level]->fontAlgn.get_value_or(_T("base")));
|
||||
|
||||
if (levels[level]->fontAlgn.is_init())
|
||||
return levels[level]->fontAlgn.get_value();
|
||||
|
||||
if (masters[level]->fontAlgn.is_init())
|
||||
return masters[level]->fontAlgn.get_value();
|
||||
return _T("base");
|
||||
}
|
||||
|
||||
bool ShapeProperties::GetParagraphLatinLnBrk(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->latinLnBrk.IsInit())
|
||||
return pParagraph->latinLnBrk.get();
|
||||
//return levels[level]->latinLnBrk.get_value_or(levels[9].latinLnBrk.get_value_or(true));
|
||||
//return levels[level]->latinLnBrk.get_value_or(masters[level]->latinLnBrk.get_value_or(false));
|
||||
|
||||
if (levels[level]->latinLnBrk.is_init())
|
||||
return levels[level]->latinLnBrk.get();
|
||||
|
||||
if (masters[level]->latinLnBrk.is_init())
|
||||
return masters[level]->latinLnBrk.get();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ShapeProperties::GetParagraphRtl(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->rtl.IsInit())
|
||||
return pParagraph->rtl.get();
|
||||
//return levels[level]->rtl.get_value_or(levels[9].rtl.get_value_or(false));
|
||||
//return levels[level]->rtl.get_value_or(masters[level]->rtl.get_value_or(false));
|
||||
|
||||
if (levels[level]->rtl.is_init())
|
||||
return levels[level]->rtl.get();
|
||||
|
||||
if (masters[level]->rtl.is_init())
|
||||
return masters[level]->rtl.get();
|
||||
return false;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphLnSpc(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->lnSpc.IsInit())
|
||||
return pParagraph->lnSpc->GetVal();
|
||||
|
||||
if(levels[level]->lnSpc.IsInit())
|
||||
return levels[level]->lnSpc->GetVal();
|
||||
if(masters[level]->lnSpc.IsInit())
|
||||
return masters[level]->lnSpc->GetVal();
|
||||
return 100;//0;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphSpcAft(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->spcAft.IsInit())
|
||||
return pParagraph->spcAft->GetVal();
|
||||
|
||||
if(levels[level]->spcAft.IsInit())
|
||||
return levels[level]->spcAft->GetVal();
|
||||
if(masters[level]->spcAft.IsInit())
|
||||
return masters[level]->spcAft->GetVal();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetParagraphSpcBef(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->spcBef.IsInit())
|
||||
return pParagraph->spcBef->GetVal();
|
||||
|
||||
if(levels[level]->spcBef.IsInit())
|
||||
return levels[level]->spcBef->GetVal();
|
||||
if(masters[level]->spcBef.IsInit())
|
||||
return masters[level]->spcBef->GetVal();
|
||||
return 0;
|
||||
}
|
||||
|
||||
bool ShapeProperties::HasParagraphBullet(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->ParagraphBullet.is_init())
|
||||
return pParagraph->ParagraphBullet.has_bullet();
|
||||
|
||||
if(levels[level]->ParagraphBullet.is_init())
|
||||
return levels[level]->ParagraphBullet.has_bullet();
|
||||
|
||||
return masters[level]->ParagraphBullet.has_bullet();
|
||||
}
|
||||
|
||||
bool ShapeProperties::GetRunBold(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.IsInit())
|
||||
if(pRun->b.IsInit())
|
||||
return pRun->b.get();
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->defRPr.IsInit())
|
||||
if(pParagraph->defRPr->b.IsInit())
|
||||
return pParagraph->defRPr->b.get();
|
||||
//return levels[level].defRPr->b.get_value_or(levels[9].defRPr->b.get_value_or(false));
|
||||
//return levels[level]->defRPr->b.get_value_or(masters[level]->defRPr->b.get_value_or(false));
|
||||
|
||||
if (levels[level]->defRPr->b.is_init())
|
||||
return levels[level]->defRPr->b.get();
|
||||
|
||||
if (masters[level]->defRPr->b.is_init())
|
||||
return masters[level]->defRPr->b.get();
|
||||
return false;
|
||||
}
|
||||
|
||||
bool ShapeProperties::GetRunItalic(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.IsInit())
|
||||
if(pRun->i.IsInit())
|
||||
return pRun->i.get();
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->defRPr.IsInit())
|
||||
if(pParagraph->defRPr->i.IsInit())
|
||||
return pParagraph->defRPr->i.get();
|
||||
//return levels[level]->defRPr->i.get_value_or(levels[9].defRPr->i.get_value_or(false));
|
||||
//return levels[level]->defRPr->i.get_value_or(masters[level]->defRPr->i.get_value_or(false));
|
||||
|
||||
if (levels[level]->defRPr->i.is_init())
|
||||
return levels[level]->defRPr->i.get();
|
||||
|
||||
if (masters[level]->defRPr->i.is_init())
|
||||
return masters[level]->defRPr->i.get();
|
||||
return false;
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetRunUnderline(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.IsInit())
|
||||
if(pRun->u.IsInit())
|
||||
return pRun->u->get();
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->defRPr.IsInit())
|
||||
if(pParagraph->defRPr->u.IsInit())
|
||||
return pParagraph->defRPr->u->get();
|
||||
//return levels[level]->defRPr->u.get_value_or(masters[level]->defRPr->u.get_value_or(_T("none")));
|
||||
|
||||
if (levels[level]->defRPr->u.is_init())
|
||||
return levels[level]->defRPr->u.get_value();
|
||||
|
||||
if (masters[level]->defRPr->u.is_init())
|
||||
return masters[level]->defRPr->u.get_value();
|
||||
return _T("none");
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetRunStrike(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.IsInit())
|
||||
if(pRun->strike.IsInit())
|
||||
return pRun->strike->get();
|
||||
if(pParagraph.IsInit())
|
||||
if(pParagraph->defRPr.IsInit())
|
||||
if(pParagraph->defRPr->strike.IsInit())
|
||||
return pParagraph->defRPr->strike->get();
|
||||
//return levels[level]->defRPr->strike.get_value_or(masters[level]->defRPr->strike.get_value_or(_T("noStrike")));
|
||||
|
||||
if (levels[level]->defRPr->strike.is_init())
|
||||
return levels[level]->defRPr->strike.get_value();
|
||||
|
||||
if (masters[level]->defRPr->strike.is_init())
|
||||
return masters[level]->defRPr->strike.get_value();
|
||||
return _T("noStrike");
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetRunCap(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
if(pRun->cap.is_init())
|
||||
return pRun->cap->get();
|
||||
if(pParagraph.is_init())
|
||||
if(pParagraph->defRPr.is_init())
|
||||
if(pParagraph->defRPr->cap.is_init())
|
||||
return pParagraph->defRPr->cap->get();
|
||||
//return levels[level]->defRPr->cap.get_value_or(masters[level]->defRPr->cap.get_value_or(_T("none")));
|
||||
|
||||
if (levels[level]->defRPr->cap.is_init())
|
||||
return levels[level]->defRPr->cap.get_value();
|
||||
|
||||
if (masters[level]->defRPr->cap.is_init())
|
||||
return masters[level]->defRPr->cap.get_value();
|
||||
return _T("none");
|
||||
}
|
||||
|
||||
int ShapeProperties::GetRunBaseline(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
if(pRun->baseline.is_init())
|
||||
return pRun->baseline.get();
|
||||
if(pParagraph.is_init())
|
||||
if(pParagraph->defRPr.is_init())
|
||||
if(pParagraph->defRPr->baseline.is_init())
|
||||
return pParagraph->defRPr->baseline.get();
|
||||
|
||||
//return levels[level]->defRPr->baseline.get_value_or(masters[level]->defRPr->baseline.get_value_or(0));
|
||||
if (levels[level]->defRPr->baseline.is_init())
|
||||
return levels[level]->defRPr->baseline.get();
|
||||
|
||||
if (masters[level]->defRPr->baseline.is_init())
|
||||
return masters[level]->defRPr->baseline.get();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetRunSize(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
if(pRun->sz.is_init())
|
||||
return pRun->sz.get();
|
||||
if(pParagraph.is_init())
|
||||
if(pParagraph->defRPr.is_init())
|
||||
if(pParagraph->defRPr->sz.is_init())
|
||||
return pParagraph->defRPr->sz.get();
|
||||
//return levels[level]->defRPr->sz.get_value_or(levels[9].defRPr->sz.get_value_or(1000));
|
||||
//return levels[level]->defRPr->sz.get_value_or(masters[level]->defRPr->sz.get_value_or(1800));
|
||||
|
||||
if (levels[level]->defRPr->sz.is_init())
|
||||
return levels[level]->defRPr->sz.get();
|
||||
|
||||
if (masters[level]->defRPr->sz.is_init())
|
||||
return masters[level]->defRPr->sz.get();
|
||||
return 1800;
|
||||
}
|
||||
|
||||
int ShapeProperties::GetRunSize(int level)const
|
||||
{
|
||||
//return levels[level]->defRPr->sz.get_value_or(masters[level]->defRPr->sz.get_value_or(1800));
|
||||
|
||||
if (levels[level]->defRPr->sz.is_init())
|
||||
return levels[level]->defRPr->sz.get();
|
||||
|
||||
if (masters[level]->defRPr->sz.is_init())
|
||||
return masters[level]->defRPr->sz.get();
|
||||
return 1800;
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetRunFont(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph, LONG& lFontIndex)const
|
||||
{
|
||||
std::wstring strFontName = _T("");
|
||||
if((pRun.is_init()) && (pRun->latin.is_init()))
|
||||
strFontName = pRun->latin->typeface;
|
||||
else if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()) && (pParagraph->defRPr->latin.is_init()))
|
||||
strFontName = pParagraph->defRPr->latin->typeface;
|
||||
else
|
||||
{
|
||||
if(levels[level]->defRPr->latin.is_init())
|
||||
strFontName = levels[level]->defRPr->latin->typeface;
|
||||
else if(fontStyle.is_init())
|
||||
strFontName = (fontStyle->idx->get() == _T("minor"))?_T("+mn-lt"):_T("+mj-lt");
|
||||
else if(masters[level]->defRPr->latin.is_init())
|
||||
strFontName = masters[level]->defRPr->latin->typeface;
|
||||
}
|
||||
|
||||
if(strFontName == _T("+mj-lt"))
|
||||
{
|
||||
strFontName = MajorLatin.typeface;
|
||||
lFontIndex = 0;
|
||||
}
|
||||
else if(strFontName == _T("+mn-lt"))
|
||||
{
|
||||
strFontName = MinorLatin.typeface;
|
||||
lFontIndex = 1;
|
||||
}
|
||||
else if(strFontName == _T(""))
|
||||
{
|
||||
strFontName = MinorLatin.typeface;
|
||||
lFontIndex = 1;
|
||||
}
|
||||
return strFontName;
|
||||
}
|
||||
|
||||
std::wstring ShapeProperties::GetRunPanose(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
std::wstring panose = _T("");
|
||||
std::wstring style = _T("");
|
||||
if((pRun.is_init()) && (pRun->latin.is_init()))
|
||||
panose = pRun->latin->panose.get_value_or(_T(""));
|
||||
else if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()) && (pParagraph->defRPr->latin.is_init()))
|
||||
panose = pParagraph->defRPr->latin->panose.get_value_or(_T(""));
|
||||
else
|
||||
{
|
||||
if(levels[level]->defRPr->latin.is_init())
|
||||
panose = levels[level]->defRPr->latin->panose.get_value_or(_T(""));
|
||||
else if(fontStyle.is_init())
|
||||
style = fontStyle->idx.get_value_or(_T("major"));
|
||||
else if(masters[level]->defRPr->latin.is_init())
|
||||
panose = masters[level]->defRPr->latin->panose.get_value_or(_T(""));
|
||||
}
|
||||
|
||||
if(style == _T("major"))
|
||||
panose = MajorLatin.panose.get_value_or(_T(""));
|
||||
else if(style == _T("minor"))
|
||||
panose = MinorLatin.panose.get_value_or(_T(""));
|
||||
return panose;
|
||||
}
|
||||
|
||||
BYTE ShapeProperties::GetRunCharset(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
std::wstring charset = _T("");
|
||||
std::wstring style = _T("");
|
||||
if((pRun.is_init()) && (pRun->latin.is_init()))
|
||||
charset = pRun->latin->charset.get_value_or(_T(""));
|
||||
else if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()) && (pParagraph->defRPr->latin.is_init()))
|
||||
charset = pParagraph->defRPr->latin->charset.get_value_or(_T(""));
|
||||
|
||||
else
|
||||
{
|
||||
if(levels[level]->defRPr->latin.is_init())
|
||||
charset = levels[level]->defRPr->latin->charset.get_value_or(_T(""));
|
||||
else if(fontStyle.is_init())
|
||||
style = fontStyle->idx.get_value_or(_T("major"));
|
||||
else if(masters[level]->defRPr->latin.is_init())
|
||||
charset = masters[level]->defRPr->latin->charset.get_value_or(_T(""));
|
||||
}
|
||||
|
||||
if(style == _T("major"))
|
||||
charset = MajorLatin.charset.get_value_or(_T(""));
|
||||
else if(style == _T("minor"))
|
||||
charset = MinorLatin.charset.get_value_or(_T(""));
|
||||
if(charset == _T(""))
|
||||
charset = _T("01");
|
||||
return XmlUtils::GetInteger(charset);
|
||||
}
|
||||
|
||||
BYTE ShapeProperties::GetRunPitchFamily(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
std::wstring pitchFamily = _T("");
|
||||
std::wstring style = _T("");
|
||||
if((pRun.is_init()) && (pRun->latin.is_init()))
|
||||
pitchFamily = pRun->latin->pitchFamily.get_value_or(_T(""));
|
||||
else if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()) && (pParagraph->defRPr->latin.is_init()))
|
||||
pitchFamily = pParagraph->defRPr->latin->pitchFamily.get_value_or(_T(""));
|
||||
else
|
||||
{
|
||||
if(levels[level]->defRPr->latin.is_init())
|
||||
pitchFamily = levels[level]->defRPr->latin->pitchFamily.get_value_or(_T(""));
|
||||
else if(fontStyle.is_init())
|
||||
style = fontStyle->idx.get_value_or(_T("major"));
|
||||
else if(masters[level]->defRPr->latin.is_init())
|
||||
pitchFamily = masters[level]->defRPr->latin->pitchFamily.get_value_or(_T(""));
|
||||
}
|
||||
|
||||
if(style == _T("major"))
|
||||
pitchFamily = MajorLatin.pitchFamily.get_value_or(_T(""));
|
||||
else if(style == _T("minor"))
|
||||
pitchFamily = MinorLatin.pitchFamily.get_value_or(_T(""));
|
||||
if(pitchFamily == _T(""))
|
||||
pitchFamily = _T("0");
|
||||
return XmlUtils::GetInteger(pitchFamily);
|
||||
}
|
||||
|
||||
|
||||
DWORD ShapeProperties::GetRunRGBA(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
{
|
||||
if(pRun->Fill.is<SolidFill>())
|
||||
return pRun->Fill.as<SolidFill>().Color.GetRGBA();
|
||||
if(pRun->Fill.is<GradFill>())
|
||||
return pRun->Fill.as<GradFill>().GetFrontColor().GetRGBA();
|
||||
}
|
||||
|
||||
if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if(pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
return pParagraph->defRPr->Fill.as<SolidFill>().Color.GetRGBA();
|
||||
if(pParagraph->defRPr->Fill.is<GradFill>())
|
||||
return pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor().GetRGBA();
|
||||
}
|
||||
|
||||
if(levels[level]->defRPr->Fill.is<SolidFill>())
|
||||
return levels[level]->defRPr->Fill.as<SolidFill>().Color.GetRGBA();
|
||||
if(levels[level]->defRPr->Fill.is<GradFill>())
|
||||
return levels[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetRGBA();
|
||||
|
||||
if(fontStyle.is_init())
|
||||
return fontStyle->Color.GetRGBA();
|
||||
|
||||
if(masters[level]->defRPr->Fill.is<SolidFill>())
|
||||
return masters[level]->defRPr->Fill.as<SolidFill>().Color.GetRGBA();
|
||||
if(masters[level]->defRPr->Fill.is<GradFill>())
|
||||
return masters[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetRGBA();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetRunARGB(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
{
|
||||
if(pRun->Fill.is<SolidFill>())
|
||||
return pRun->Fill.as<SolidFill>().Color.GetARGB();
|
||||
if(pRun->Fill.is<GradFill>())
|
||||
return pRun->Fill.as<GradFill>().GetFrontColor().GetARGB();
|
||||
}
|
||||
|
||||
if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if(pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
return pParagraph->defRPr->Fill.as<SolidFill>().Color.GetARGB();
|
||||
if(pParagraph->defRPr->Fill.is<GradFill>())
|
||||
return pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor().GetARGB();
|
||||
}
|
||||
|
||||
if(levels[level]->defRPr->Fill.is<SolidFill>())
|
||||
return levels[level]->defRPr->Fill.as<SolidFill>().Color.GetARGB();
|
||||
if(levels[level]->defRPr->Fill.is<GradFill>())
|
||||
return levels[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetARGB();
|
||||
|
||||
if(fontStyle.is_init())
|
||||
return fontStyle->Color.GetARGB();
|
||||
|
||||
if(masters[level]->defRPr->Fill.is<SolidFill>())
|
||||
return masters[level]->defRPr->Fill.as<SolidFill>().Color.GetARGB();
|
||||
if(masters[level]->defRPr->Fill.is<GradFill>())
|
||||
return masters[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetARGB();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetRunBGRA(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
{
|
||||
if(pRun->Fill.is<SolidFill>())
|
||||
return pRun->Fill.as<SolidFill>().Color.GetBGRA();
|
||||
if(pRun->Fill.is<GradFill>())
|
||||
return pRun->Fill.as<GradFill>().GetFrontColor().GetBGRA();
|
||||
}
|
||||
|
||||
if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if(pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
return pParagraph->defRPr->Fill.as<SolidFill>().Color.GetBGRA();
|
||||
if(pParagraph->defRPr->Fill.is<GradFill>())
|
||||
return pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor().GetBGRA();
|
||||
}
|
||||
|
||||
if(levels[level]->defRPr->Fill.is<SolidFill>())
|
||||
return levels[level]->defRPr->Fill.as<SolidFill>().Color.GetBGRA();
|
||||
if(levels[level]->defRPr->Fill.is<GradFill>())
|
||||
return levels[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetBGRA();
|
||||
|
||||
if(fontStyle.is_init())
|
||||
return fontStyle->Color.GetBGRA();
|
||||
|
||||
if(masters[level]->defRPr->Fill.is<SolidFill>())
|
||||
return masters[level]->defRPr->Fill.as<SolidFill>().Color.GetBGRA();
|
||||
if(masters[level]->defRPr->Fill.is<GradFill>())
|
||||
return masters[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetBGRA();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetRunABGR(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
{
|
||||
if(pRun->Fill.is<SolidFill>())
|
||||
return pRun->Fill.as<SolidFill>().Color.GetABGR();
|
||||
if(pRun->Fill.is<GradFill>())
|
||||
return pRun->Fill.as<GradFill>().GetFrontColor().GetABGR();
|
||||
}
|
||||
|
||||
if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if(pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
return pParagraph->defRPr->Fill.as<SolidFill>().Color.GetABGR();
|
||||
if(pParagraph->defRPr->Fill.is<GradFill>())
|
||||
return pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor().GetABGR();
|
||||
}
|
||||
|
||||
if(levels[level]->defRPr->Fill.is<SolidFill>())
|
||||
return levels[level]->defRPr->Fill.as<SolidFill>().Color.GetABGR();
|
||||
if(levels[level]->defRPr->Fill.is<GradFill>())
|
||||
return levels[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetABGR();
|
||||
|
||||
if(fontStyle.is_init())
|
||||
return fontStyle->Color.GetABGR();
|
||||
|
||||
if(masters[level]->defRPr->Fill.is<SolidFill>())
|
||||
return masters[level]->defRPr->Fill.as<SolidFill>().Color.GetABGR();
|
||||
if(masters[level]->defRPr->Fill.is<GradFill>())
|
||||
return masters[level]->defRPr->Fill.as<GradFill>().GetFrontColor().GetABGR();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
PPTX::Logic::UniColor ShapeProperties::GetColor(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pRun.is_init())
|
||||
{
|
||||
if(pRun->Fill.is<SolidFill>())
|
||||
return pRun->Fill.as<SolidFill>().Color;
|
||||
if(pRun->Fill.is<GradFill>())
|
||||
return pRun->Fill.as<GradFill>().GetFrontColor();
|
||||
}
|
||||
|
||||
if((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if(pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
return pParagraph->defRPr->Fill.as<SolidFill>().Color;
|
||||
if(pParagraph->defRPr->Fill.is<GradFill>())
|
||||
return pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor();
|
||||
}
|
||||
|
||||
if(levels[level]->defRPr->Fill.is<SolidFill>())
|
||||
return levels[level]->defRPr->Fill.as<SolidFill>().Color;
|
||||
if(levels[level]->defRPr->Fill.is<GradFill>())
|
||||
return levels[level]->defRPr->Fill.as<GradFill>().GetFrontColor();
|
||||
|
||||
if(fontStyle.is_init())
|
||||
return fontStyle->Color;
|
||||
|
||||
if(masters[level]->defRPr->Fill.is<SolidFill>())
|
||||
return masters[level]->defRPr->Fill.as<SolidFill>().Color;
|
||||
if(masters[level]->defRPr->Fill.is<GradFill>())
|
||||
return masters[level]->defRPr->Fill.as<GradFill>().GetFrontColor();
|
||||
|
||||
UniColor oUniColor;
|
||||
return oUniColor;
|
||||
}
|
||||
|
||||
PPTX::Logic::UniColor ShapeProperties::GetColorBullet(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
if(pParagraph.IsInit())
|
||||
{
|
||||
if(pParagraph->buColor.is_init())
|
||||
{
|
||||
if (pParagraph->buColor.is<Logic::BuClr>())
|
||||
return pParagraph->buColor.as<Logic::BuClr>().Color;
|
||||
|
||||
PPTX::Logic::UniColor oColor;
|
||||
return oColor;
|
||||
}
|
||||
}
|
||||
|
||||
if (levels[level]->buColor.is_init())
|
||||
{
|
||||
if (levels[level]->buColor.is<Logic::BuClr>())
|
||||
return levels[level]->buColor.as<Logic::BuClr>().Color;
|
||||
|
||||
PPTX::Logic::UniColor oColor;
|
||||
return oColor;
|
||||
}
|
||||
|
||||
if (masters[level]->buColor.is_init())
|
||||
{
|
||||
if (masters[level]->buColor.is<Logic::BuClr>())
|
||||
return masters[level]->buColor.as<Logic::BuClr>().Color;
|
||||
|
||||
PPTX::Logic::UniColor oColor;
|
||||
return oColor;
|
||||
}
|
||||
PPTX::Logic::UniColor oColor;
|
||||
return oColor;
|
||||
}
|
||||
|
||||
void ShapeProperties::SetParentFilePointer(const WrapperFile* pFile)
|
||||
{
|
||||
if (bodyPr.IsInit())
|
||||
bodyPr->SetParentFilePointer(pFile);
|
||||
|
||||
for(int i = 0; i < 10; i ++)
|
||||
{
|
||||
levels[i]->SetParentFilePointer(pFile);
|
||||
masters[i]->SetParentFilePointer(pFile);
|
||||
}
|
||||
|
||||
if(fontStyle.is_init())
|
||||
fontStyle->SetParentFilePointer(pFile);
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetHyperlinkRGBA()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetRGBAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetRGBAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetRGBAFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetHyperlinkARGB()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetARGBFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetARGBFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetARGBFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetHyperlinkBGRA()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetBGRAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetBGRAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetBGRAFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
|
||||
DWORD ShapeProperties::GetHyperlinkABGR()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetABGRFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetABGRFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetABGRFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
@ -1,130 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* 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 Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_LOGIC_SHAPEPROPERTIES_INCLUDE_H_
|
||||
#define PPTX_LOGIC_SHAPEPROPERTIES_INCLUDE_H_
|
||||
|
||||
#include "RunProperties.h"
|
||||
#include "TextListStyle.h"
|
||||
#include "TxBody.h"
|
||||
#include "FontRef.h"
|
||||
#include "TextParagraphPr.h"
|
||||
#include "BodyPr.h"
|
||||
#include "TextFont.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
|
||||
class ShapeProperties
|
||||
{
|
||||
public:
|
||||
ShapeProperties();
|
||||
virtual ~ShapeProperties();
|
||||
|
||||
private:
|
||||
nullable<FontRef> fontStyle;
|
||||
nullable<TextParagraphPr> levels[10];
|
||||
nullable<TextParagraphPr> masters[10];
|
||||
nullable<BodyPr> bodyPr;
|
||||
|
||||
//std::string MajorLatin;
|
||||
//std::string MinorLatin;
|
||||
TextFont MajorLatin;
|
||||
TextFont MinorLatin;
|
||||
|
||||
DWORD m_nTextType;
|
||||
|
||||
public:
|
||||
|
||||
void SetTextType(DWORD dwType) { m_nTextType = 0; }
|
||||
DWORD GetTextType()const { return m_nTextType; }
|
||||
void FillFromTextListStyle(const nullable<TextListStyle>& Src);
|
||||
void FillFromTextListStyle(const TextListStyle& Src);
|
||||
void FillFromTextBody(const nullable<TxBody>& Src);
|
||||
void FillFontRef(const FontRef& Src);
|
||||
void FillMasterFontSize(int size);
|
||||
|
||||
//void SetMajorLatin(const std::string& mjltFont){MajorLatin = mjltFont;};
|
||||
//void SetMinorLatin(const std::string& mnltFont){MinorLatin = mnltFont;};
|
||||
void SetMajorLatin(const TextFont& mjltFont){MajorLatin = mjltFont;};
|
||||
void SetMinorLatin(const TextFont& mnltFont){MinorLatin = mnltFont;};
|
||||
|
||||
std::wstring GetAnchor()const{return bodyPr.IsInit() ? bodyPr->anchor.get_value_or(L"t") : L"t";};
|
||||
|
||||
std::wstring GetParagraphAlgn (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphLeftMargin (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphIndent (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphDefTabSz (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
std::wstring GetParagraphFontAlgn (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
bool GetParagraphLatinLnBrk (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
bool GetParagraphRtl (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphLnSpc (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphSpcAft (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetParagraphSpcBef (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
bool HasParagraphBullet (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
bool GetRunBold (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
bool GetRunItalic (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
std::wstring GetRunUnderline (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
std::wstring GetRunStrike (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
std::wstring GetRunCap (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetRunBaseline (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetRunSize (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
int GetRunSize (int level)const;
|
||||
|
||||
std::wstring GetRunFont (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph, LONG& lFontIndex)const;
|
||||
std::wstring GetRunPanose (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
BYTE GetRunCharset (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
BYTE GetRunPitchFamily (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
DWORD GetRunRGBA (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
DWORD GetRunARGB (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
DWORD GetRunBGRA (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
DWORD GetRunABGR (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
PPTX::Logic::UniColor GetColor(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
PPTX::Logic::UniColor GetColorBullet(int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
DWORD GetHyperlinkRGBA()const;
|
||||
DWORD GetHyperlinkARGB()const;
|
||||
DWORD GetHyperlinkBGRA()const;
|
||||
DWORD GetHyperlinkABGR()const;
|
||||
|
||||
void SetParentFilePointer(const WrapperFile* pFile);
|
||||
};
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_LOGIC_SHAPEPROPERTIES_INCLUDE_H
|
||||
@ -1,658 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* 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 Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* 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 "ShapeTextProperties.h"
|
||||
#include "Fills/SolidFill.h"
|
||||
#include "Fills/GradFill.h"
|
||||
#include "../Slide.h"
|
||||
#include "../SlideLayout.h"
|
||||
#include "../SlideMaster.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
AVSINLINE WORD GetTextAnchorFromStr(const std::wstring& str)
|
||||
{
|
||||
if (str == _T("t")) return 0;
|
||||
if (str == _T("ctr")) return 1;
|
||||
if (str == _T("b")) return 2;
|
||||
return 0;
|
||||
}
|
||||
|
||||
AVSINLINE WORD GetTextAlignFromStr(const std::wstring& str)
|
||||
{
|
||||
if (str == _T("l")) return 0;
|
||||
if (str == _T("ctr")) return 1;
|
||||
if (str == _T("r")) return 2;
|
||||
if (str == _T("just")) return 3;
|
||||
if (str == _T("dist")) return 4;
|
||||
if (str == _T("thaiDist")) return 5;
|
||||
if (str == _T("justLow")) return 6;
|
||||
return 0;
|
||||
}
|
||||
|
||||
AVSINLINE WORD GetFontAlignFromStr(const std::wstring& str)
|
||||
{
|
||||
if (str == _T("auto")) return 0;
|
||||
if (str == _T("base")) return 0;
|
||||
if (str == _T("t")) return 1;
|
||||
if (str == _T("ctr")) return 2;
|
||||
if (str == _T("b")) return 3;
|
||||
return 0;
|
||||
}
|
||||
|
||||
AVSINLINE int GetIntegerFromHex(const std::wstring& string)
|
||||
{
|
||||
return XmlUtils::GetInteger(string);
|
||||
}
|
||||
|
||||
CShapeTextProperties::CShapeTextProperties()
|
||||
{
|
||||
m_lTextType = -1;
|
||||
m_bIsFontRefFromSlide = false;
|
||||
m_lMasterTextSize = -1;
|
||||
|
||||
m_bIsSlideShape = false;
|
||||
m_masters = NULL;
|
||||
|
||||
m_pFile = NULL;
|
||||
}
|
||||
|
||||
CShapeTextProperties::~CShapeTextProperties()
|
||||
{
|
||||
}
|
||||
|
||||
void CShapeTextProperties::FillTextType(const LONG& lTextMasterType)
|
||||
{
|
||||
m_lTextType = lTextMasterType;
|
||||
}
|
||||
void CShapeTextProperties::FillFromTextBody(const nullable<TxBody>& Src, const nullable<TextParagraphPr>* bodyStyles)
|
||||
{
|
||||
if (Src.IsInit())
|
||||
{
|
||||
if (Src->bodyPr.IsInit())
|
||||
Src->bodyPr->Merge(bodyPr);
|
||||
|
||||
if (Src->lstStyle.IsInit())
|
||||
{
|
||||
for(int i = 0; i < 10; i++)
|
||||
{
|
||||
if(Src->lstStyle->levels[i].IsInit())
|
||||
{
|
||||
if (NULL == bodyStyles)
|
||||
{
|
||||
// не фик мучиться здесь с темами. Это ж не в слайде.
|
||||
// А в слайде все будет круто
|
||||
Src->lstStyle->levels[i]->Merge(m_body[i]);
|
||||
}
|
||||
else
|
||||
{
|
||||
Src->lstStyle->levels[i]->Merge(m_levels[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (NULL != bodyStyles)
|
||||
{
|
||||
m_bIsSlideShape = true;
|
||||
for (int i = 0; i < 10; ++i)
|
||||
{
|
||||
m_body[i] = bodyStyles[i];
|
||||
}
|
||||
}
|
||||
}
|
||||
void CShapeTextProperties::FillFontRef(const FontRef& Src, const bool& bIsSlideProperty)
|
||||
{
|
||||
m_FontStyle = Src;
|
||||
}
|
||||
void CShapeTextProperties::FillMasterFontSize(int size)
|
||||
{
|
||||
m_lMasterTextSize = size;
|
||||
}
|
||||
|
||||
nullable_base<WORD> CShapeTextProperties::GetParagraphAlgn(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->algn.is_init())
|
||||
prop = GetTextAlignFromStr(pParagraph->algn->get());
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphLeftMargin(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->marL.is_init())
|
||||
prop = (LONG)pParagraph->marL.get();
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphIndent(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->indent.is_init())
|
||||
prop = pParagraph->indent.get();
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphDefTabSz(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defTabSz.is_init())
|
||||
prop = (LONG)pParagraph->defTabSz.get();
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<WORD> CShapeTextProperties::GetParagraphFontAlgn(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->fontAlgn.is_init())
|
||||
prop = (WORD)GetFontAlignFromStr(pParagraph->fontAlgn->get());
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<WORD> CShapeTextProperties::GetParagraphLatinLnBrk(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->latinLnBrk.is_init())
|
||||
{
|
||||
bool bWrap = pParagraph->latinLnBrk.get();
|
||||
WORD lWrap = 0;
|
||||
if (bWrap)
|
||||
{
|
||||
lWrap &= 0xFD;
|
||||
lWrap |= 0x01;
|
||||
}
|
||||
else
|
||||
{
|
||||
lWrap &= 0xFE;
|
||||
lWrap |= 0x02;
|
||||
}
|
||||
prop = lWrap;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<WORD> CShapeTextProperties::GetParagraphRtl(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->rtl.is_init())
|
||||
{
|
||||
WORD lVal = 0;
|
||||
if (pParagraph->rtl.get())
|
||||
lVal = 1;
|
||||
|
||||
prop = lVal;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphLnSpc(int level, const nullable<TextParagraphPr>& pParagraph, const double& LnSpcReduction)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->lnSpc.is_init())
|
||||
{
|
||||
int space = pParagraph->lnSpc->GetVal();
|
||||
if (space < 0)
|
||||
prop = (LONG)(space * 127 * (1 - LnSpcReduction));// - 13200;
|
||||
else
|
||||
prop = (LONG)(space * (1 - LnSpcReduction));
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphSpcAft(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->spcAft.is_init())
|
||||
{
|
||||
int space = pParagraph->spcAft->GetVal();
|
||||
if (space < 0)
|
||||
prop = (LONG)(space * 127);// - 13200;
|
||||
else
|
||||
prop = (LONG)space;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<LONG> CShapeTextProperties::GetParagraphSpcBef(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<LONG> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->spcBef.is_init())
|
||||
{
|
||||
int space = pParagraph->spcBef->GetVal();
|
||||
if (space < 0)
|
||||
prop = (LONG)(space * 127);// - 13200;
|
||||
else
|
||||
prop = (LONG)space;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
|
||||
nullable_base<bool> CShapeTextProperties::GetHasBullet(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<bool> prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->ParagraphBullet.is_init())
|
||||
{
|
||||
prop = (bool)pParagraph->ParagraphBullet.has_bullet();
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (m_body[level].is_init())
|
||||
if (m_body[level]->ParagraphBullet.is_init())
|
||||
{
|
||||
prop = (bool)m_body[level]->ParagraphBullet.has_bullet();
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (m_levels[level].is_init())
|
||||
if (m_levels[level]->ParagraphBullet.is_init())
|
||||
{
|
||||
prop = (bool)m_levels[level]->ParagraphBullet.has_bullet();
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
|
||||
nullable_base<bool> CShapeTextProperties::GetRunBold(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<bool> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->b.is_init())
|
||||
{
|
||||
prop = (bool)pRun->b.get();
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->b.is_init())
|
||||
{
|
||||
prop = (bool)pParagraph->defRPr->b.get();
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<bool> CShapeTextProperties::GetRunItalic(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<bool> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->i.is_init())
|
||||
{
|
||||
prop = (bool)pRun->i.get();
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->i.is_init())
|
||||
{
|
||||
prop = (bool)pParagraph->defRPr->i.get();
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<bool> CShapeTextProperties::GetRunUnderline(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<bool> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->u.is_init())
|
||||
{
|
||||
prop = (_T("none") != pRun->u->get()) ? true : false;
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->u.is_init())
|
||||
{
|
||||
prop = (_T("none") != pParagraph->defRPr->u->get()) ? true : false;
|
||||
return prop;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<bool> CShapeTextProperties::GetRunStrike(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<bool> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->strike.is_init())
|
||||
{
|
||||
prop = (_T("noStrike") != pRun->strike->get()) ? true : false;
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->strike.is_init())
|
||||
prop = (_T("noStrike") != pParagraph->defRPr->strike->get()) ? true : false;
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<WORD> CShapeTextProperties::GetRunCap(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->cap.is_init())
|
||||
{
|
||||
std::wstring str = pRun->cap->get();
|
||||
if (_T("all") == str)
|
||||
prop = (WORD)1;
|
||||
else if (_T("small") == str)
|
||||
prop = (WORD)2;
|
||||
else
|
||||
prop = (WORD)0;
|
||||
|
||||
return prop;
|
||||
}
|
||||
if(pParagraph.is_init())
|
||||
if(pParagraph->defRPr.is_init())
|
||||
if(pParagraph->defRPr->cap.is_init())
|
||||
{
|
||||
std::wstring str = pParagraph->defRPr->cap->get();
|
||||
if (_T("all") == str)
|
||||
prop = (WORD)1;
|
||||
else if (_T("small") == str)
|
||||
prop = (WORD)2;
|
||||
else
|
||||
prop = (WORD)0;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<double> CShapeTextProperties::GetRunBaseline(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<double> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->baseline.is_init())
|
||||
{
|
||||
prop = (double)pRun->baseline.get() / 1000;
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->baseline.is_init())
|
||||
prop = (double)pParagraph->defRPr->baseline.get() / 1000;
|
||||
|
||||
return prop;
|
||||
}
|
||||
nullable_base<WORD> CShapeTextProperties::GetRunSize(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph, const double& FontScale)const
|
||||
{
|
||||
nullable_base<WORD> prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
if (pRun->sz.is_init())
|
||||
{
|
||||
int size = pRun->sz.get();
|
||||
prop = (WORD)((size * FontScale + 50) / 100);
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph.is_init())
|
||||
if (pParagraph->defRPr.is_init())
|
||||
if (pParagraph->defRPr->sz.is_init())
|
||||
{
|
||||
int size = pParagraph->defRPr->sz.get();
|
||||
prop = (WORD)((size * FontScale + 50) / 100);
|
||||
return prop;
|
||||
}
|
||||
|
||||
if (-1 != m_lMasterTextSize)
|
||||
{
|
||||
bool bIsSetUp = false;
|
||||
|
||||
if (m_levels[level].is_init())
|
||||
if (m_levels[level]->defRPr.is_init())
|
||||
if (m_levels[level]->defRPr->sz.is_init())
|
||||
bIsSetUp = true;
|
||||
|
||||
if (!bIsSetUp)
|
||||
{
|
||||
if (m_body[level].is_init())
|
||||
if (m_body[level]->defRPr.is_init())
|
||||
if (m_body[level]->defRPr->sz.is_init())
|
||||
bIsSetUp = true;
|
||||
}
|
||||
|
||||
if (!bIsSetUp)
|
||||
prop = (WORD)((double)(m_lMasterTextSize * FontScale + 50) / 100);
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
|
||||
nullable_base<CFontInfo> CShapeTextProperties::GetRunFont(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
nullable_base<CFontInfo> prop;
|
||||
|
||||
if ((pRun.is_init()) && (pRun->latin.is_init()))
|
||||
{
|
||||
CFontInfo oInfo;
|
||||
|
||||
oInfo.strFontName = pRun->latin->typeface;
|
||||
oInfo.strPanose = pRun->latin->panose.get_value_or(_T(""));
|
||||
oInfo.strPitchFamily = pRun->latin->pitchFamily.get_value_or(_T(""));
|
||||
oInfo.Charset = XmlUtils::GetInteger(pRun->latin->charset.get_value_or(_T("0")));
|
||||
|
||||
oInfo.FontRef = -1;
|
||||
if (oInfo.strFontName == _T("+mj-lt"))
|
||||
{
|
||||
oInfo.strFontName = MajorLatin.typeface;
|
||||
oInfo.FontRef = 0;
|
||||
}
|
||||
else if (oInfo.strFontName == _T("+mn-lt"))
|
||||
{
|
||||
oInfo.strFontName = MinorLatin.typeface;
|
||||
oInfo.FontRef = 1;
|
||||
}
|
||||
else if (oInfo.strFontName == _T(""))
|
||||
{
|
||||
oInfo.strFontName = MinorLatin.typeface;
|
||||
oInfo.FontRef = 1;
|
||||
}
|
||||
|
||||
prop = oInfo;
|
||||
}
|
||||
else if ((pParagraph.is_init()) && (pParagraph->defRPr.is_init()) && (pParagraph->defRPr->latin.is_init()))
|
||||
{
|
||||
CFontInfo oInfo;
|
||||
|
||||
oInfo.strFontName = pParagraph->defRPr->latin->typeface;
|
||||
oInfo.strPanose = pParagraph->defRPr->latin->panose.get_value_or(_T(""));
|
||||
oInfo.strPitchFamily = pParagraph->defRPr->latin->pitchFamily.get_value_or(_T(""));
|
||||
oInfo.Charset = XmlUtils::GetInteger(pParagraph->defRPr->latin->charset.get_value_or(_T("0")));
|
||||
|
||||
oInfo.FontRef = -1;
|
||||
if (oInfo.strFontName == _T("+mj-lt"))
|
||||
{
|
||||
oInfo.strFontName = MajorLatin.typeface;
|
||||
oInfo.FontRef = 0;
|
||||
}
|
||||
else if (oInfo.strFontName == _T("+mn-lt"))
|
||||
{
|
||||
oInfo.strFontName = MinorLatin.typeface;
|
||||
oInfo.FontRef = 1;
|
||||
}
|
||||
else if (oInfo.strFontName == _T(""))
|
||||
{
|
||||
oInfo.strFontName = MinorLatin.typeface;
|
||||
oInfo.FontRef = 1;
|
||||
}
|
||||
prop = oInfo;
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
PPTX::Logic::UniColor CShapeTextProperties::GetColor(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
PPTX::Logic::UniColor prop;
|
||||
|
||||
if (pRun.is_init())
|
||||
{
|
||||
if (pRun->Fill.is<SolidFill>())
|
||||
{
|
||||
prop = pRun->Fill.as<SolidFill>().Color;
|
||||
return prop;
|
||||
}
|
||||
if (pRun->Fill.is<GradFill>())
|
||||
{
|
||||
prop = pRun->Fill.as<GradFill>().GetFrontColor();
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
|
||||
if ((pParagraph.is_init()) && (pParagraph->defRPr.is_init()))
|
||||
{
|
||||
if (pParagraph->defRPr->Fill.is<SolidFill>())
|
||||
{
|
||||
prop = pParagraph->defRPr->Fill.as<SolidFill>().Color;
|
||||
return prop;
|
||||
}
|
||||
if (pParagraph->defRPr->Fill.is<GradFill>())
|
||||
{
|
||||
prop = pParagraph->defRPr->Fill.as<GradFill>().GetFrontColor();
|
||||
return prop;
|
||||
}
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
PPTX::Logic::UniColor CShapeTextProperties::GetColorBullet(int level, const nullable<TextParagraphPr>& pParagraph)const
|
||||
{
|
||||
PPTX::Logic::UniColor prop;
|
||||
|
||||
if (pParagraph.is_init())
|
||||
{
|
||||
if (pParagraph->buColor.is_init())
|
||||
{
|
||||
if (pParagraph->buColor.is<Logic::BuClr>())
|
||||
prop = pParagraph->buColor.as<Logic::BuClr>().Color;
|
||||
}
|
||||
}
|
||||
|
||||
return prop;
|
||||
}
|
||||
|
||||
DWORD CShapeTextProperties::GetHyperlinkRGBA()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetRGBAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetRGBAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetRGBAFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
DWORD CShapeTextProperties::GetHyperlinkARGB()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetARGBFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetARGBFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetARGBFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
DWORD CShapeTextProperties::GetHyperlinkBGRA()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetBGRAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetBGRAFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetBGRAFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
DWORD CShapeTextProperties::GetHyperlinkABGR()const
|
||||
{
|
||||
if (!bodyPr.IsInit()) return 0;
|
||||
|
||||
if(bodyPr->parentFileIs<Slide>())
|
||||
return bodyPr->parentFileAs<Slide>().GetABGRFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideLayout>())
|
||||
return bodyPr->parentFileAs<SlideLayout>().GetABGRFromMap(_T("hlink"));
|
||||
else if(bodyPr->parentFileIs<SlideMaster>())
|
||||
return bodyPr->parentFileAs<SlideMaster>().GetABGRFromMap(_T("hlink"));
|
||||
else return 0;
|
||||
}
|
||||
|
||||
void CShapeTextProperties::SetParentFilePointer(const WrapperFile* pFile)
|
||||
{
|
||||
if (bodyPr.IsInit())
|
||||
bodyPr->SetParentFilePointer(pFile);
|
||||
|
||||
m_pFile = pFile;
|
||||
|
||||
//for(int i = 0; i < 10; i ++)
|
||||
//{
|
||||
// m_levels[i]->SetParentFilePointer(pFile);
|
||||
// m_body[i]->SetParentFilePointer(pFile);
|
||||
//}
|
||||
|
||||
if(m_FontStyle.is_init())
|
||||
m_FontStyle->SetParentFilePointer(pFile);
|
||||
}
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
@ -1,176 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2017
|
||||
*
|
||||
* 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 Lubanas st. 125a-25, Riga, Latvia,
|
||||
* EU, LV-1021.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#ifndef PPTX_LOGIC_SHAPETEXTPROPERTIES_INCLUDE_H_
|
||||
#define PPTX_LOGIC_SHAPETEXTPROPERTIES_INCLUDE_H_
|
||||
|
||||
#include "RunProperties.h"
|
||||
#include "TextListStyle.h"
|
||||
#include "TxBody.h"
|
||||
#include "FontRef.h"
|
||||
#include "TextParagraphPr.h"
|
||||
#include "BodyPr.h"
|
||||
#include "TextFont.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
namespace Logic
|
||||
{
|
||||
class CFontInfo
|
||||
{
|
||||
public:
|
||||
LONG FontRef;
|
||||
std::wstring strFontName;
|
||||
std::wstring strPanose;
|
||||
std::wstring strPitchFamily;
|
||||
BYTE Charset;
|
||||
|
||||
public:
|
||||
CFontInfo()
|
||||
{
|
||||
FontRef = -1;
|
||||
strFontName = _T("");
|
||||
strPanose = _T("");
|
||||
strPitchFamily = _T("");
|
||||
Charset = 0;
|
||||
}
|
||||
CFontInfo(const CFontInfo& oSrc)
|
||||
{
|
||||
*this = oSrc;
|
||||
}
|
||||
CFontInfo& operator=(const CFontInfo& oSrc)
|
||||
{
|
||||
FontRef = oSrc.FontRef;
|
||||
strFontName = oSrc.strFontName;
|
||||
strPanose = oSrc.strPanose;
|
||||
strPitchFamily = oSrc.strPitchFamily;
|
||||
Charset = oSrc.Charset;
|
||||
|
||||
return *this;
|
||||
}
|
||||
};
|
||||
|
||||
class CShapeTextProperties
|
||||
{
|
||||
public:
|
||||
CShapeTextProperties();
|
||||
virtual ~CShapeTextProperties();
|
||||
|
||||
private:
|
||||
nullable<FontRef> m_FontStyle;
|
||||
LONG m_lTextType;
|
||||
nullable<TextParagraphPr> m_levels[10];
|
||||
nullable<TextParagraphPr> m_body[10];
|
||||
nullable<BodyPr> bodyPr;
|
||||
|
||||
// просто указатель - он должен выставиться из темы
|
||||
std::vector<nullable<TextParagraphPr>*>* m_masters;
|
||||
|
||||
TextFont MajorLatin;
|
||||
TextFont MinorLatin;
|
||||
|
||||
bool m_bIsFontRefFromSlide;
|
||||
int m_lMasterTextSize; // заглушка под таблицы.
|
||||
|
||||
bool m_bIsSlideShape;
|
||||
|
||||
const WrapperFile* m_pFile;
|
||||
|
||||
public:
|
||||
void FillTextType(const LONG& lTextMasterType);
|
||||
void FillFromTextBody(const nullable<TxBody>& Src, const nullable<TextParagraphPr>* bodyStyles);
|
||||
void FillFontRef(const FontRef& Src, const bool& bIsSlideProperty);
|
||||
void FillMasterFontSize(int size);
|
||||
|
||||
AVSINLINE void SetMajorLatin(const TextFont& mjltFont){MajorLatin = mjltFont;};
|
||||
AVSINLINE void SetMinorLatin(const TextFont& mnltFont){MinorLatin = mnltFont;};
|
||||
|
||||
AVSINLINE void SetMasterStyles(std::vector<nullable<TextParagraphPr>*>* pStyles) { m_masters = pStyles; }
|
||||
|
||||
AVSINLINE nullable<TextParagraphPr>* GetLevels()
|
||||
{
|
||||
if (!m_bIsSlideShape)
|
||||
return NULL;
|
||||
return m_levels;
|
||||
}
|
||||
AVSINLINE nullable<TextParagraphPr>* GetLevelsBody() { return m_body; }
|
||||
AVSINLINE LONG GetTextType() { return m_lTextType; }
|
||||
AVSINLINE LONG GetFontRef(bool& bIsSlideSetUp)
|
||||
{
|
||||
bIsSlideSetUp = m_bIsFontRefFromSlide;
|
||||
|
||||
if (m_FontStyle.is_init() && m_FontStyle->idx.is_init())
|
||||
{
|
||||
return (m_FontStyle->idx->get() == _T("minor")) ? 1 : 0;
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::wstring GetAnchor()const{return bodyPr.IsInit() ? bodyPr->anchor.get_value_or(L"t") : L"t"; };
|
||||
|
||||
nullable_base<WORD> GetParagraphAlgn (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<LONG> GetParagraphLeftMargin (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<LONG> GetParagraphIndent (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<LONG> GetParagraphDefTabSz (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<WORD> GetParagraphFontAlgn (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<WORD> GetParagraphLatinLnBrk (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<WORD> GetParagraphRtl (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<LONG> GetParagraphLnSpc (int level, const nullable<TextParagraphPr>& pParagraph, const double& LnSpcReduction)const;
|
||||
nullable_base<LONG> GetParagraphSpcAft (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<LONG> GetParagraphSpcBef (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
nullable_base<bool> GetHasBullet (int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
nullable_base<bool> GetRunBold (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<bool> GetRunItalic (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<bool> GetRunUnderline (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<bool> GetRunStrike (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<WORD> GetRunCap (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<double> GetRunBaseline (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
nullable_base<WORD> GetRunSize (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph, const double& FontScale)const;
|
||||
|
||||
nullable_base<CFontInfo> GetRunFont (int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
PPTX::Logic::UniColor GetColor(int level, const nullable<RunProperties>& pRun, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
PPTX::Logic::UniColor GetColorBullet(int level, const nullable<TextParagraphPr>& pParagraph)const;
|
||||
|
||||
DWORD GetHyperlinkRGBA()const;
|
||||
DWORD GetHyperlinkARGB()const;
|
||||
DWORD GetHyperlinkBGRA()const;
|
||||
DWORD GetHyperlinkABGR()const;
|
||||
|
||||
void SetParentFilePointer(const WrapperFile* pFile);
|
||||
};
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
#endif // PPTX_LOGIC_SHAPETEXTPROPERTIES_INCLUDE_H_
|
||||
@ -37,8 +37,6 @@
|
||||
#include "./../Logic/NvGrpSpPr.h"
|
||||
#include "./../Logic/GrpSpPr.h"
|
||||
#include "SpTreeElem.h"
|
||||
#include "ShapeProperties.h"
|
||||
#include "ShapeTextProperties.h"
|
||||
|
||||
#include "../../../DesktopEditor/graphics/aggplustypes.h"
|
||||
|
||||
|
||||
@ -114,16 +114,5 @@ namespace PPTX
|
||||
CellProperties->SetParentPointer(this);
|
||||
}
|
||||
|
||||
void TableCell::GetShapeProperties(ShapeProperties& props)const
|
||||
{
|
||||
if(parentFileIs<Slide>())
|
||||
{
|
||||
parentFileAs<Slide>().FillShapeProperties(props, _T("table-cell"));
|
||||
props.FillFromTextBody(txBody);
|
||||
|
||||
//props.SetParentFilePointer(parentFile);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace Logic
|
||||
} // namespace PPTX
|
||||
|
||||
@ -36,7 +36,6 @@
|
||||
#include "./../../WrapperWritingElement.h"
|
||||
#include "./../TxBody.h"
|
||||
#include "TableCellProperties.h"
|
||||
#include "../ShapeProperties.h"
|
||||
|
||||
namespace PPTX
|
||||
{
|
||||
@ -59,8 +58,6 @@ namespace PPTX
|
||||
|
||||
void ReadAttributes(XmlUtils::CXmlLiteReader& oReader);
|
||||
|
||||
virtual void GetShapeProperties(ShapeProperties& props)const;
|
||||
|
||||
virtual void toXmlWriter(NSBinPptxRW::CXmlWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartNode(_T("a:tc"));
|
||||
|
||||
@ -138,7 +138,6 @@ namespace PPTX
|
||||
pWriter->EndNode(_T("p:txStyles"));
|
||||
}
|
||||
|
||||
public:
|
||||
nullable<TextListStyle> titleStyle;
|
||||
nullable<TextListStyle> bodyStyle;
|
||||
nullable<TextListStyle> otherStyle;
|
||||
|
||||
@ -52,7 +52,6 @@
|
||||
#include "Logic/CxnSp.h"
|
||||
#include "Logic/GraphicFrame.h"
|
||||
#include "Logic/TxBody.h"
|
||||
#include "Logic/ShapeProperties.h"
|
||||
#include "Logic/SpTree.h"
|
||||
#include "Logic/UniFill.h"
|
||||
#include "Logic/UniColor.h"
|
||||
|
||||
@ -41,7 +41,6 @@
|
||||
#include "Logic/Transitions/Transition.h"
|
||||
#include "Logic/Timing/Timing.h"
|
||||
|
||||
#include "Logic/ShapeProperties.h"
|
||||
#include "Logic/Bg.h"
|
||||
|
||||
#include "Theme.h"
|
||||
@ -73,8 +72,6 @@ namespace PPTX
|
||||
virtual ~Slide()
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
//FileContainer::read(filename, map);
|
||||
@ -147,38 +144,7 @@ namespace PPTX
|
||||
return type().DefaultFileName();
|
||||
}
|
||||
//-------------------------------------------------
|
||||
virtual void FillShapeProperties(Logic::ShapeProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if (Layout.IsInit())
|
||||
Layout->FillShapeProperties(props, type);
|
||||
}
|
||||
virtual void FillShapeTextProperties(Logic::CShapeTextProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if (Layout.IsInit())
|
||||
Layout->FillShapeTextProperties(props, type);
|
||||
}
|
||||
virtual bool GetBackground(Logic::BgPr& bg, DWORD& ARGB)const
|
||||
{
|
||||
if (cSld->bg.is_init())
|
||||
{
|
||||
if(cSld->bg->bgPr.is_init())
|
||||
bg = cSld->bg->bgPr.get();
|
||||
else if(cSld->bg->bgRef.is_init())
|
||||
{
|
||||
ARGB = cSld->bg->bgRef->Color.GetARGB();
|
||||
theme->themeElements.fmtScheme.GetFillStyle(cSld->bg->bgRef->idx.get_value_or(0), bg.Fill);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else//from slideLayout
|
||||
{
|
||||
if (Layout.IsInit())
|
||||
Layout->GetBackground(bg, ARGB);
|
||||
return false;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
virtual std::wstring GetMediaFullPathNameFromRId(const OOX::RId& rid)const
|
||||
{
|
||||
smart_ptr<OOX::Image> p = GetImage(rid);
|
||||
@ -362,7 +328,6 @@ namespace PPTX
|
||||
pReader->Seek(end);
|
||||
}
|
||||
|
||||
public:
|
||||
nullable_bool show;
|
||||
nullable_bool showMasterPhAnim;
|
||||
nullable_bool showMasterSp;
|
||||
@ -380,8 +345,7 @@ namespace PPTX
|
||||
smart_ptr<TableStyles> tableStyles_;
|
||||
|
||||
smart_ptr<PPTX::Comments> comments;
|
||||
|
||||
public:
|
||||
//--------------------------------------------------------------------------------------
|
||||
void ApplyRels()
|
||||
{
|
||||
Layout = FileContainer::Get(OOX::Presentation::FileTypes::SlideLayout).smart_dynamic_cast<PPTX::SlideLayout>();//boost::shared_dynamic_cast<PPTX::SlideLayout, PPTX::File>(FileContainer::get(OOX::Presentation::FileTypes::SlideLayout));
|
||||
|
||||
@ -46,7 +46,6 @@
|
||||
|
||||
#include "Logic/SpTreeElem.h"
|
||||
#include "Logic/Shape.h"
|
||||
#include "Logic/ShapeProperties.h"
|
||||
|
||||
#include "Theme.h"
|
||||
#include "SlideMaster.h"
|
||||
@ -73,8 +72,6 @@ namespace PPTX
|
||||
virtual ~SlideLayout()
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
m_sOutputFilename = filename.GetFilename();
|
||||
@ -114,7 +111,6 @@ namespace PPTX
|
||||
FileContainer::write(filename, directory, content);
|
||||
}
|
||||
|
||||
public:
|
||||
virtual const OOX::FileType type() const
|
||||
{
|
||||
return OOX::Presentation::FileTypes::SlideLayout;
|
||||
@ -128,103 +124,40 @@ namespace PPTX
|
||||
return type().DefaultFileName();
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void GetLevelUp(const Logic::Shape& pShape)const
|
||||
virtual void GetLevelUp(Logic::Shape* pShape)
|
||||
{
|
||||
if(pShape.nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring idx = /*pShape.nvSpPr->nvPr->ph.is_init()?*/pShape.nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));//:"";
|
||||
std::wstring type = /*pShape.nvSpPr->nvPr->ph.is_init()?*/pShape.nvSpPr.nvPr.ph->type.get_value_or(_T("body"));//:"";
|
||||
if(type == _T("ctrTitle"))
|
||||
type = _T("title");
|
||||
if (!pShape) return;
|
||||
|
||||
size_t count = cSld.spTree.SpTreeElems.size();
|
||||
for(size_t i = 0; i < count; ++i)
|
||||
if(pShape->nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring idx = pShape->nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));
|
||||
std::wstring type = pShape->nvSpPr.nvPr.ph->type.get_value_or(_T("body"));
|
||||
|
||||
if(type == L"ctrTitle") type = L"title";
|
||||
|
||||
for(size_t i = 0; i < cSld.spTree.SpTreeElems.size(); ++i)
|
||||
{
|
||||
const PPTX::Logic::SpTreeElem* pElem = &cSld.spTree.SpTreeElems[i];
|
||||
|
||||
if(pElem->is<Logic::Shape>())
|
||||
smart_ptr<Logic::Shape> pLayoutShape = cSld.spTree.SpTreeElems[i].GetElem().smart_dynamic_cast<Logic::Shape>();
|
||||
|
||||
if(pLayoutShape.IsInit())
|
||||
{
|
||||
const Logic::Shape& LayoutShape = pElem->as<Logic::Shape>();
|
||||
if(LayoutShape.nvSpPr.nvPr.ph.is_init())
|
||||
if(pLayoutShape->nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring lIdx = /*LayoutShape->nvSpPr->nvPr->ph.is_init()?*/LayoutShape.nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));//:"";
|
||||
std::wstring lType = /*LayoutShape->nvSpPr->nvPr->ph.is_init()?*/LayoutShape.nvSpPr.nvPr.ph->type.get_value_or(_T("body"));//:"";
|
||||
if(lType == _T("ctrTitle"))
|
||||
lType = _T("title");
|
||||
std::wstring lIdx = pLayoutShape->nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));
|
||||
std::wstring lType = pLayoutShape->nvSpPr.nvPr.ph->type.get_value_or(_T("body"));
|
||||
|
||||
if(lType == _T("ctrTitle")) lType = _T("title");
|
||||
|
||||
if((type == lType) && (idx == lIdx))
|
||||
{
|
||||
pShape.SetLevelUpElement(LayoutShape);
|
||||
pShape->SetLevelUpElement(pLayoutShape.operator->());
|
||||
return;
|
||||
}
|
||||
|
||||
//if(lType == "ctrTitle")
|
||||
// lType = "title";
|
||||
//if(idx == LayoutShape->nvSpPr->nvPr->idx.get_value_or("0"))
|
||||
//{
|
||||
// if((type == LayoutShape->nvSpPr->nvPr->type.get_value_or("")) || ((type == "") && (LayoutShape->nvSpPr->nvPr->type.get_value_or("") != "")))
|
||||
// pShape->SetLevelUpElement(LayoutShape);
|
||||
// return;
|
||||
//}
|
||||
//if((type == lType) && (type != ""))
|
||||
//{
|
||||
// if(idx == lIdx)
|
||||
// {
|
||||
// pShape.SetLevelUpElement(LayoutShape);
|
||||
// return;
|
||||
// }
|
||||
// continue;
|
||||
//}
|
||||
//if((type == lType) && (type == ""))
|
||||
//{
|
||||
// if((idx == lIdx) && (idx != ""))
|
||||
// {
|
||||
// pShape.SetLevelUpElement(LayoutShape);
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
//if(type != lType)
|
||||
//{
|
||||
// if((idx == lIdx) && (idx != ""))
|
||||
// {
|
||||
// pShape.SetLevelUpElement(LayoutShape);
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
virtual void FillShapeProperties(Logic::ShapeProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if(Master.IsInit())
|
||||
Master->FillShapeProperties(props, type);
|
||||
}
|
||||
virtual void FillShapeTextProperties(Logic::CShapeTextProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if(Master.IsInit())
|
||||
Master->FillShapeTextProperties(props, type);
|
||||
}
|
||||
virtual void GetBackground(Logic::BgPr& bg, DWORD& ARGB)const
|
||||
{
|
||||
if(cSld.bg.is_init())
|
||||
{
|
||||
if(cSld.bg->bgPr.is_init())
|
||||
bg = cSld.bg->bgPr.get();
|
||||
else if(cSld.bg->bgRef.is_init())
|
||||
{
|
||||
ARGB = cSld.bg->bgRef->Color.GetARGB();
|
||||
theme->themeElements.fmtScheme.GetFillStyle(cSld.bg->bgRef->idx.get_value_or(0), bg.Fill);
|
||||
//bg.SetParentFilePointer(this);
|
||||
}
|
||||
}
|
||||
else//from slideMaster
|
||||
{
|
||||
if(Master.IsInit())
|
||||
Master->GetBackground(bg, ARGB);
|
||||
}
|
||||
}
|
||||
virtual std::wstring GetMediaFullPathNameFromRId(const OOX::RId& rid)const
|
||||
{
|
||||
smart_ptr<OOX::Image> p = GetImage(rid);
|
||||
|
||||
@ -45,7 +45,6 @@
|
||||
#include "Logic/XmlId.h"
|
||||
|
||||
#include "Logic/Shape.h"
|
||||
#include "Logic/ShapeProperties.h"
|
||||
#include "Logic/TxBody.h"
|
||||
#include "Logic/UniColor.h"
|
||||
|
||||
@ -72,8 +71,6 @@ namespace PPTX
|
||||
virtual ~SlideMaster()
|
||||
{
|
||||
}
|
||||
|
||||
public:
|
||||
virtual void read(const OOX::CPath& filename, FileMap& map)
|
||||
{
|
||||
m_sOutputFilename = filename.GetFilename();
|
||||
@ -121,8 +118,6 @@ namespace PPTX
|
||||
WrapperFile::write(filename, directory, content);
|
||||
FileContainer::write(filename, directory, content);
|
||||
}
|
||||
|
||||
public:
|
||||
virtual const OOX::FileType type() const
|
||||
{
|
||||
return OOX::Presentation::FileTypes::SlideMaster;
|
||||
@ -135,170 +130,38 @@ namespace PPTX
|
||||
{
|
||||
return type().DefaultFileName();
|
||||
}
|
||||
|
||||
public:
|
||||
void GetLevelUp(const Logic::Shape& pShape)const
|
||||
void GetLevelUp(Logic::Shape* pShape)
|
||||
{
|
||||
if(pShape.nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring idx = /*pShape.nvSpPr->nvPr->ph.is_init()?*/pShape.nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));//:"";
|
||||
std::wstring type = /*pShape.nvSpPr->nvPr->ph.is_init()?*/pShape.nvSpPr.nvPr.ph->type.get_value_or(_T("body"));//:"";
|
||||
if(type == _T("ctrTitle"))
|
||||
type = _T("title");
|
||||
if (!pShape) return;
|
||||
|
||||
size_t count = cSld.spTree.SpTreeElems.size();
|
||||
for (size_t i = 0; i < count; ++i)
|
||||
if(pShape->nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring idx = pShape->nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));
|
||||
std::wstring type = pShape->nvSpPr.nvPr.ph->type.get_value_or(_T("body"));
|
||||
|
||||
if (type == _T("ctrTitle")) type = _T("title");
|
||||
|
||||
for (size_t i = 0; i < cSld.spTree.SpTreeElems.size(); ++i)
|
||||
{
|
||||
const PPTX::Logic::SpTreeElem* pElem = &cSld.spTree.SpTreeElems[i];
|
||||
if(pElem->is<Logic::Shape>())
|
||||
smart_ptr<Logic::Shape> pMasterShape = cSld.spTree.SpTreeElems[i].GetElem().smart_dynamic_cast<Logic::Shape>();
|
||||
if (pMasterShape.IsInit())
|
||||
{
|
||||
const Logic::Shape& MasterShape = pElem->as<Logic::Shape>();
|
||||
if(MasterShape.nvSpPr.nvPr.ph.is_init())
|
||||
if (pMasterShape->nvSpPr.nvPr.ph.is_init())
|
||||
{
|
||||
std::wstring lIdx = /*MasterShape->nvSpPr->nvPr->ph.is_init()?*/MasterShape.nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));//:"";
|
||||
std::wstring lType = /*MasterShape->nvSpPr->nvPr->ph.is_init()?*/MasterShape.nvSpPr.nvPr.ph->type.get_value_or(_T("body"));//:"";
|
||||
if(lType == _T("ctrTitle"))
|
||||
lType = _T("title");
|
||||
if(type == lType)
|
||||
std::wstring lIdx = pMasterShape->nvSpPr.nvPr.ph->idx.get_value_or(_T("0"));
|
||||
std::wstring lType = pMasterShape->nvSpPr.nvPr.ph->type.get_value_or(_T("body"));
|
||||
|
||||
if (lType == L"ctrTitle") lType = L"title";
|
||||
if (type == lType)
|
||||
{
|
||||
pShape.SetLevelUpElement(MasterShape);
|
||||
pShape->SetLevelUpElement(pMasterShape.operator->());
|
||||
return;
|
||||
}
|
||||
|
||||
//if(idx == MasterShape->nvSpPr->nvPr->idx.get_value_or("0"))
|
||||
//{
|
||||
// if((type == MasterShape->nvSpPr->nvPr->type.get_value_or("")) || ((type == "") && (MasterShape->nvSpPr->nvPr->type.get_value_or("") != "")))
|
||||
// pShape->SetLevelUpElement(MasterShape);
|
||||
// return;
|
||||
//}
|
||||
//if((type == lType) && (type != ""))
|
||||
//{
|
||||
// //if(idx == lIdx)
|
||||
// //{
|
||||
// pShape.SetLevelUpElement(MasterShape);
|
||||
// return;
|
||||
// //}
|
||||
// //continue;
|
||||
//}
|
||||
//if((type == lType) && (type == ""))
|
||||
//{
|
||||
// if((idx == lType) && (idx != ""))
|
||||
// {
|
||||
// pShape.SetLevelUpElement(MasterShape);
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
//if(type != lType)
|
||||
//{
|
||||
// if((idx == lIdx) && (idx != ""))
|
||||
// {
|
||||
// pShape.SetLevelUpElement(MasterShape);
|
||||
// return;
|
||||
// }
|
||||
//}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void FillShapeProperties(Logic::ShapeProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if((theme.IsInit()) && (theme->presentation.IsInit()))
|
||||
{
|
||||
PPTX::Presentation* pPres = const_cast<PPTX::Presentation*>(theme->presentation.operator->());
|
||||
|
||||
pPres->SetClrMap(clrMap);
|
||||
pPres->SetClrScheme(theme->themeElements.clrScheme);
|
||||
}
|
||||
if((theme.IsInit()) && (type != _T("")))
|
||||
theme->FillShapeProperties(props, type);
|
||||
|
||||
if(txStyles.is_init())
|
||||
{
|
||||
// props.FillFromTextListStyle(txStyles->otherStyle, true);
|
||||
|
||||
//if(type == "")
|
||||
//{
|
||||
// if(Theme->spDef.is_init())
|
||||
// {
|
||||
// props.FillFromTextListStyle(Theme->spDef->lstStyle, true);
|
||||
// if(Theme->spDef->style.is_init())
|
||||
// props.FillFontRef(Theme->spDef->style->fontRef.get());
|
||||
// }
|
||||
// else
|
||||
// props.FillFromTextListStyle(txStyles->otherStyle, true);
|
||||
// return;
|
||||
//}
|
||||
|
||||
if((type == _T("title")) || (type == _T("ctrTitle")))
|
||||
{
|
||||
props.FillFromTextListStyle(txStyles->titleStyle);
|
||||
props.SetTextType(1);
|
||||
}
|
||||
else if((type == _T("body")) || (type == _T("subTitle")) || (type == _T("obj")))
|
||||
{
|
||||
props.FillFromTextListStyle(txStyles->bodyStyle);
|
||||
props.SetTextType(2);
|
||||
}
|
||||
else if(type != _T(""))
|
||||
{
|
||||
props.FillFromTextListStyle(txStyles->otherStyle);
|
||||
props.SetTextType(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
props.FillFromTextListStyle(txStyles->otherStyle);
|
||||
props.SetTextType(3);
|
||||
|
||||
if(theme.IsInit())
|
||||
theme->FillShapeProperties(props, type);
|
||||
}
|
||||
}
|
||||
}
|
||||
void FillShapeTextProperties(Logic::CShapeTextProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if((theme.IsInit()) && (theme->presentation.IsInit()))
|
||||
{
|
||||
PPTX::Presentation* pPres = const_cast<PPTX::Presentation*>(theme->presentation.operator->());
|
||||
|
||||
pPres->SetClrMap(clrMap);
|
||||
pPres->SetClrScheme(theme->themeElements.clrScheme);
|
||||
}
|
||||
|
||||
if (type == _T("table-cell"))
|
||||
props.FillMasterFontSize(1800);
|
||||
|
||||
if ((type == _T("title")) || (type == _T("ctrTitle")))
|
||||
{
|
||||
props.FillTextType(1);
|
||||
}
|
||||
else if ((type == _T("body")) || (type == _T("subTitle")) || (type == _T("obj")))
|
||||
{
|
||||
props.FillTextType(2);
|
||||
}
|
||||
else if (type != _T(""))
|
||||
{
|
||||
props.FillTextType(3);
|
||||
}
|
||||
else
|
||||
{
|
||||
props.FillTextType(0);
|
||||
}
|
||||
}
|
||||
void GetBackground(Logic::BgPr& bg, DWORD& ARGB)const
|
||||
{
|
||||
if(cSld.bg.is_init())
|
||||
{
|
||||
if(cSld.bg->bgPr.is_init())
|
||||
bg = cSld.bg->bgPr.get();
|
||||
else if(cSld.bg->bgRef.is_init())
|
||||
{
|
||||
ARGB = cSld.bg->bgRef->Color.GetARGB();
|
||||
theme->themeElements.fmtScheme.GetFillStyle(cSld.bg->bgRef->idx.get_value_or(0), bg.Fill);
|
||||
// bg.SetParentFilePointer(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
virtual std::wstring GetMediaFullPathNameFromRId(const OOX::RId& rid)const
|
||||
{
|
||||
smart_ptr<OOX::Image> p = GetImage(rid);
|
||||
@ -321,8 +184,7 @@ namespace PPTX
|
||||
return p->filename().m_strFilename;
|
||||
}
|
||||
|
||||
//---------------------Colors from map---------------------------------------
|
||||
|
||||
//---------------------Colors from map---------------------------------------
|
||||
DWORD GetRGBAFromMap(const std::wstring& str)const
|
||||
{
|
||||
return theme->GetRGBAFromScheme(clrMap.GetColorSchemeIndex(str));
|
||||
@ -342,9 +204,7 @@ namespace PPTX
|
||||
{
|
||||
return theme->GetABGRFromScheme(clrMap.GetColorSchemeIndex(str));
|
||||
}
|
||||
|
||||
//---------------------------Colors from scheme------------------------------
|
||||
|
||||
//---------------------------Colors from scheme------------------------------
|
||||
DWORD GetRGBAFromScheme(const std::wstring& str)const
|
||||
{
|
||||
return theme->GetRGBAFromScheme(str);
|
||||
@ -365,7 +225,7 @@ namespace PPTX
|
||||
return theme->GetABGRFromScheme(str);
|
||||
}
|
||||
|
||||
//void ApplyColors();
|
||||
|
||||
virtual void toPPTY(NSBinPptxRW::CBinaryFileWriter* pWriter) const
|
||||
{
|
||||
pWriter->StartRecord(NSBinPptxRW::NSMainTables::SlideMasters);
|
||||
@ -476,7 +336,8 @@ namespace PPTX
|
||||
pReader->Seek(end);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
|
||||
Logic::CSld cSld;
|
||||
Logic::ClrMap clrMap;
|
||||
std::vector<Logic::XmlId> sldLayoutIdLst;
|
||||
@ -490,7 +351,6 @@ namespace PPTX
|
||||
smart_ptr<TableStyles> tableStyles;
|
||||
smart_ptr<OOX::CVmlDrawing> Vml;
|
||||
|
||||
public:
|
||||
void ApplyRels()
|
||||
{
|
||||
theme = (FileContainer::Get(OOX::FileTypes::Theme)).smart_dynamic_cast<PPTX::Theme>();
|
||||
|
||||
@ -40,7 +40,6 @@
|
||||
#include "Logic/DefaultShapeDefinition.h"
|
||||
#include "Theme/ExtraClrScheme.h"
|
||||
|
||||
#include "Logic/ShapeProperties.h"
|
||||
#include "Logic/ClrMap.h"
|
||||
|
||||
#include "Presentation.h"
|
||||
@ -325,24 +324,6 @@ namespace PPTX
|
||||
return GetABGRFromScheme(m_map->GetColorSchemeIndex(str));
|
||||
}
|
||||
|
||||
virtual void FillShapeProperties(Logic::ShapeProperties& props, const std::wstring& type)const
|
||||
{
|
||||
if(presentation.IsInit())
|
||||
{
|
||||
props.FillFromTextListStyle(presentation->defaultTextStyle);
|
||||
props.SetTextType(0);
|
||||
}
|
||||
if(type == _T("table-cell"))
|
||||
props.FillMasterFontSize(1800);
|
||||
//if(spDef.is_init())
|
||||
//{
|
||||
// props.FillFromTextListStyle(spDef->lstStyle, true);
|
||||
// if(spDef->style.is_init())
|
||||
// props.FillFontRef(spDef->style->fontRef.get());
|
||||
//}
|
||||
props.SetMajorLatin(themeElements.fontScheme.majorFont.latin);
|
||||
props.SetMinorLatin(themeElements.fontScheme.minorFont.latin);
|
||||
}
|
||||
virtual std::wstring GetMediaFullPathNameFromRId(const OOX::RId& rid)const
|
||||
{
|
||||
smart_ptr<OOX::Image> p = GetImage(rid);
|
||||
|
||||
@ -80,8 +80,6 @@ SOURCES += \
|
||||
../../../PPTXFormat/Logic/NvGrpSpPr.cpp \
|
||||
../../../PPTXFormat/Logic/Pic.cpp \
|
||||
../../../PPTXFormat/Logic/Shape.cpp \
|
||||
../../../PPTXFormat/Logic/ShapeProperties.cpp \
|
||||
../../../PPTXFormat/Logic/ShapeTextProperties.cpp \
|
||||
../../../PPTXFormat/Logic/SmartArt.cpp \
|
||||
../../../PPTXFormat/Logic/SpPr.cpp \
|
||||
../../../PPTXFormat/Logic/SpTree.cpp \
|
||||
@ -400,9 +398,7 @@ HEADERS += pptxformatlib.h \
|
||||
../../../PPTXFormat/Logic/RunProperties.h \
|
||||
../../../PPTXFormat/Logic/Scene3d.h \
|
||||
../../../PPTXFormat/Logic/Shape.h \
|
||||
../../../PPTXFormat/Logic/ShapeProperties.h \
|
||||
../../../PPTXFormat/Logic/ShapeStyle.h \
|
||||
../../../PPTXFormat/Logic/ShapeTextProperties.h \
|
||||
../../../PPTXFormat/Logic/SmartArt.h \
|
||||
../../../PPTXFormat/Logic/Sp3d.h \
|
||||
../../../PPTXFormat/Logic/SpPr.h \
|
||||
|
||||
@ -51,8 +51,6 @@
|
||||
#include "../../../PPTXFormat/Logic/NvGrpSpPr.cpp"
|
||||
#include "../../../PPTXFormat/Logic/Pic.cpp"
|
||||
#include "../../../PPTXFormat/Logic/Shape.cpp"
|
||||
#include "../../../PPTXFormat/Logic/ShapeProperties.cpp"
|
||||
#include "../../../PPTXFormat/Logic/ShapeTextProperties.cpp"
|
||||
#include "../../../PPTXFormat/Logic/SmartArt.cpp"
|
||||
#include "../../../PPTXFormat/Logic/SpPr.cpp"
|
||||
#include "../../../PPTXFormat/Logic/SpTree.cpp"
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="windows-1251"?>
|
||||
<VisualStudioProject
|
||||
ProjectType="Visual C++"
|
||||
Version="8,00"
|
||||
Version="8.00"
|
||||
Name="PPTXFormat"
|
||||
ProjectGUID="{36636678-AE25-4BE6-9A34-2561D1BCF302}"
|
||||
RootNamespace="PPTXFormat"
|
||||
@ -2756,124 +2756,10 @@
|
||||
RelativePath="..\.\PPTXFormat\Logic\Shape.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\ShapeProperties.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="ReleaseASC|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="ReleaseOpenSource|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\ShapeProperties.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\ShapeStyle.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\ShapeTextProperties.cpp"
|
||||
>
|
||||
<FileConfiguration
|
||||
Name="Debug|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Debug|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
Optimization="0"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="Release|x64"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="ReleaseASC|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
<FileConfiguration
|
||||
Name="ReleaseOpenSource|Win32"
|
||||
>
|
||||
<Tool
|
||||
Name="VCCLCompilerTool"
|
||||
PrecompiledHeaderThrough="./StdAfx.h"
|
||||
/>
|
||||
</FileConfiguration>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\ShapeTextProperties.h"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\.\PPTXFormat\Logic\Sp3d.h"
|
||||
>
|
||||
|
||||
@ -21,6 +21,8 @@
|
||||
|
||||
#include "../../../../DesktopEditor/fontengine/application_generate_fonts.h"
|
||||
|
||||
#include <QDateTime>
|
||||
|
||||
class CDirectoryParse : public NSThreads::CBaseThread
|
||||
{
|
||||
public:
|
||||
@ -155,11 +157,178 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class CFormatLogger
|
||||
{
|
||||
public:
|
||||
std::wstring m_name;
|
||||
bool m_need;
|
||||
|
||||
std::list<std::wstring> m_greenSrc;
|
||||
std::list<std::wstring> m_greenDst;
|
||||
|
||||
std::list<std::wstring> m_yellowSrc;
|
||||
std::list<std::wstring> m_yellowDsc;
|
||||
|
||||
std::list<std::wstring> m_redSrc;
|
||||
std::list<std::wstring> m_redDst;
|
||||
|
||||
public:
|
||||
CFormatLogger(const std::wstring& name)
|
||||
{
|
||||
m_name = name;
|
||||
clear();
|
||||
}
|
||||
~CFormatLogger()
|
||||
{
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
m_greenSrc.clear();
|
||||
m_greenDst.clear();
|
||||
|
||||
m_yellowSrc.clear();
|
||||
m_yellowDsc.clear();
|
||||
|
||||
m_redSrc.clear();
|
||||
m_redDst.clear();
|
||||
}
|
||||
|
||||
void Add(const int& code, const std::wstring& src, const std::wstring& dst)
|
||||
{
|
||||
if (0 == code)
|
||||
{
|
||||
m_greenSrc.push_back(src);
|
||||
m_greenDst.push_back(dst);
|
||||
}
|
||||
else if (89 == code || 90 == code || 91 == code)
|
||||
{
|
||||
m_yellowSrc.push_back(src);
|
||||
m_yellowDsc.push_back(dst);
|
||||
}
|
||||
else
|
||||
{
|
||||
m_redSrc.push_back(src);
|
||||
m_redDst.push_back(dst);
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring GetMainHtml()
|
||||
{
|
||||
if (!m_need)
|
||||
return L"";
|
||||
|
||||
int nCountG = m_greenSrc.size();
|
||||
int nCountY = m_yellowSrc.size();
|
||||
int nCountR = m_redSrc.size();
|
||||
|
||||
int nCount = nCountG + nCountY + nCountR;
|
||||
|
||||
if (0 == nCount)
|
||||
return L"";
|
||||
|
||||
int nPercentY = 100 * nCountY / nCount; if (nCountY != 0 && nPercentY == 0) nPercentY = 1;
|
||||
int nPercentR = 100 * nCountR / nCount; if (nCountR != 0 && nPercentR == 0) nPercentR = 1;
|
||||
int nPercentG = 100 - nPercentY - nPercentR;
|
||||
|
||||
|
||||
NSStringUtils::CStringBuilder oBuilder;
|
||||
oBuilder.WriteString(L"<tr style=\"height:30px;\"><td style=\"width:200px;\">");
|
||||
|
||||
oBuilder.WriteString(m_name);
|
||||
oBuilder.WriteString(L" (");
|
||||
oBuilder.AddInt(nPercentG);
|
||||
oBuilder.WriteString(L":");
|
||||
oBuilder.AddInt(nCountG);
|
||||
oBuilder.WriteString(L" | ");
|
||||
oBuilder.AddInt(nPercentY);
|
||||
oBuilder.WriteString(L":");
|
||||
oBuilder.AddInt(nCountY);
|
||||
oBuilder.WriteString(L" | ");
|
||||
oBuilder.AddInt(nPercentR);
|
||||
oBuilder.WriteString(L":");
|
||||
oBuilder.AddInt(nCountR);
|
||||
oBuilder.WriteString(L")</td><td style=\"width:800px;\">");
|
||||
|
||||
oBuilder.WriteString(L"<div style=\"font-size: 0;width:800px;height:20px;margin:0;padding:0;\">");
|
||||
|
||||
oBuilder.WriteString(L"<div style=\"display:inline-block;margin:0;padding:0;width:");
|
||||
oBuilder.AddInt(nPercentG);
|
||||
oBuilder.WriteString(L"%;height:100%;background:#00FF00;\"></div>");
|
||||
|
||||
oBuilder.WriteString(L"<div style=\"display:inline-block;margin:0;padding:0;width:");
|
||||
oBuilder.AddInt(nPercentY);
|
||||
oBuilder.WriteString(L"%;height:100%;background:#FFFF00;\"></div>");
|
||||
|
||||
oBuilder.WriteString(L"<div style=\"display:inline-block;margin:0;padding:0;width:");
|
||||
oBuilder.AddInt(nPercentR);
|
||||
oBuilder.WriteString(L"%;height:100%;background:#FF0000;\"></div>");
|
||||
|
||||
oBuilder.WriteString(L"</div>");
|
||||
|
||||
oBuilder.WriteString(L"</td></tr>");
|
||||
|
||||
return oBuilder.GetData();
|
||||
}
|
||||
|
||||
std::wstring GetHtml()
|
||||
{
|
||||
if (!m_need)
|
||||
return L"";
|
||||
|
||||
int nCountG = m_greenSrc.size();
|
||||
int nCountY = m_yellowSrc.size();
|
||||
int nCountR = m_redSrc.size();
|
||||
|
||||
int nCount = nCountG + nCountY + nCountR;
|
||||
|
||||
if (0 == nCount)
|
||||
return L"";
|
||||
|
||||
NSStringUtils::CStringBuilder oBuilder;
|
||||
oBuilder.WriteString(L"<table border=\"1\"><caption>");
|
||||
oBuilder.WriteString(m_name);
|
||||
oBuilder.WriteString(L"</caption>");
|
||||
|
||||
std::list<std::wstring>::iterator i, j;
|
||||
for (i = m_greenSrc.begin(), j = m_greenDst.begin(); i != m_greenSrc.end(); i++, j++)
|
||||
{
|
||||
oBuilder.WriteString(L"<tr style=\"height:20px;background:#00FF00;\"><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*i);
|
||||
oBuilder.WriteString(L"</td><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*j);
|
||||
oBuilder.WriteString(L"</td></tr>");
|
||||
}
|
||||
for (i = m_yellowSrc.begin(), j = m_yellowDsc.begin(); i != m_yellowSrc.end(); i++, j++)
|
||||
{
|
||||
oBuilder.WriteString(L"<tr style=\"height:20px;background:#FFFF00;\"><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*i);
|
||||
oBuilder.WriteString(L"</td><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*j);
|
||||
oBuilder.WriteString(L"</td></tr>");
|
||||
}
|
||||
for (i = m_redSrc.begin(), j = m_redDst.begin(); i != m_redSrc.end(); i++, j++)
|
||||
{
|
||||
oBuilder.WriteString(L"<tr style=\"height:20px;background:#FF0000;\"><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*i);
|
||||
oBuilder.WriteString(L"</td><td style=\"width:500px;\">");
|
||||
oBuilder.WriteEncodeXmlString(*j);
|
||||
oBuilder.WriteString(L"</td></tr>");
|
||||
}
|
||||
|
||||
oBuilder.WriteString(L"</table>");
|
||||
|
||||
return oBuilder.GetData();
|
||||
}
|
||||
};
|
||||
|
||||
class CConverter;
|
||||
class CInternalWorker
|
||||
{
|
||||
public:
|
||||
std::map<int, bool> m_formats;
|
||||
std::map<int, CFormatLogger> m_logger;
|
||||
|
||||
CDirectoryParse* m_pParser;
|
||||
|
||||
int m_dst_format;
|
||||
@ -194,6 +363,27 @@ public:
|
||||
m_formats.insert(std::make_pair<int, bool>(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_DJVU, true));
|
||||
m_formats.insert(std::make_pair<int, bool>(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_XPS, true));
|
||||
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX, CFormatLogger(L"DOCX")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOC, CFormatLogger(L"DOC")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT, CFormatLogger(L"ODT")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF, CFormatLogger(L"RTF")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT, CFormatLogger(L"TXT")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_DOCUMENT_HTML, CFormatLogger(L"HTML")));
|
||||
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX, CFormatLogger(L"PPTX")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPSX, CFormatLogger(L"PPSX")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPT, CFormatLogger(L"PPT")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP, CFormatLogger(L"ODP")));
|
||||
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX, CFormatLogger(L"XLSX")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS, CFormatLogger(L"XLS")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS, CFormatLogger(L"ODS")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV, CFormatLogger(L"CSV")));
|
||||
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF, CFormatLogger(L"PDF")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_DJVU, CFormatLogger(L"DJVU")));
|
||||
m_logger.insert(std::make_pair<int, CFormatLogger>(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_XPS, CFormatLogger(L"XPS")));
|
||||
|
||||
m_pParser = new CDirectoryParse();
|
||||
|
||||
m_dst_format = 0;
|
||||
@ -348,6 +538,72 @@ public:
|
||||
CConverter* GetNextConverter();
|
||||
void OnConvertFile(CConverter* pConverter, int nCode);
|
||||
void Start(int nCores);
|
||||
void Cancel();
|
||||
|
||||
void Log()
|
||||
{
|
||||
NSStringUtils::CStringBuilder oBuilder;
|
||||
|
||||
oBuilder.WriteString(L"<!DOCTYPE html>\
|
||||
<html style=\"background:#FFFFFF;\">\
|
||||
<head></head>\
|
||||
<body style=\"width:100%height:100%;\">\
|
||||
<table border=\"1\" style=\"height:100%\">\
|
||||
<caption>Summary</caption>");
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOC)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_HTML)->second.GetMainHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPSX)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPT)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP)->second.GetMainHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV)->second.GetMainHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_DJVU)->second.GetMainHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_XPS)->second.GetMainHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOCX)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_DOC)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_ODT)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_RTF)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_TXT)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_DOCUMENT_HTML)->second.GetHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPTX)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPSX)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_PPT)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_PRESENTATION_ODP)->second.GetHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLSX)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_XLS)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_ODS)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_SPREADSHEET_CSV)->second.GetHtml());
|
||||
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_PDF)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_DJVU)->second.GetHtml());
|
||||
oBuilder.WriteString(m_logger.find(AVS_OFFICESTUDIO_FILE_CROSSPLATFORM_XPS)->second.GetHtml());
|
||||
|
||||
oBuilder.WriteString(L"</table></body></html>");
|
||||
|
||||
std::wstring sTime = QDateTime::currentDateTime().toString().toStdWString();
|
||||
NSCommon::string_replace(sTime, L":", L".");
|
||||
|
||||
std::wstring sDirectory = NSFile::GetProcessDirectory() + L"/report";
|
||||
if (!NSDirectory::Exists(sDirectory))
|
||||
NSDirectory::CreateDirectory(sDirectory);
|
||||
|
||||
NSFile::CFileBinary::SaveToFile(sDirectory + L"/" + sTime + L".html", oBuilder.GetData(), true);
|
||||
}
|
||||
};
|
||||
|
||||
class CConverter : public NSThreads::CBaseThread
|
||||
@ -355,6 +611,8 @@ class CConverter : public NSThreads::CBaseThread
|
||||
public:
|
||||
CInternalWorker* m_pInternal;
|
||||
std::wstring m_file;
|
||||
std::wstring m_file_dst;
|
||||
int m_format;
|
||||
|
||||
public:
|
||||
CConverter(CInternalWorker* pWorker) : NSThreads::CBaseThread()
|
||||
@ -371,15 +629,17 @@ public:
|
||||
COfficeFileFormatChecker oChecker;
|
||||
if (!oChecker.isOfficeFile(m_file))
|
||||
{
|
||||
m_bRunThread = FALSE;
|
||||
m_pInternal->OnConvertFile(this, -1);
|
||||
return 0;
|
||||
}
|
||||
|
||||
int nFormat = oChecker.nFileType;
|
||||
m_format = oChecker.nFileType;
|
||||
|
||||
std::map<int, bool>::iterator find = m_pInternal->m_formats.find(nFormat);
|
||||
if (find == m_pInternal->m_formats.end())
|
||||
std::map<int, bool>::iterator find = m_pInternal->m_formats.find(m_format);
|
||||
if ((find == m_pInternal->m_formats.end()) || (find->second == false))
|
||||
{
|
||||
m_bRunThread = FALSE;
|
||||
m_pInternal->OnConvertFile(this, -1);
|
||||
return 0;
|
||||
}
|
||||
@ -413,6 +673,8 @@ public:
|
||||
|
||||
std::wstring sFileDst = sDirectoryDst + L"/result" + sExt;
|
||||
|
||||
m_file_dst = sFileDst;
|
||||
|
||||
oBuilder.WriteEncodeXmlString(sFileDst);
|
||||
oBuilder.WriteString(L"</m_sFileTo><m_nFormatTo>");
|
||||
oBuilder.WriteString(std::to_wstring(m_pInternal->m_dst_format));
|
||||
@ -574,7 +836,6 @@ public:
|
||||
|
||||
CConverter* CInternalWorker::GetNextConverter()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
if (m_nCurrent >= m_nCount)
|
||||
return NULL;
|
||||
|
||||
@ -590,6 +851,13 @@ void CInternalWorker::OnConvertFile(CConverter* pConverter, int nCode)
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
|
||||
if (-1 != nCode)
|
||||
{
|
||||
std::map<int, CFormatLogger>::iterator _logger = m_logger.find(pConverter->m_format);
|
||||
if (_logger != m_logger.end())
|
||||
_logger->second.Add(nCode, pConverter->m_file, pConverter->m_file_dst);
|
||||
}
|
||||
|
||||
++m_nCurrentConvert;
|
||||
|
||||
RELEASEOBJECT(pConverter);
|
||||
@ -600,14 +868,28 @@ void CInternalWorker::OnConvertFile(CConverter* pConverter, int nCode)
|
||||
|
||||
void CInternalWorker::Start(int nCores)
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
|
||||
int nSizeInit = nCores;
|
||||
if (nSizeInit > m_nCount)
|
||||
nSizeInit = m_nCount;
|
||||
|
||||
for (std::map<int, CFormatLogger>::iterator i = m_logger.begin(); i != m_logger.end(); i++)
|
||||
{
|
||||
i->second.clear();
|
||||
i->second.m_need = m_formats.find(i->first)->second;
|
||||
}
|
||||
|
||||
for (int i = 0; i < nSizeInit; ++i)
|
||||
GetNextConverter();
|
||||
}
|
||||
|
||||
void CInternalWorker::Cancel()
|
||||
{
|
||||
CTemporaryCS oCS(&m_oCS);
|
||||
m_nCount = m_nCurrent;
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent) :
|
||||
QMainWindow(parent),
|
||||
ui(new Ui::MainWindow)
|
||||
@ -794,6 +1076,12 @@ void MainWindow::pushButtonDirectoryClicked()
|
||||
|
||||
void MainWindow::pushButtonConvertClicked()
|
||||
{
|
||||
if (ui->pushButtonConvert->text() == "CANCEL")
|
||||
{
|
||||
m_pWorker->Cancel();
|
||||
return;
|
||||
}
|
||||
|
||||
std::wstring sProcess = NSFile::GetProcessDirectory();
|
||||
if (!NSDirectory::Exists(sProcess + L"/fonts"))
|
||||
NSDirectory::CreateDirectory(sProcess + L"/fonts");
|
||||
@ -810,7 +1098,7 @@ void MainWindow::pushButtonConvertClicked()
|
||||
|
||||
m_pWorker->m_pParser->Start(0);
|
||||
|
||||
ui->pushButtonConvert->setEnabled(false);
|
||||
ui->pushButtonConvert->setText("CANCEL");
|
||||
}
|
||||
|
||||
void MainWindow::send_onDirectoryChecked()
|
||||
@ -829,7 +1117,8 @@ void MainWindow::slot_onFileConverted(int nProgress)
|
||||
|
||||
if (nProgress == m_pWorker->m_nCount)
|
||||
{
|
||||
ui->pushButtonConvert->setEnabled(true);
|
||||
m_pWorker->Log();
|
||||
ui->pushButtonConvert->setText("CONVERT");
|
||||
ui->progressBar->setVisible(false);
|
||||
}
|
||||
}
|
||||
@ -1163,6 +1452,6 @@ void MainWindow::stateChanged_DJVU_ALL(bool)
|
||||
{
|
||||
bool bIsVal = ui->checkBoxDJVU_ALL->isChecked();
|
||||
ui->checkBoxPDF->setChecked(bIsVal);
|
||||
ui->checkBoxXLS->setChecked(bIsVal);
|
||||
ui->checkBoxXPS->setChecked(bIsVal);
|
||||
ui->checkBoxDJVU->setChecked(bIsVal);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user