Commit f0b8b526 authored by Elen.Subbotina's avatar Elen.Subbotina Committed by Alexander Trofimov

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@61924 954022d7-b5bf-4e40-9824-e11837661b57
parent e3091a43
// ASCPresentationEditor.cpp : Implementation of DLL Exports.
#include "stdafx.h"
#include "resource.h"
#include "ASCPresentationEditor.h"
// The module attribute causes DllMain, DllRegisterServer and DllUnregisterServer to be automatically implemented for you
[ module(dll, uuid = "{B34974D7-C020-45b2-8A19-AFC20526B083}",
name = "ASCPresentationEditor",
helpstring = "ASCPresentationEditor 1.0 Type Library",
resource_name = "IDR_ASCPRESENTATIONEDITOR") ];
This diff is collapsed.
//Microsoft Visual C++ generated resource script.
//
#include "resource.h"
#define COMPONENT_NAME "PresentationEditor"
#include "../Common/FileInfo.h"
#include "version.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "winres.h"
/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1251)
/////////////////////////////////////////////////////////////////////////////
IDB_XML_NOTESTHEME PPTXW "PPTXWriter\\ResourceFiles\\notesTheme.xml"
IDB_XML_NOTESMASTER PPTXW "PPTXWriter\\ResourceFiles\\notesMaster.xml"
/////////////////////////////////////////////////////////////////////////////
#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
//
// TEXTINCLUDE
//
1 TEXTINCLUDE
BEGIN
"resource.h\0"
END
2 TEXTINCLUDE
BEGIN
"#include ""winres.h""\r\n"
"\0"
END
#endif // APSTUDIO_INVOKED
#ifndef _MAC
/////////////////////////////////////////////////////////////////////////////
//
// Version
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION INTVER
PRODUCTVERSION INTVER
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x2L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", COMPANY_NAME
VALUE "FileDescription", FILE_DESCRIPTION_ACTIVEX
VALUE "FileVersion", STRVER
VALUE "InternalName", COMPONENT_FILE_NAME_DLL
VALUE "LegalCopyright", LEGAL_COPYRIGHT
VALUE "OriginalFilename", COMPONENT_FILE_NAME_DLL
VALUE "ProductName", FILE_DESCRIPTION_ACTIVEX
VALUE "ProductVersion", STRVER
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x0409, 1200
END
END
#endif // !_MAC
/////////////////////////////////////////////////////////////////////////////
//
// String Table
//
STRINGTABLE
BEGIN
IDS_PROJNAME "ASCPresentationEditor"
END
IDR_ASCPRESENTATIONEDITOR REGISTRY "ASCPresentationEditor.rgs"
////////////////////////////////////////////////////////////////////////////
#endif
#ifndef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////
#endif // not APSTUDIO_INVOKED
HKCR
{
NoRemove AppID
{
'%APPID%' = s 'ASCPresentationEditor'
'ASCPresentationEditor.DLL'
{
val AppID = s '%APPID%'
}
}
}
Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ASCPresentationEditor", "ASCPresentationEditor.vcproj", "{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug|Win32.ActiveCfg = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Debug|Win32.Build.0 = Debug|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release|Win32.ActiveCfg = Release|Win32
{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
<?xml version="1.0" encoding="windows-1251"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="ASCPresentationEditor"
ProjectGUID="{61BE1BAC-A599-48FF-B44E-097C9D2DF0E9}"
Keyword="AtlProj"
TargetFrameworkVersion="131072"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCPresentationEditor.tlb"
HeaderFileName="ASCPresentationEditor.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCPresentationEditor_i.c"
ProxyFileName="ASCPresentationEditor_p.c"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories="..\ASCPresentationEditor"
PreprocessorDefinitions="WIN32;_WINDOWS;_DEBUG;_USRDLL;_ATL_ATTRIBUTES"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
RegisterOutput="true"
IgnoreImportLibrary="true"
LinkIncremental="2"
MergedIDLBaseFileName="_ASCPresentationEditor.idl"
GenerateDebugInformation="true"
SubSystem="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory="$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
ConfigurationType="2"
UseOfATL="1"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="1"
>
<Tool
Name="VCPreBuildEventTool"
CommandLine="..\Redist\VersionControl.exe &quot;$(ProjectDir)\version.h&quot;"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="false"
TargetEnvironment="1"
GenerateStublessProxies="true"
TypeLibraryName="$(IntDir)/ASCPresentationEditor.tlb"
HeaderFileName="ASCPresentationEditor.h"
DLLDataFileName=""
InterfaceIdentifierFileName="ASCPresentationEditor_i.c"
ProxyFileName="ASCPresentationEditor_p.c"
ValidateParameters="false"
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
AdditionalIncludeDirectories="..\ASCPresentationEditor"
PreprocessorDefinitions="WIN32;_WINDOWS;NDEBUG;_USRDLL;_ATL_ATTRIBUTES"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
UsePrecompiledHeader="2"
WarningLevel="3"
Detect64BitPortabilityProblems="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
AdditionalIncludeDirectories="$(IntDir)"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
RegisterOutput="true"
IgnoreImportLibrary="true"
LinkIncremental="1"
MergedIDLBaseFileName="_ASCPresentationEditor.idl"
GenerateDebugInformation="true"
SubSystem="2"
OptimizeReferences="2"
EnableCOMDATFolding="2"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCPostBuildEventTool"
Description="Performing registration"
CommandLine="regsvr32 /s /c &quot;$(TargetPath)&quot;&#x0D;&#x0A;copy &quot;$(TargetPath)&quot; &quot;$(ProjectDir)..\Redist&quot;&#x0D;&#x0A;"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"
>
<File
RelativePath=".\ASCPresentationEditor.cpp"
>
</File>
<File
RelativePath=".\stdafx.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
UsePrecompiledHeader="1"
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl;inc;xsd"
UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}"
>
<File
RelativePath=".\ASCPresentationEditor.h"
>
</File>
<File
RelativePath=".\PPTStorage.h"
>
</File>
<File
RelativePath=".\Resource.h"
>
</File>
<File
RelativePath=".\stdafx.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
>
<File
RelativePath=".\ASCPresentationEditor.rc"
>
</File>
<File
RelativePath=".\ASCPresentationEditor.rgs"
>
</File>
</Filter>
<Filter
Name="OfficeDrawing"
>
<File
RelativePath=".\OfficeDrawing\Animations.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Attributes.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\AudioOverlay.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Base.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Document.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Effects.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Element.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\ElementProperties.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Elements.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\Elements.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Interactive.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Layout.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\Layout.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Metric.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Slide.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\SlideShow.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Structures.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\SVGConverter.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\SVGConverter.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\TextAttributesEx.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\TextAttributesEx.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\TextStructures.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Theme.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\Theme.h"
>
</File>
<Filter
Name="Graphics"
>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\agg_trans_affine.cpp"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\agg_trans_affine.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\ap_AggPlusEnums.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\ap_AggPlusTypes.h"
>
</File>
<File
RelativePath=".\OfficeDrawing\Shapes\Graphics\Matrix.h"
>
</File>
</Filter>
</Filter>
<Filter
Name="PPTXWriter"
>
<File
RelativePath=".\PPTXWriter\Converter.h"
>
</File>
<File
RelativePath=".\PPTXWriter\CSS.h"
>
</File>
<File
RelativePath=".\PPTXWriter\ImageManager.h"
>
</File>
<File
RelativePath=".\PPTXWriter\ShapeWriter.cpp"
>
</File>
<File
RelativePath=".\PPTXWriter\ShapeWriter.h"
>
</File>
<File
RelativePath=".\PPTXWriter\StylesWriter.h"
>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>
// CASCPresentationEditor.h : Declaration of the CASCOfficeViewer
#pragma once
#ifdef PPT_DEF
#include "./OfficeDrawing/Shapes/BaseShape/PPTShape/Formula.cpp"
#include "./OfficeDrawing/Shapes/BaseShape/PPTShape/PPTShape.cpp"
#ifndef BASE_SHAPE
#define BASE_SHAPE
#endif
#endif
#ifdef PPTX_DEF
#include "./OfficeDrawing/Shapes/BaseShape/PPTXShape/Formula.cpp"
#include "./OfficeDrawing/Shapes/BaseShape/PPTXShape/PPTXShape.cpp"
#ifndef BASE_SHAPE
#define BASE_SHAPE
#endif
#include "./OfficeDrawing/Shapes/BaseShape/PPTShape/ppt2pptxshapeconverter.h"
#endif
#ifdef BASE_SHAPE
#include "./OfficeDrawing/Shapes/BaseShape/BaseShape.cpp"
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
#include "Elements.h"
namespace NSPresentationEditor
{
class CAudioPart
{
public:
CString m_strFile;
double m_dStartTime;
double m_dEndTime;
double m_dClipStartTime;
double m_dClipEndTime;
double m_dAudioDuration;
bool m_bLoop;
bool m_bStop;
bool m_bIsTransition;
double m_dAmplify;
public:
CAudioPart()
{
m_strFile = _T("");
m_dStartTime = 0.0;
m_dEndTime = -1.0;
m_dClipStartTime = 0.0;
m_dClipEndTime = -1.0;
m_dAudioDuration = 0.0;
m_bLoop = false;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
~CAudioPart()
{
}
CAudioPart(const CAudioPart& oSrc)
{
*this = oSrc;
}
CAudioPart& operator=(const CAudioPart& oSrc)
{
m_strFile = oSrc.m_strFile;
m_dStartTime = oSrc.m_dStartTime;
m_dEndTime = oSrc.m_dEndTime;
m_dClipStartTime = oSrc.m_dClipStartTime;
m_dClipEndTime = oSrc.m_dClipEndTime;
m_dAudioDuration = oSrc.m_dAudioDuration;
m_bLoop = oSrc.m_bLoop;
m_bStop = oSrc.m_bStop;
m_bIsTransition = oSrc.m_bIsTransition;
m_dAmplify = oSrc.m_dAmplify;
return *this;
}
CAudioPart(CAudioElement* pAudioElem)
{
if (NULL == pAudioElem)
{
m_strFile = _T("");
m_dStartTime = 0.0;
m_dEndTime = -1.0;
m_dClipStartTime = 0.0;
m_dClipEndTime = -1.0;
m_dAudioDuration = 0.0;
m_bLoop = false;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
else
{
m_strFile = pAudioElem->m_strFileName;
m_dStartTime = pAudioElem->m_dStartTime;
m_dEndTime = pAudioElem->m_dEndTime;
m_dClipStartTime = pAudioElem->m_dClipStartTime;
m_dClipEndTime = pAudioElem->m_dClipEndTime;
m_dAudioDuration = pAudioElem->m_dAudioDuration;
m_bLoop = ( pAudioElem->m_bLoop == TRUE) ? true : false;;
m_bStop = false;
m_bIsTransition = false;
m_dAmplify = 100.0;
}
}
public:
void CalculateDuration()
{
if (0.0 < m_dAudioDuration || _T("") == m_strFile)
return;
}
};
class CAudioOverlay
{
public:
std::vector<CAudioPart> m_arParts;
double m_dAllDuration;
public:
CAudioOverlay() : m_arParts(), m_dAllDuration(0.0)
{
}
~CAudioOverlay()
{
}
CAudioOverlay(const CAudioOverlay& oSrc)
{
*this = oSrc;
}
CAudioOverlay& operator=(const CAudioOverlay& oSrc)
{
m_arParts.insert(m_arParts.end(), oSrc.m_arParts.begin(), oSrc.m_arParts.end());
m_dAllDuration = oSrc.m_dAllDuration;
return *this;
}
public:
void Calculate()
{
size_t nCount = m_arParts.size();
//
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
pPart->CalculateDuration();
if (pPart->m_dStartTime < 0.0)
pPart->m_dStartTime = 0.0;
pPart->m_dEndTime = pPart->m_dStartTime + pPart->m_dAudioDuration;
if (pPart->m_dEndTime > m_dAllDuration)
{
pPart->m_dEndTime = m_dAllDuration;
}
if (pPart->m_bLoop)
{
pPart->m_dEndTime = m_dAllDuration;
}
}
//
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
if (pPart->m_bIsTransition)
{
if (pPart->m_bStop)
{
//
for (size_t j = 0; j < nCount; ++j)
{
if (j == i)
continue;
CAudioPart* pMem = &m_arParts[j];
if (pMem->m_dStartTime <= pPart->m_dStartTime && pMem->m_dEndTime > pPart->m_dStartTime)
{
pMem->m_dEndTime = pPart->m_dStartTime;
}
}
}
if (pPart->m_bLoop)
{
//
double dMin = m_dAllDuration;
for (size_t j = 0; j < nCount; ++j)
{
if (j == i)
continue;
CAudioPart* pMem = &m_arParts[j];
if (pMem->m_dStartTime > pPart->m_dEndTime)
{
if (dMin > pMem->m_dStartTime)
dMin = pMem->m_dStartTime;
}
}
pPart->m_dEndTime = dMin;
}
}
else
{
if (pPart->m_bLoop)
{
pPart->m_dEndTime = m_dAllDuration;
}
}
}
}
CString GetAudioOverlay()
{
CString strRes = _T("");
size_t nCount = m_arParts.size();
for (size_t i = 0; i < nCount; ++i)
{
CAudioPart* pPart = &m_arParts[i];
CString strOverlay1 = _T("");
CString strOverlay2 = _T("");
strOverlay1.Format(_T("<AudioSource StartTime='%lf' Duration='%lf' Amplify='%lf'>"),
pPart->m_dStartTime, pPart->m_dEndTime - pPart->m_dStartTime, pPart->m_dAmplify);
int lIndex = pPart->m_strFile.Find(L"file:///");
if (0 == lIndex)
{
pPart->m_strFile = pPart->m_strFile.Mid(8);
pPart->m_strFile.Replace('/', '\\');
pPart->m_strFile.Replace(L"%20", L" ");
}
CString strFile_ = pPart->m_strFile;
CorrectXmlString(strFile_);
strOverlay2.Format(_T("<Source StartTime='%lf' EndTime='%lf' FilePath='%s'/></AudioSource>"),
pPart->m_dClipStartTime, pPart->m_dClipEndTime, strFile_);
strOverlay1 += strOverlay2;
strRes += strOverlay1;
}
return strRes;
}
};
}
\ No newline at end of file
#pragma once
#include "../../Common/DocxFormat/Source/SystemUtility/File.h"
#include <map>
namespace NSPresentationEditor
{
// xml
class IBase
{
public:
virtual void ReadFromXml(XmlUtils::CXmlNode& oNode) = 0;
virtual void WriteToXml(XmlUtils::CXmlWriter& oWriter) = 0;
public:
virtual CString SaveToXML()
{
XmlUtils::CXmlWriter oWriter;
WriteToXml(oWriter);
return oWriter.GetXmlString();
}
virtual void LoadFromXML(CString& sXML)
{
XmlUtils::CXmlNode oNode;
if (oNode.FromXmlString(sXML))
{
ReadFromXml(oNode);
}
}
public:
virtual void SaveToFile(CString& strFileName)
{
CFile oFile;
if (S_OK == oFile.CreateFile(strFileName))
{
CString strXml = SaveToXML();
oFile.WriteFile(strXml.GetBuffer(), strXml.GetLength() * sizeof(TCHAR));
}
oFile.CloseFile();
}
virtual void LoadFromFile(CString& strFileName)
{
CFile oFile;
if (S_OK == oFile.OpenFile(strFileName))
{
TCHAR* pBuffer = new TCHAR[(size_t)(oFile.GetFileSize() / sizeof(TCHAR))];
oFile.ReadFile((BYTE*)pBuffer, (DWORD)oFile.GetFileSize());
CString strXML(pBuffer);
RELEASEARRAYOBJECTS(pBuffer);
LoadFromXML(strXML);
}
}
};
// common function
template <typename TKey, typename TVal>
void AppendAtlMap(std::map<TKey, TVal>* pMapDst, const std::map<TKey, TVal>* pMapSrc)
{
if ((NULL == pMapDst) || (NULL == pMapSrc))
return;
(*pMapDst) = (*pMapSrc);
}
}
This diff is collapsed.
#pragma once
#include <vector>
#if defined(_WIN32) || defined (_WIN64)
#include <atlbase.h>
#include <atlstr.h>
#else
#include "../../Common/DocxFormat/Source/Base/ASCString.h"
#endif
namespace NSPresentationEditor
{
class CEffect
{
public:
CString m_strEffect;
public:
CEffect() : m_strEffect(_T(""))
{
}
CEffect& operator=(const CEffect& oSrc)
{
m_strEffect = oSrc.m_strEffect;
return *this;
}
CEffect(const CEffect& oSrc)
{
*this = oSrc;
}
~CEffect()
{
}
};
class CEffects
{
public:
std::vector<CEffect> m_arEffects;
public:
CEffects() : m_arEffects()
{
}
CEffects& operator=(const CEffects& oSrc)
{
m_arEffects.insert(m_arEffects.end(), oSrc.m_arEffects.begin(), oSrc.m_arEffects.end());
return *this;
}
CEffects(const CEffects& oSrc)
{
*this = oSrc;
}
~CEffects()
{
}
};
}
#pragma once
#include "TextAttributesEx.h"
#include "Interactive.h"
#include "Animations.h"
#include "ElementProperties.h"
namespace NSPresentationEditor
{
enum ElementType
{
etVideo = 0,
etAudio = 1,
etPicture = 2,
etShape = 3,
etText = 4
};
class CTheme;
class CLayout;
class CSlide;
class IElement : public IBase
{
public:
ElementType m_etType;
CDoubleRect m_rcBounds;
CDoubleRect m_rcBoundsOriginal;
double m_dStartTime;
double m_dEndTime;
CInteractiveInfo m_oActions;
CAnimationInfo m_oAnimations;
CEffects m_oEffects;
LONG m_lID;
LONG m_lLayoutID;
LONG m_lPlaceholderID;
LONG m_lPlaceholderType;
//
CMetricInfo m_oMetric;
double m_dRotate; //
bool m_bFlipH; //
bool m_bFlipV; //
bool m_bIsBackground; // background??
bool m_bIsChangeable; //
bool m_bIsLayoutElement; // ,
CElementProperties m_oProperties;
CTheme* m_pTheme;
CLayout* m_pLayout;
protected:
ULONG m_lCountRef;
public:
virtual ULONG AddRef()
{
++m_lCountRef;
return m_lCountRef;
}
virtual ULONG Release()
{
--m_lCountRef;
if (0 == m_lCountRef)
{
delete this;
return 0;
}
return m_lCountRef;
}
public:
IElement()
{
m_bIsBackground = false;
m_bIsChangeable = true;
m_bIsLayoutElement = false;
m_lID = -1;
m_lLayoutID = -1;
m_lPlaceholderID = -1;
m_lPlaceholderType = -1;
m_etType = etPicture;
m_rcBounds.left = 0;
m_rcBounds.top = 0;
m_rcBounds.right = 1;
m_rcBounds.bottom = 1;
m_rcBoundsOriginal.left = 0;
m_rcBoundsOriginal.top = 0;
m_rcBoundsOriginal.right = 1;
m_rcBoundsOriginal.bottom = 1;
m_dStartTime = 0.0;
m_dEndTime = 30.0;
m_dRotate = 0.0;
m_bFlipH = false;
m_bFlipV = false;
m_lCountRef = 1;
m_pTheme = NULL;
m_pLayout = NULL;
}
virtual ~IElement()
{
}
virtual void NormalizeCoords(double dScaleX, double dScaleY)
{
m_rcBounds.left = dScaleX * m_rcBoundsOriginal.left;
m_rcBounds.right = dScaleX * m_rcBoundsOriginal.right;
m_rcBounds.top = dScaleY * m_rcBoundsOriginal.top;
m_rcBounds.bottom = dScaleY * m_rcBoundsOriginal.bottom;
}
virtual void NormalizeCoordsByMetric()
{
double dScaleX = m_oMetric.m_lUnitsHor / m_oMetric.m_lMillimetresHor;
double dScaleY = m_oMetric.m_lUnitsVer / m_oMetric.m_lMillimetresVer;
m_rcBoundsOriginal.left = dScaleX * m_rcBounds.left;
m_rcBoundsOriginal.right = dScaleX * m_rcBounds.right;
m_rcBoundsOriginal.top = dScaleY * m_rcBounds.top;
m_rcBoundsOriginal.bottom = dScaleY * m_rcBounds.bottom;
}
protected:
virtual void SetProperiesToDublicate(IElement* pDublicate)
{
if (NULL == pDublicate)
return;
pDublicate->m_bIsBackground = m_bIsBackground;
pDublicate->m_bIsChangeable = m_bIsChangeable;
pDublicate->m_bIsLayoutElement = m_bIsLayoutElement;
pDublicate->m_etType = m_etType;
pDublicate->m_rcBounds = m_rcBounds;
pDublicate->m_rcBoundsOriginal = m_rcBoundsOriginal;
pDublicate->m_dStartTime = m_dStartTime;
pDublicate->m_dEndTime = m_dEndTime;
pDublicate->m_lID = m_lID;
pDublicate->m_lLayoutID = m_lLayoutID;
pDublicate->m_oActions = m_oActions;
pDublicate->m_oAnimations = m_oAnimations;
pDublicate->m_oEffects = m_oEffects;
pDublicate->m_lPlaceholderID = m_lPlaceholderID;
pDublicate->m_lPlaceholderType = m_lPlaceholderType;
pDublicate->m_oMetric = m_oMetric;
pDublicate->m_oProperties = m_oProperties;
pDublicate->m_dRotate = m_dRotate;
pDublicate->m_bFlipH = m_bFlipH;
pDublicate->m_bFlipV = m_bFlipV;
pDublicate->m_pTheme = m_pTheme;
pDublicate->m_pLayout = m_pLayout;
}
public:
virtual void SetupProperties(CSlide* pSlide, CTheme* pTheme, CLayout* pLayout)
{
std::map<CElementProperty::Type, CElementProperty>* pMap = &m_oProperties.m_arProperties;
for (std::map<CElementProperty::Type, CElementProperty>::iterator pPair = pMap->begin(); pPair != pMap->end(); ++pPair)
{
CElementProperty oProperty = pPair->second;
SetupProperty(pSlide, pTheme, pLayout, &oProperty);
}
}
virtual void SetupProperty(CSlide* pSlide, CTheme* pTheme, CLayout* pLayout, CElementProperty* pProperty) = 0;
virtual IElement* CreateDublicate() = 0;
virtual CString ToXmlVideoSource() = 0;
virtual CString ToXmlEditor() = 0;
virtual CString SerializeToXml()
{
CString strElement = _T("");
strElement.Format(_T("<Element type='%d' id='%d' lid='%d' pid='%d' ptp='%d' />"),
(int)m_etType, m_lID, m_lLayoutID, m_lPlaceholderID, m_lPlaceholderType);
return strElement;
}
};
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
#include "../PPTShape.h"
// 51
class CAccentBorderCallout2Type : public CPPTShape
{
public:
CAccentBorderCallout2Type()
{
m_bConcentricFill = true;
m_eJoin = NSOfficeDrawing::lineJoinMiter;
//Encaps: Flat
m_strPath = _T("m@0@1l@2@3@4@5nfem@4,l@4,21600nfem,l21600,r,21600l,21600xe");
AddGuide(_T("val #0"));
AddGuide(_T("val #1"));
AddGuide(_T("val #2"));
AddGuide(_T("val #3"));
AddGuide(_T("val #4"));
AddGuide(_T("val #5"));
m_arAdjustments.push_back(-10080);
m_arAdjustments.push_back(24300);
m_arAdjustments.push_back(-3600);
m_arAdjustments.push_back(4050);
m_arAdjustments.push_back(-1800);
m_arAdjustments.push_back(4050);
LoadConnectorsList(_T("@0,@1;10800,0;10800,21600;0,10800;21600,10800"));
CHandle_ oHandle1;
oHandle1.position = _T("#0,#1");
m_arHandles.push_back(oHandle1);
CHandle_ oHandle2;
oHandle2.position = _T("#2,#3");
m_arHandles.push_back(oHandle2);
CHandle_ oHandle3;
oHandle3.position = _T("#4,#5");
m_arHandles.push_back(oHandle3);
}
};
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment