mirror of
https://github.com/ONLYOFFICE/core.git
synced 2026-04-07 13:55:33 +08:00
added all Animation records, but the code is not compiled
This commit is contained in:
268
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.cpp
Normal file
268
ASCOfficePPTFile/PPTFormatLib/Enums/RecordType.cpp
Normal file
@ -0,0 +1,268 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "RecordType.h"
|
||||
|
||||
|
||||
#define RECORDNAME_BY_TYPE(RECORD_TYPE, RECORD_NAME) \
|
||||
case RECORD_TYPE: { return std::string( RECORD_NAME ); break; } \
|
||||
|
||||
|
||||
using namespace PPT_FORMAT;
|
||||
|
||||
|
||||
std::string GetRecordName(RecordType dwType)
|
||||
{
|
||||
switch (dwType) {
|
||||
RECORDNAME_BY_TYPE ( RT_Document, "DocumentContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocumentAtom, "DocumentAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EndDocumentAtom, "EndDocumentAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Slide, "SlideContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideAtom, "SlideAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Notes, "Notes" )
|
||||
RECORDNAME_BY_TYPE ( RT_NotesAtom, "NotesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Environment, "Environment" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlidePersistAtom, "SlidePersistAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_MainMaster, "MainMaster" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideShowSlideInfoAtom, "SlideShowSlideInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideViewInfo, "SlideViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_GuideAtom, "GuideAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ViewInfoAtom, "ViewInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideViewInfoAtom, "SlideViewInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VbaInfo, "VbaInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_VbaInfoAtom, "VbaInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideShowDocInfoAtom, "SlideShowDocInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Summary, "Summary" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocRoutingSlipAtom, "DocRoutingSlipAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineViewInfo, "OutlineViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_SorterViewInfo, "SorterViewInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectList, "ExternalObjectList" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectListAtom, "ExternalObjectListAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DrawingGroup, "DrawingGroup" )
|
||||
RECORDNAME_BY_TYPE ( RT_Drawing, "Drawing" )
|
||||
RECORDNAME_BY_TYPE ( RT_GridSpacing10Atom, "GridSpacing10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripTheme12Atom, "RoundTripTheme12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripColorMapping12Atom, "RoundTripColorMapping12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShows, "NamedShows" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShow, "NamedShow" )
|
||||
RECORDNAME_BY_TYPE ( RT_NamedShowSlidesAtom, "NamedShowSlidesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_NotesTextViewInfo9, "NotesTextViewInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9, "NormalViewSetInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_NormalViewSetInfo9Atom, "NormalViewSetInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripOriginalMainMasterId12Atom, "RoundTripOriginalMainMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripCompositeMasterId12Atom, "RoundTripCompositeMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterInfo12Atom, "RoundTripContentMasterInfo12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripShapeId12Atom, "RoundTripShapeId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripHFPlaceholder12Atom, "RoundTripHFPlaceholder12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripContentMasterId12Atom, "RoundTripContentMasterId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripOArtTextStyles12Atom, "RoundTripOArtTextStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripHeaderFooterDefaults12Atom, "RoundTripHeaderFooterDefaults12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripDocFlags12Atom, "RoundTripDocFlags12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripShapeCheckSumForCL12Atom, "RoundTripShapeCheckSumForCL12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripNotesMasterTextStyles12Atom, "RoundTripNotesMasterTextStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripCustomTableStyles12Atom, "RoundTripCustomTableStyles12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_List, "List" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontCollection, "FontCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontCollection10, "FontCollection10" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkCollection, "BookmarkCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundCollection, "SoundCollection" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundCollectionAtom, "SoundCollectionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Sound, "Sound" )
|
||||
RECORDNAME_BY_TYPE ( RT_SoundDataBlob, "SoundDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkSeedAtom, "BookmarkSeedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ColorSchemeAtom, "ColorSchemeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_BlipCollection9, "BlipCollection9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BlipEntity9Atom, "BlipEntity9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalObjectRefAtom, "ExternalObjectRefAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PlaceholderAtom, "PlaceholderAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ShapeAtom, "ShapeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ShapeFlags10Atom, "ShapeFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripNewPlaceholderId12Atom, "RoundTripNewPlaceholderId12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextRefAtom, "OutlineTextRefAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextHeaderAtom, "TextHeaderAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextCharsAtom, "TextCharsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextPropAtom, "StyleTextPropAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_MasterTextPropAtom, "MasterTextPropAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyleAtom, "TextMasterStyleAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextCharFormatExceptionAtom, "TextCharFormatExceptionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextParagraphFormatExceptionAtom, "TextParagraphFormatExceptionAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextRulerAtom, "TextRulerAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextBookmarkAtom, "TextBookmarkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextBytesAtom, "TextBytesAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextSpecialInfoDefaultAtom, "TextSpecialInfoDefaultAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextSpecialInfoAtom, "TextSpecialInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DefaultRulerAtom, "DefaultRulerAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp9Atom, "StyleTextProp9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyle9Atom, "TextMasterStyle9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps9, "OutlineTextProps9" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextPropsHeader9Atom, "OutlineTextPropsHeader9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextDefaults9Atom, "TextDefaults9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp10Atom, "StyleTextProp10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextMasterStyle10Atom, "TextMasterStyle10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps10, "OutlineTextProps10" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextDefaults10Atom, "TextDefaults10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_OutlineTextProps11, "OutlineTextProps11" )
|
||||
RECORDNAME_BY_TYPE ( RT_StyleTextProp11Atom, "StyleTextProp11Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEntityAtom, "FontEntityAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEmbedDataBlob, "FontEmbedDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_CString, "CString" )
|
||||
RECORDNAME_BY_TYPE ( RT_MetaFile, "MetaFile" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleObjectAtom, "ExternalOleObjectAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Kinsoku, "Kinsoku" )
|
||||
RECORDNAME_BY_TYPE ( RT_Handout, "Handout" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleEmbed, "ExternalOleEmbed" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleEmbedAtom, "ExternalOleEmbedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleLink, "ExternalOleLink" )
|
||||
RECORDNAME_BY_TYPE ( RT_BookmarkEntityAtom, "BookmarkEntityAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleLinkAtom, "ExternalOleLinkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_KinsokuAtom, "KinsokuAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkAtom, "ExternalHyperlinkAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlink, "ExternalHyperlink" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideNumberMetaCharAtom, "SlideNumberMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeadersFooters, "HeadersFooters" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeadersFootersAtom, "HeadersFootersAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_TextInteractiveInfoAtom, "TextInteractiveInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlink9, "ExternalHyperlink9" )
|
||||
RECORDNAME_BY_TYPE ( RT_RecolorInfoAtom, "RecolorInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleControl, "ExternalOleControl" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListWithText, "SlideListWithText" )
|
||||
RECORDNAME_BY_TYPE ( RT_AnimationInfoAtom, "AnimationInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_InteractiveInfo, "InteractiveInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_InteractiveInfoAtom, "InteractiveInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_UserEditAtom, "UserEditAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_CurrentUserAtom, "CurrentUserAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DateTimeMetaCharAtom, "DateTimeMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_GenericDateMetaCharAtom, "GenericDateMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HeaderMetaCharAtom, "HeaderMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FooterMetaCharAtom, "FooterMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleControlAtom, "ExternalOleControlAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMediaAtom, "ExternalMediaAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalVideo, "ExternalVideo" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalAviMovie, "ExternalAviMovie" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMciMovie, "ExternalMciMovie" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalMidiAudio, "ExternalMidiAudio" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalCdAudio, "ExternalCdAudio" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbedded, "ExternalWavAudioEmbedded" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioLink, "ExternalWavAudioLink" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalOleObjectStg, "ExternalOleObjectStg" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalCdAudioAtom, "ExternalCdAudioAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalWavAudioEmbeddedAtom, "ExternalWavAudioEmbeddedAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_AnimationInfo, "AnimationInfo" )
|
||||
RECORDNAME_BY_TYPE ( RT_RtfDateTimeMetaCharAtom, "RtfDateTimeMetaCharAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ExternalHyperlinkFlagsAtom, "ExternalHyperlinkFlagsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgTags, "ProgTags" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgStringTag, "ProgStringTag" )
|
||||
RECORDNAME_BY_TYPE ( RT_ProgBinaryTag, "ProgBinaryTag" )
|
||||
RECORDNAME_BY_TYPE ( RT_BinaryTagDataBlob, "BinaryTagDataBlob" )
|
||||
RECORDNAME_BY_TYPE ( RT_PrintOptionsAtom, "PrintOptionsAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PersistDirectoryAtom, "PersistDirectoryAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PresentationAdvisorFlags9Atom, "PresentationAdvisorFlags9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlDocInfo9Atom, "HtmlDocInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlPublishInfoAtom, "HtmlPublishInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HtmlPublishInfo9, "HtmlPublishInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9, "BroadcastDocInfo9" )
|
||||
RECORDNAME_BY_TYPE ( RT_BroadcastDocInfo9Atom, "BroadcastDocInfo9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EnvelopeFlags9Atom, "EnvelopeFlags9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_EnvelopeData9Atom, "EnvelopeData9Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VisualShapeAtom, "VisualShapeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_HashCodeAtom, "HashCodeAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_VisualPageAtom, "VisualPageAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_BuildList, "BuildList" )
|
||||
RECORDNAME_BY_TYPE ( RT_BuildAtom, "BuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ChartBuild, "ChartBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_ChartBuildAtom, "ChartBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiagramBuild, "DiagramBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiagramBuildAtom, "DiagramBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_ParaBuild, "ParaBuild" )
|
||||
RECORDNAME_BY_TYPE ( RT_ParaBuildAtom, "ParaBuildAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LevelInfoAtom, "LevelInfoAtom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripAnimationAtom12Atom, "RoundTripAnimationAtom12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripAnimationHashAtom12Atom, "RoundTripAnimationHashAtom12Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_Comment10, "Comment10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Comment10Atom, "Comment10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_CommentIndex10, "CommentIndex10" )
|
||||
RECORDNAME_BY_TYPE ( RT_CommentIndex10Atom, "CommentIndex10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LinkedShape10Atom, "LinkedShape10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_LinkedSlide10Atom, "LinkedSlide10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideFlags10Atom, "SlideFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideTime10Atom, "SlideTime10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DiffTree10, "DiffTree10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Diff10, "Diff10" )
|
||||
RECORDNAME_BY_TYPE ( RT_Diff10Atom, "Diff10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListTableSize10Atom, "SlideListTableSize10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListEntry10Atom, "SlideListEntry10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SlideListTable10, "SlideListTable10" )
|
||||
RECORDNAME_BY_TYPE ( RT_CryptSession10Container, "CryptSession10Container" )
|
||||
RECORDNAME_BY_TYPE ( RT_FontEmbedFlags10Atom, "FontEmbedFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_FilterPrivacyFlags10Atom, "FilterPrivacyFlags10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_DocToolbarStates10Atom, "DocToolbarStates10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_PhotoAlbumInfo10Atom, "PhotoAlbumInfo10Atom" )
|
||||
RECORDNAME_BY_TYPE ( RT_SmartTagStore11Container, "SmartTagStore11Container" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfo12, "RoundTripSlideSyncInfo12" )
|
||||
RECORDNAME_BY_TYPE ( RT_RoundTripSlideSyncInfoAtom12, "RoundTripSlideSyncInfoAtom12" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeConditionContainer, "TimeConditionContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeNode, "TimeNode" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCondition, "TimeCondition" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeModifier, "TimeModifier" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeBehaviorContainer, "TimeBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimateBehaviorContainer, "TimeAnimateBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeColorBehaviorContainer, "TimeColorBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeEffectBehaviorContainer, "TimeEffectBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeMotionBehaviorContainer, "TimeMotionBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeRotationBehaviorContainer, "TimeRotationBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeScaleBehaviorContainer, "TimeScaleBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSetBehaviorContainer, "TimeSetBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCommandBehaviorContainer, "TimeCommandBehaviorContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeBehavior, "TimeBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimateBehavior, "TimeAnimateBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeColorBehavior, "TimeColorBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeEffectBehavior, "TimeEffectBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeMotionBehavior, "TimeMotionBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeRotationBehavior, "TimeRotationBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeScaleBehavior, "TimeScaleBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSetBehavior, "TimeSetBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeCommandBehavior, "TimeCommandBehavior" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeClientVisualElement, "TimeClientVisualElement" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimePropertyList, "TimePropertyList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeVariantList, "TimeVariantList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimationValueList, "TimeAnimationValueList" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeIterateData, "TimeIterateData" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSequenceData, "TimeSequenceData" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeVariant, "TimeVariant" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeAnimationValue, "TimeAnimationValue" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeExtTimeNodeContainer, "TimeExtTimeNodeContainer" )
|
||||
RECORDNAME_BY_TYPE ( RT_TimeSubEffectContainer, "TimeSubEffectContainer" )
|
||||
default:
|
||||
return std::string();
|
||||
}
|
||||
}
|
||||
35
ASCOfficePPTFile/PPTFormatLib/Enums/_includer.h
Normal file
35
ASCOfficePPTFile/PPTFormatLib/Enums/_includer.h
Normal file
@ -0,0 +1,35 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "enums.h"
|
||||
#include "RecordType.h"
|
||||
604
ASCOfficePPTFile/PPTFormatLib/Enums/enums.h
Normal file
604
ASCOfficePPTFile/PPTFormatLib/Enums/enums.h
Normal file
@ -0,0 +1,604 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#include "../../../DesktopEditor/common/Types.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
enum AnimAfterEffectEnum : BYTE
|
||||
{
|
||||
AI_NoAfterEffect,
|
||||
AI_Dim,
|
||||
AI_Hide,
|
||||
AI_HideImmediately
|
||||
};
|
||||
|
||||
|
||||
enum AnimBuildTypeEnum : BYTE
|
||||
{
|
||||
BT_NoBuild,
|
||||
BT_OneBuild,
|
||||
BT_Level1Build,
|
||||
BT_Level2Build,
|
||||
BT_Level3Build,
|
||||
BT_Level4Build,
|
||||
BT_Level5Build,
|
||||
BT_GraphBySeries,
|
||||
BT_GraphByCategory,
|
||||
BT_GraphByElementInSeries,
|
||||
BT_GraphByElementInCategory,
|
||||
BT_FollowMaster = 0xFE
|
||||
};
|
||||
|
||||
|
||||
enum BuildTypeEnum
|
||||
{
|
||||
TL_BuildParagraph,
|
||||
TL_BuildChart,
|
||||
TL_BuildDiagram
|
||||
};
|
||||
|
||||
|
||||
enum ChartBuildEnum
|
||||
{
|
||||
TLCB_AsOneObject,
|
||||
TLCB_BySeries,
|
||||
TLCB_ByCategory,
|
||||
TLCB_ByElementInSeries,
|
||||
TLCB_ByElementInCategory,
|
||||
TLCB_Custom
|
||||
};
|
||||
|
||||
|
||||
enum ColorModeEnum : BYTE
|
||||
{
|
||||
CM_BlackAndWhite,
|
||||
CM_Grayscale,
|
||||
CM_Color
|
||||
};
|
||||
|
||||
// TODO add different tupes for enum
|
||||
enum ConditionEnum
|
||||
{
|
||||
TL_CT_None,
|
||||
TL_CT_Begin,
|
||||
TL_CT_End,
|
||||
TL_CT_Next,
|
||||
TL_CT_Previous,
|
||||
TL_CT_EndSync
|
||||
};
|
||||
|
||||
|
||||
enum DiagramBuildEnum
|
||||
{
|
||||
TLDB_AsOneObject,
|
||||
TLDB_DepthByNode,
|
||||
TLDB_DepthByBranch,
|
||||
TLDB_BreadthByNode,
|
||||
TLDB_BreadthByLevel,
|
||||
TLDB_ClockWise,
|
||||
TLDB_ClockWiseIn,
|
||||
TLDB_ClockWiseOut,
|
||||
TLDB_CounterClockWise,
|
||||
TLDB_CounterClockWiseIn,
|
||||
TLDB_CounterClockWiseOut,
|
||||
TLDB_InByRing,
|
||||
TLDB_OutByRing,
|
||||
TLDB_Up,
|
||||
TLDB_Down,
|
||||
TLDB_AllAtOnce,
|
||||
TLDB_Custom
|
||||
};
|
||||
|
||||
|
||||
enum DiffTypeEnum
|
||||
{
|
||||
Diff_DocDiff,
|
||||
Diff_SlideDiff = 0x2,
|
||||
Diff_MainMasterDiff,
|
||||
Diff_SlideListDiff,
|
||||
Diff_MasterListDiff,
|
||||
Diff_ShapeListDiff,
|
||||
Diff_ShapeDiff,
|
||||
Diff_TextDiff = 0x9,
|
||||
Diff_NotesDiff,
|
||||
Diff_SlideShowDiff,
|
||||
Diff_HeaderFooterDiff,
|
||||
Diff_NamedShowDiff = 0xE,
|
||||
Diff_NamedShowListDiff,
|
||||
Diff_RecolorInfoDiff = 0x12,
|
||||
Diff_ExternalObjectDiff,
|
||||
Diff_TableListDiff = 0x15,
|
||||
Diff_TableDiff,
|
||||
Diff_InteractiveInfoDiff
|
||||
};
|
||||
|
||||
|
||||
enum ElementTypeEnum
|
||||
{
|
||||
TL_ET_ShapeType = 1,
|
||||
TL_ET_SoundType
|
||||
};
|
||||
|
||||
|
||||
enum ExColorFollowEnum
|
||||
{
|
||||
ExColor_FollowNone,
|
||||
ExColor_FollowScheme,
|
||||
ExColor_FollowTextAndBackground
|
||||
};
|
||||
|
||||
|
||||
enum ExOleObjSubTypeEnum
|
||||
{
|
||||
ExOleSub_Default,
|
||||
ExOleSub_Clipart,
|
||||
ExOleSub_WordDoc,
|
||||
ExOleSub_Excel,
|
||||
ExOleSub_Graph,
|
||||
ExOleSub_OrgChart,
|
||||
ExOleSub_Equation,
|
||||
ExOleSub_WordArt,
|
||||
ExOleSub_Sound,
|
||||
ExOleSub_Project = 0xC,
|
||||
ExOleSub_NoteIt,
|
||||
ExOleSub_ExcelChart,
|
||||
ExOleSub_MediaPlayer,
|
||||
ExOleSub_WordPad,
|
||||
ExOleSub_Visio,
|
||||
ExOleSub_WordODF,
|
||||
ExOleSub_ExcelODF,
|
||||
ExOleSub_PPTODF
|
||||
};
|
||||
|
||||
|
||||
enum ExOleObjTypeEnum
|
||||
{
|
||||
ExOle_Embedded,
|
||||
ExOle_Link,
|
||||
ExOle_Control
|
||||
};
|
||||
|
||||
|
||||
enum InteractiveInfoActionEnum
|
||||
{
|
||||
II_NoAction,
|
||||
II_MacroAction,
|
||||
II_RunProgramAction,
|
||||
II_JumpAction,
|
||||
II_HyperlinkAction,
|
||||
II_OLEAction,
|
||||
II_MediaAction,
|
||||
II_CustomShowAction
|
||||
};
|
||||
|
||||
|
||||
enum InteractiveInfoJumpEnum
|
||||
{
|
||||
II_NoJump,
|
||||
II_NextSlide,
|
||||
II_PreviousSlide,
|
||||
II_FirstSlide,
|
||||
II_LastSlide,
|
||||
II_LastSlideViewed,
|
||||
II_EndShow
|
||||
};
|
||||
|
||||
|
||||
enum LinkToEnum
|
||||
{
|
||||
LT_NextSlide,
|
||||
LT_PreviousSlide,
|
||||
LT_FirstSlide,
|
||||
LT_LastSlide,
|
||||
LT_CustomShow = 0x6,
|
||||
LT_SlideNumber,
|
||||
LT_Url,
|
||||
LT_OtherPresentation,
|
||||
LT_OtherFile,
|
||||
LT_Nil = 0xFF
|
||||
};
|
||||
|
||||
|
||||
enum NormalViewSetBarStates
|
||||
{
|
||||
BS_Minimized,
|
||||
BS_Restored,
|
||||
BS_Maximized
|
||||
};
|
||||
|
||||
|
||||
enum OLEVerbEnum
|
||||
{
|
||||
OV_Primary,
|
||||
OV_Secondary,
|
||||
OV_Tertiary
|
||||
};
|
||||
|
||||
|
||||
enum ParaBuildEnum
|
||||
{
|
||||
TLPB_AllAtOnce,
|
||||
TLPB_BuildByNthLevel,
|
||||
TLPB_CustomBuild,
|
||||
TLPB_AsAWhole
|
||||
};
|
||||
|
||||
|
||||
enum PhotoAlbumFrameShapeEnum
|
||||
{
|
||||
PA_Rectangle,
|
||||
PA_RoundedRectangle,
|
||||
PA_Beveled,
|
||||
PA_Oval,
|
||||
PA_Octagon,
|
||||
PA_Cross,
|
||||
PA_Plaque
|
||||
};
|
||||
|
||||
|
||||
enum PhotoAlbumLayoutEnum
|
||||
{
|
||||
PA_FitToSlide,
|
||||
PA_OnePicture,
|
||||
PA_TwoPictures,
|
||||
PA_FourPictures,
|
||||
PA_OnePictureAndTitle,
|
||||
PA_TwoPicturesAndTitle,
|
||||
PA_FourPicturesAndTitle
|
||||
};
|
||||
|
||||
|
||||
enum PlaceholderEnum
|
||||
{
|
||||
PT_None,
|
||||
PT_MasterTitle,
|
||||
PT_MasterBody,
|
||||
PT_MasterCenterTitle,
|
||||
PT_MasterSubTitle,
|
||||
PT_MasterNotesSlideImage,
|
||||
PT_MasterNotesBody,
|
||||
PT_MasterDate,
|
||||
PT_MasterSlideNumber,
|
||||
PT_MasterFooter,
|
||||
PT_MasterHeader,
|
||||
PT_NotesSlideImage,
|
||||
PT_NotesBody,
|
||||
PT_Title,
|
||||
PT_Body,
|
||||
PT_CenterTitle,
|
||||
PT_SubTitle,
|
||||
PT_VerticalTitle,
|
||||
PT_VerticalBody,
|
||||
PT_Object,
|
||||
PT_Graph,
|
||||
PT_Table,
|
||||
PT_ClipArt,
|
||||
PT_OrgChart,
|
||||
PT_Media,
|
||||
PT_VerticalObject,
|
||||
PT_Picture
|
||||
};
|
||||
|
||||
|
||||
enum PlaceholderSize
|
||||
{
|
||||
PS_Full,
|
||||
PS_Half,
|
||||
PS_Quarter
|
||||
};
|
||||
|
||||
|
||||
enum PrintWhatEnum
|
||||
{
|
||||
PW_Slides,
|
||||
PW_BuildSlides,
|
||||
PW_Handouts2,
|
||||
PW_Handouts3,
|
||||
PW_Handouts6,
|
||||
PW_Notes,
|
||||
PW_Outline,
|
||||
PW_Handouts4,
|
||||
PW_Handouts9,
|
||||
PW_Handouts1
|
||||
};
|
||||
|
||||
|
||||
enum SlideLayoutType
|
||||
{
|
||||
SL_TitleSlide,
|
||||
SL_TitleBody,
|
||||
SL_MasterTitle,
|
||||
SL_TitleOnly = 0x7,
|
||||
SL_TwoColumns,
|
||||
SL_TwoRows,
|
||||
SL_ColumnTwoRows,
|
||||
SL_TwoRowsColumn,
|
||||
SL_TwoColumnsRow = 0xD,
|
||||
SL_FourObjects,
|
||||
SL_BigObject,
|
||||
SL_Blank,
|
||||
SL_VerticalTitleBody,
|
||||
SL_VerticalTwoRows
|
||||
};
|
||||
|
||||
|
||||
enum SlideSizeEnum
|
||||
{
|
||||
SS_Screen,
|
||||
SS_LetterPaper,
|
||||
SS_A4Paper,
|
||||
SS_35mm,
|
||||
SS_Overhead,
|
||||
SS_Banner,
|
||||
SS_Custom
|
||||
};
|
||||
|
||||
|
||||
enum TextAlignmentEnum
|
||||
{
|
||||
Tx_ALIGNLeft,
|
||||
Tx_ALIGNCenter,
|
||||
Tx_ALIGNRight,
|
||||
Tx_ALIGNJustify,
|
||||
Tx_ALIGNDistributed,
|
||||
Tx_ALIGNThaiDistributed,
|
||||
Tx_ALIGNJustifyLow
|
||||
};
|
||||
|
||||
|
||||
enum TextAutoNumberSchemeEnum
|
||||
{
|
||||
ANM_AlphaLcPeriod,
|
||||
ANM_AlphaUcPeriod,
|
||||
ANM_ArabicParenRight,
|
||||
ANM_ArabicPeriod,
|
||||
ANM_RomanLcParenBoth,
|
||||
ANM_RomanLcParenRight,
|
||||
ANM_RomanLcPeriod,
|
||||
ANM_RomanUcPeriod,
|
||||
ANM_AlphaLcParenBoth,
|
||||
ANM_AlphaLcParenRight,
|
||||
ANM_AlphaUcParenBoth,
|
||||
ANM_AlphaUcParenRight,
|
||||
ANM_ArabicParenBoth,
|
||||
ANM_ArabicPlain,
|
||||
ANM_RomanUcParenBoth,
|
||||
ANM_RomanUcParenRight,
|
||||
ANM_ChsPlain,
|
||||
ANM_ChsPeriod,
|
||||
ANM_CircleNumDBPlain,
|
||||
ANM_CircleNumWDBWhitePlain,
|
||||
ANM_CircleNumWDBBlackPlain,
|
||||
ANM_ChtPlain,
|
||||
ANM_ChtPeriod,
|
||||
ANM_Arabic1Minus,
|
||||
ANM_Arabic2Minus,
|
||||
ANM_Hebrew2Minus,
|
||||
ANM_JpnKorPlain,
|
||||
ANM_JpnKorPeriod,
|
||||
ANM_ArabicDbPlain,
|
||||
ANM_ArabicDbPeriod,
|
||||
ANM_ThaiAlphaPeriod,
|
||||
ANM_ThaiAlphaParenRight,
|
||||
ANM_ThaiAlphaParenBoth,
|
||||
ANM_ThaiNumPeriod,
|
||||
ANM_ThaiNumParenRight,
|
||||
ANM_ThaiNumParenBoth,
|
||||
ANM_HindiAlphaPeriod,
|
||||
ANM_HindiNumPeriod,
|
||||
ANM_JpnChsDBPeriod,
|
||||
ANM_HindiNumParenRight,
|
||||
ANM_HindiAlpha1Period
|
||||
};
|
||||
|
||||
|
||||
enum TextBuildSubEffectEnum
|
||||
{
|
||||
TXB_BuildByNone,
|
||||
TXB_BuildByWord,
|
||||
TXB_BuildByCharacter
|
||||
};
|
||||
|
||||
|
||||
enum TextDirectionEnum
|
||||
{
|
||||
LeftToRight,
|
||||
RightToLeft
|
||||
};
|
||||
|
||||
|
||||
enum TextFontAlignmentEnum
|
||||
{
|
||||
Tx_ALIGNFONTRoman,
|
||||
Tx_ALIGNFONTHanging,
|
||||
Tx_ALIGNFONTCenter,
|
||||
Tx_ALIGNFONTUpholdFixed
|
||||
};
|
||||
|
||||
|
||||
enum TextTabTypeEnum
|
||||
{
|
||||
Tx_TABLeft,
|
||||
Tx_TABCenter,
|
||||
Tx_TABRight,
|
||||
Tx_TABDecimal
|
||||
};
|
||||
|
||||
|
||||
enum TextTypeEnum
|
||||
{
|
||||
Tx_TYPE_TITLE,
|
||||
Tx_TYPE_BODY,
|
||||
Tx_TYPE_NOTES,
|
||||
Tx_TYPE_OTHER = 0x4,
|
||||
Tx_TYPE_CENTERBODY,
|
||||
Tx_TYPE_CENTERTITLE,
|
||||
Tx_TYPE_HALFBODY,
|
||||
Tx_TYPE_QUARTERBODY
|
||||
};
|
||||
|
||||
|
||||
enum TimeAnimateBehaviorValueTypeEnum
|
||||
{
|
||||
TL_TABVT_String,
|
||||
TL_TABVT_Number,
|
||||
TL_TABVT_Color
|
||||
};
|
||||
|
||||
|
||||
enum TimeCommandBehaviorTypeEnum
|
||||
{
|
||||
TL_TCBT_Eventv,
|
||||
TL_TCBT_Call,
|
||||
TL_TCBT_OleVerb
|
||||
};
|
||||
|
||||
|
||||
enum TimeNodeTypeEnum
|
||||
{
|
||||
TL_TNT_Parallel,
|
||||
TL_TNT_Sequential,
|
||||
TL_TNT_Behavior = 0x3,
|
||||
TL_TNT_Media
|
||||
};
|
||||
|
||||
|
||||
enum TimePropertyID4TimeBehavior
|
||||
{
|
||||
TL_TBPID_UnknownPropertyList = 0x1,
|
||||
TL_TBPID_RuntimeContext,
|
||||
TL_TBPID_MotionPathEditRelative,
|
||||
TL_TBPID_ColorColorModel,
|
||||
TL_TBPID_ColorDirection,
|
||||
TL_TBPID_Override,
|
||||
TL_TBPID_PathEditRotationAngle,
|
||||
TL_TBPID_PathEditRotationX,
|
||||
TL_TBPID_PathEditRotationY,
|
||||
TL_TBPID_PointsTypes
|
||||
};
|
||||
|
||||
|
||||
enum TimePropertyID4TimeNode
|
||||
{
|
||||
TL_TPID_Display = 0x02,
|
||||
TL_TPID_MasterPos = 0x05,
|
||||
TL_TPID_SubType,
|
||||
TL_TPID_EffectID = 0x09,
|
||||
TL_TPID_EffectDir,
|
||||
TL_TPID_EffectType,
|
||||
TL_TPID_AfterEffect = 0x0D,
|
||||
TL_TPID_SlideCount = 0x0F,
|
||||
TL_TPID_TimeFilter,
|
||||
TL_TPID_EventFilter,
|
||||
TL_TPID_HideWhenStopped,
|
||||
TL_TPID_GroupID,
|
||||
TL_TPID_EffectNodeType,
|
||||
TL_TPID_PlaceholderNode,
|
||||
TL_TPID_MediaVolume,
|
||||
TL_TPID_MediaMute,
|
||||
TL_TPID_ZoomToFullScreen = 0x1A
|
||||
};
|
||||
|
||||
|
||||
enum TimeVariantTypeEnum
|
||||
{
|
||||
TL_TVT_Bool,
|
||||
TL_TVT_Int,
|
||||
TL_TVT_Float,
|
||||
TL_TVT_String
|
||||
};
|
||||
|
||||
|
||||
enum TimeVisualElementEnum
|
||||
{
|
||||
TL_TVET_Shape,
|
||||
TL_TVET_Page,
|
||||
TL_TVET_TextRange,
|
||||
TL_TVET_Audio,
|
||||
TL_TVET_Video,
|
||||
TL_TVET_ChartElement,
|
||||
TL_TVET_ShapeOnly,
|
||||
TL_TVET_AllTextRange = 0x8
|
||||
};
|
||||
|
||||
|
||||
enum TriggerObjectEnum
|
||||
{
|
||||
TL_TOT_None,
|
||||
TL_TOT_VisualElement,
|
||||
TL_TOT_TimeNode,
|
||||
TL_TOT_RuntimeNodeRef
|
||||
};
|
||||
|
||||
|
||||
enum ViewTypeEnum
|
||||
{
|
||||
V_Slide,
|
||||
V_SlideMaster,
|
||||
V_Notes,
|
||||
V_Handout,
|
||||
V_NotesMaster,
|
||||
V_OutlineMaster,
|
||||
V_Outline,
|
||||
V_SlideSorter,
|
||||
V_VisualBasic,
|
||||
V_TitleMaster,
|
||||
V_SlideShow,
|
||||
V_SlideShowFullScreen,
|
||||
V_NotesText,
|
||||
V_PrintPreview,
|
||||
V_Thumbnails,
|
||||
V_MasterThumbnails,
|
||||
V_PodiumSlideView,
|
||||
V_PodiumNotesView
|
||||
};
|
||||
|
||||
|
||||
enum WebFrameColorsEnum
|
||||
{
|
||||
MSOWOPTBrowserColors,
|
||||
MSOWOPTPresentationSchemeTextColor,
|
||||
MSOWOPTPresentationSchemeAccentColor,
|
||||
MSOWOPTWhiteTextOnBlack,
|
||||
MSOWOPTBlackTextOnWhite
|
||||
};
|
||||
|
||||
|
||||
enum WebOutputEnum
|
||||
{
|
||||
HTML_EXPORTVersion3 = 0x1,
|
||||
HTML_EXPORTVersion4,
|
||||
HTML_EXPORTDual = 0x4
|
||||
};
|
||||
}
|
||||
@ -38,6 +38,9 @@ HEADERS += \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Structures.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Timing.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/XmlStringWriter.h \
|
||||
../Enums/RecordType.h \
|
||||
../Enums/_includer.h \
|
||||
../Enums/enums.h \
|
||||
../PPTFormatLib.h \
|
||||
../Reader/ClassesAtom.h \
|
||||
../Reader/CommonZLib.h \
|
||||
@ -46,28 +49,84 @@ HEADERS += \
|
||||
../Reader/PPTFileDefines.h \
|
||||
../Reader/PPTFileReader.h \
|
||||
../Reader/ReadStructures.h \
|
||||
../Reader/RecordType.h \
|
||||
../Reader/Records.h \
|
||||
../Reader/Slide.h \
|
||||
../Reader/SlideInfo.h \
|
||||
../Reader/SlidePersist.h \
|
||||
../Records/AnimationInfoAtom.h \
|
||||
../Records/AnimationInfoContainer.h \
|
||||
../Records/Animations/AnimationInfoAtom.h \
|
||||
../Records/Animations/AnimationInfoContainer.h \
|
||||
../Records/Animations/BuildAtom.h \
|
||||
../Records/Animations/BuildListContainer.h \
|
||||
../Records/Animations/ChartBuildAtom.h \
|
||||
../Records/Animations/ChartBuildContainer.h \
|
||||
../Records/Animations/ClientVisualElementContainer.h \
|
||||
../Records/Animations/DiagramBuildAtom.h \
|
||||
../Records/Animations/DiagramBuildContainer.h \
|
||||
../Records/Animations/ExtTimeNodeContainer.h \
|
||||
../Records/Animations/HashCode10Atom.h \
|
||||
../Records/Animations/LevelInfoAtom.h \
|
||||
../Records/Animations/ParaBuildAtom.h \
|
||||
../Records/Animations/ParaBuildContainer.h \
|
||||
../Records/Animations/ParaBuildLevel.h \
|
||||
../Records/Animations/SubEffectContainer.h \
|
||||
../Records/Animations/TimeAnimateBehaviorAtom.h \
|
||||
../Records/Animations/TimeAnimateBehaviorContainer.h \
|
||||
../Records/Animations/TimeAnimateColor.h \
|
||||
../Records/Animations/TimeAnimateColorBy.h \
|
||||
../Records/Animations/TimeAnimationValueAtom.h \
|
||||
../Records/Animations/TimeAnimationValueListContainer.h \
|
||||
../Records/Animations/TimeAnimationValueListEntry.h \
|
||||
../Records/Animations/TimeBehaviorAtom.h \
|
||||
../Records/Animations/TimeBehaviorContainer.h \
|
||||
../Records/Animations/TimeColorBehaviorAtom.h \
|
||||
../Records/Animations/TimeColorBehaviorContainer.h \
|
||||
../Records/Animations/TimeCommandBehaviorAtom.h \
|
||||
../Records/Animations/TimeCommandBehaviorContainer.h \
|
||||
../Records/Animations/TimeConditionAtom.h \
|
||||
../Records/Animations/TimeConditionContainer.h \
|
||||
../Records/Animations/TimeDisplayType.h \
|
||||
../Records/Animations/TimeEffectBehaviorAtom.h \
|
||||
../Records/Animations/TimeEffectBehaviorContainer.h \
|
||||
../Records/Animations/TimeEffectID.h \
|
||||
../Records/Animations/TimeEffectNodeType.h \
|
||||
../Records/Animations/TimeEffectType.h \
|
||||
../Records/Animations/TimeGroupID.h \
|
||||
../Records/Animations/TimeIterateDataAtom.h \
|
||||
../Records/Animations/TimeMasterRelType.h \
|
||||
../Records/Animations/TimeModifierAtom.h \
|
||||
../Records/Animations/TimeMotionBehaviorAtom.h \
|
||||
../Records/Animations/TimeMotionBehaviorContainer.h \
|
||||
../Records/Animations/TimeNodeAtom.h \
|
||||
../Records/Animations/TimeNodeTimeFilter.h \
|
||||
../Records/Animations/TimePropertyList4TimeBehavior.h \
|
||||
../Records/Animations/TimePropertyList4TimeNodeContainer.h \
|
||||
../Records/Animations/TimeRotationBehaviorAtom.h \
|
||||
../Records/Animations/TimeRotationBehaviorContainer.h \
|
||||
../Records/Animations/TimeScaleBehaviorAtom.h \
|
||||
../Records/Animations/TimeScaleBehaviorContainer.h \
|
||||
../Records/Animations/TimeSequenceDataAtom.h \
|
||||
../Records/Animations/TimeSetBehaviorAtom.h \
|
||||
../Records/Animations/TimeSetBehaviorContainer.h \
|
||||
../Records/Animations/TimeStringListContainer.h \
|
||||
../Records/Animations/TimeVariant.h \
|
||||
../Records/Animations/TimeVariant4Behavior.h \
|
||||
../Records/Animations/VisualPageAtom.h \
|
||||
../Records/Animations/VisualShapeAtom.h \
|
||||
../Records/Animations/VisualShapeChartElementAtom.h \
|
||||
../Records/Animations/VisualShapeGeneralAtom.h \
|
||||
../Records/Animations/VisualSoundAtom.h \
|
||||
../Records/Animations/_includer.h \
|
||||
../Records/BlipEntityAtom.h \
|
||||
../Records/BookmarkEntityAtom.h \
|
||||
../Records/BookmarkSeedAtom.h \
|
||||
../Records/BuildAtom.h \
|
||||
../Records/ChartBuildAtom.h \
|
||||
../Records/ColorSchemeAtom.h \
|
||||
../Records/CString.h \
|
||||
../Records/CurrentUserAtom.h \
|
||||
../Records/DiagramBuildAtom.h \
|
||||
../Records/DiagramBuildContainer.h \
|
||||
../Records/DocRoutingSlipAtom.h \
|
||||
../Records/DocumentAtom.h \
|
||||
../Records/DocumentRecords.h \
|
||||
../Records/DocumentTextInfo.h \
|
||||
../Records/Drawing/ColorIndex.h \
|
||||
../Records/EndDocument.h \
|
||||
../Records/ExCDAudioContainer.h \
|
||||
../Records/ExControlAtom.h \
|
||||
@ -117,6 +176,7 @@ HEADERS += \
|
||||
../Records/SlideContainer.h \
|
||||
../Records/SlideListWithText.h \
|
||||
../Records/SlidePersistAtom.h \
|
||||
../Records/SlideProgTagsContainer.h \
|
||||
../Records/SlideViewInfoAtom.h \
|
||||
../Records/SoundCollAtom.h \
|
||||
../Records/SoundCollectionContainer.h \
|
||||
@ -134,6 +194,7 @@ HEADERS += \
|
||||
../Records/TextHeaderAtom.h \
|
||||
../Records/TextInteractiveInfoAtom.h \
|
||||
../Records/TextMasterStyle9Atom.h \
|
||||
../Records/TextMasterStyle9Level.h \
|
||||
../Records/TextMasterStyleAtom.h \
|
||||
../Records/TextPFExceptionAtom.h \
|
||||
../Records/TextRulerAtom.h \
|
||||
@ -170,7 +231,19 @@ HEADERS += \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextStructures.h \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Theme.h \
|
||||
../../../Common/3dParty/pole/pole.h
|
||||
../../../Common/3dParty/pole/pole.h \
|
||||
../Structures/ColorIndex.h \
|
||||
../Structures/ColorStruct.h \
|
||||
../Structures/DateTimeStruct.h \
|
||||
../Structures/IStruct.h \
|
||||
../Structures/PointStruct.h \
|
||||
../Structures/RatioStruct.h \
|
||||
../Structures/RectStruct.h \
|
||||
../Structures/ScalingStruct.h \
|
||||
../Structures/SmallRectStruct.h \
|
||||
../Structures/TmsfTimeStruct.h \
|
||||
../Structures/WideColorStruct.h \
|
||||
../Structures/_includer.h
|
||||
|
||||
core_release {
|
||||
SOURCES += \
|
||||
@ -184,7 +257,6 @@ SOURCES += \
|
||||
../Reader/Records.cpp \
|
||||
../Reader/PPTFileReader.cpp \
|
||||
../Reader/SlidePersist.cpp \
|
||||
../Records/Animations/AnimationTypes.cpp \
|
||||
../Records/Drawing/ArtBlip.cpp \
|
||||
../Records/Drawing/ShapeContainer.cpp \
|
||||
../PPTXWriter/Converter.cpp \
|
||||
@ -192,6 +264,7 @@ SOURCES += \
|
||||
}
|
||||
|
||||
SOURCES += \
|
||||
../Enums/RecordType.cpp \
|
||||
../PPTFormatLib.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/Elements.cpp \
|
||||
../../../ASCOfficePPTXFile/Editor/Drawing/TextAttributesEx.cpp \
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
#pragma once
|
||||
#include "ClassesAtom.h"
|
||||
|
||||
#include "../Records/Animations/AnimationTypes.h"
|
||||
#include "../Records/Animations/_includer.h"
|
||||
#include "../Records/ExObjListContainer.h"
|
||||
#include "../Records/CryptSession10Container.h"
|
||||
|
||||
|
||||
@ -32,7 +32,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "PPTFileDefines.h"
|
||||
#include "RecordType.h"
|
||||
#include "../Enums/RecordType.h"
|
||||
#include "../Reader/ReadStructures.h"
|
||||
#include "../../../ASCOfficePPTXFile/Editor/Drawing/Shapes/BaseShape/PPTShape/Enums.h"
|
||||
#include "../../../ASCOfficeXlsFile2/source/XlsFormat/Binary/CFStream.h"
|
||||
|
||||
@ -1,134 +1,136 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#include "../Reader/Records.h"
|
||||
#include "Drawing/ColorIndex.h"
|
||||
|
||||
|
||||
struct SFlagsAH {
|
||||
|
||||
USHORT m_fA_H;
|
||||
|
||||
USHORT getH()const {return (m_fA_H & 0xC000) >> 14;}
|
||||
USHORT getG()const {return (m_fA_H & 0x3000) >> 12;}
|
||||
USHORT getF()const {return (m_fA_H & 0xC00) >> 10;}
|
||||
USHORT getE()const {return (m_fA_H & 0x300) >> 8;}
|
||||
USHORT getD()const {return (m_fA_H & 0xC0) >> 6;}
|
||||
USHORT getC()const {return (m_fA_H & 0x30) >> 4;}
|
||||
USHORT getB()const {return (m_fA_H & 0xC) >> 2;}
|
||||
USHORT getA()const {return (m_fA_H & 0x3) >> 0;}
|
||||
|
||||
|
||||
|
||||
void ReadFromStream(POLE::Stream* pStream) {
|
||||
m_fA_H = StreamUtils::ReadWORD(pStream);
|
||||
}
|
||||
};
|
||||
|
||||
class CRecordAnimationInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
SColorIndex m_sDimColor;
|
||||
|
||||
USHORT m_fReverse;
|
||||
USHORT m_fAutomatic;
|
||||
USHORT m_fSound;
|
||||
USHORT m_fStopSound;
|
||||
USHORT m_fPlay;
|
||||
USHORT m_fSynchronous;
|
||||
USHORT m_fHide;
|
||||
USHORT m_fAnimateBg;
|
||||
|
||||
USHORT m_Reserved;
|
||||
|
||||
_UINT32 m_SoundIdRef;
|
||||
_UINT32 m_DelayTime;
|
||||
|
||||
USHORT m_OrderID;
|
||||
USHORT m_SlideCount;
|
||||
|
||||
BYTE m_AnimBuildType;
|
||||
BYTE m_AnimEffect;
|
||||
BYTE m_AnimEffectDirection;
|
||||
BYTE m_AnimAfterEffect;
|
||||
BYTE m_TextBuildSubEffect;
|
||||
BYTE m_OleVerb;
|
||||
public:
|
||||
|
||||
CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_sDimColor.ReadFromStream(pStream);
|
||||
|
||||
SFlagsAH fAH;
|
||||
fAH.ReadFromStream(pStream);
|
||||
|
||||
m_fReverse = fAH.getA();
|
||||
m_fAutomatic = fAH.getB();
|
||||
m_fSound = fAH.getC();
|
||||
m_fStopSound = fAH.getD();
|
||||
m_fPlay = fAH.getE();
|
||||
m_fSynchronous = fAH.getF();
|
||||
m_fHide = fAH.getG();
|
||||
m_fAnimateBg = fAH.getH();
|
||||
|
||||
m_Reserved = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_SoundIdRef = StreamUtils::ReadDWORD(pStream);
|
||||
m_DelayTime = StreamUtils::ReadDWORD(pStream);
|
||||
|
||||
m_OrderID = StreamUtils::ReadWORD(pStream);
|
||||
m_SlideCount = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_AnimBuildType = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffectDirection = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimAfterEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_TextBuildSubEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_OleVerb = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
|
||||
StreamUtils::StreamSkip(2, pStream);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Structures/ColorIndex.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct SFlagsAH {
|
||||
|
||||
USHORT m_fA_H;
|
||||
|
||||
USHORT getH()const {return (m_fA_H & 0xC000) >> 14;}
|
||||
USHORT getG()const {return (m_fA_H & 0x3000) >> 12;}
|
||||
USHORT getF()const {return (m_fA_H & 0xC00) >> 10;}
|
||||
USHORT getE()const {return (m_fA_H & 0x300) >> 8;}
|
||||
USHORT getD()const {return (m_fA_H & 0xC0) >> 6;}
|
||||
USHORT getC()const {return (m_fA_H & 0x30) >> 4;}
|
||||
USHORT getB()const {return (m_fA_H & 0xC) >> 2;}
|
||||
USHORT getA()const {return (m_fA_H & 0x3) >> 0;}
|
||||
|
||||
|
||||
|
||||
void ReadFromStream(POLE::Stream* pStream) {
|
||||
m_fA_H = StreamUtils::ReadWORD(pStream);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
class CRecordAnimationInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
ColorIndex m_sDimColor;
|
||||
|
||||
USHORT m_fReverse;
|
||||
USHORT m_fAutomatic;
|
||||
USHORT m_fSound;
|
||||
USHORT m_fStopSound;
|
||||
USHORT m_fPlay;
|
||||
USHORT m_fSynchronous;
|
||||
USHORT m_fHide;
|
||||
USHORT m_fAnimateBg;
|
||||
|
||||
USHORT m_Reserved;
|
||||
|
||||
_UINT32 m_SoundIdRef;
|
||||
_UINT32 m_DelayTime;
|
||||
|
||||
USHORT m_OrderID;
|
||||
USHORT m_SlideCount;
|
||||
|
||||
BYTE m_AnimBuildType;
|
||||
BYTE m_AnimEffect;
|
||||
BYTE m_AnimEffectDirection;
|
||||
BYTE m_AnimAfterEffect;
|
||||
BYTE m_TextBuildSubEffect;
|
||||
BYTE m_OleVerb;
|
||||
public:
|
||||
|
||||
CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordAnimationInfoAtom()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_sDimColor.ReadFromStream(pStream);
|
||||
|
||||
SFlagsAH fAH;
|
||||
fAH.ReadFromStream(pStream);
|
||||
|
||||
m_fReverse = fAH.getA();
|
||||
m_fAutomatic = fAH.getB();
|
||||
m_fSound = fAH.getC();
|
||||
m_fStopSound = fAH.getD();
|
||||
m_fPlay = fAH.getE();
|
||||
m_fSynchronous = fAH.getF();
|
||||
m_fHide = fAH.getG();
|
||||
m_fAnimateBg = fAH.getH();
|
||||
|
||||
m_Reserved = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_SoundIdRef = StreamUtils::ReadDWORD(pStream);
|
||||
m_DelayTime = StreamUtils::ReadDWORD(pStream);
|
||||
|
||||
m_OrderID = StreamUtils::ReadWORD(pStream);
|
||||
m_SlideCount = StreamUtils::ReadWORD(pStream);
|
||||
|
||||
m_AnimBuildType = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimEffectDirection = StreamUtils::ReadBYTE(pStream);
|
||||
m_AnimAfterEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_TextBuildSubEffect = StreamUtils::ReadBYTE(pStream);
|
||||
m_OleVerb = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
|
||||
StreamUtils::StreamSkip(2, pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -30,10 +30,15 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "AnimationInfoAtom.h"
|
||||
#include "SoundContainer.h"
|
||||
#include "../SoundContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordAnimationInfoContainer: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
@ -56,3 +61,4 @@ public:
|
||||
m_AnimationSound.ReadFromStream ( oHeader, pStream );
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,545 +0,0 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#include "AnimationTypes.h"
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------//
|
||||
// Animation Types //
|
||||
//----------------------------------------------------------------------------------------------------------------------//
|
||||
|
||||
/*
|
||||
static const wchar_t EffectBehaviorBlindsHorizontal [] = L"blinds(horizontal)";
|
||||
static const wchar_t EffectBehaviorBoxIn [] = L"box(in)";
|
||||
static const wchar_t EffectBehaviorBoxOut [] = L"box(out)";
|
||||
static const wchar_t EffectBehaviorCheckerboardAcross [] = L"checkerboard(across)";
|
||||
static const wchar_t EffectBehaviorCheckerboardDown [] = L"checkerboard(down)";
|
||||
static const wchar_t EffectBehaviorCircleIn [] = L"circle(in)";
|
||||
static const wchar_t EffectBehaviorCircleOut [] = L"circle(out)";
|
||||
static const wchar_t EffectBehaviorDiamondIn [] = L"diamond(in)";
|
||||
static const wchar_t EffectBehaviorDiamonOut [] = L"diamond(out)";
|
||||
static const wchar_t EffectBehaviorDissolve [] = L"dissolve";
|
||||
static const wchar_t EffectBehaviorFade [] = L"fade";
|
||||
static const wchar_t EffectBehaviorPlusIn [] = L"plus(in)";
|
||||
static const wchar_t EffectBehaviorPlusOut [] = L"plus(out)";
|
||||
static const wchar_t EffectBehaviorBarnInVertical [] = L"barn(inVertical)";
|
||||
static const wchar_t EffectBehaviorBarnInHorizontal [] = L"barn(inHorizontal)";
|
||||
static const wchar_t EffectBehaviorBarnOutVertical [] = L"barn(outVertical)";
|
||||
static const wchar_t EffectBehaviorBarnOnHorizontal [] = L"barn(outHorizontal)";
|
||||
static const wchar_t EffectBehaviorRandomBarHorizontal [] = L"randombar(horizontal)";
|
||||
static const wchar_t EffectBehaviorRandomBarVertical [] = L"randombar(vertical)";
|
||||
static const wchar_t EffectBehaviorStripsDownLeft [] = L"strips(downLeft)";
|
||||
static const wchar_t EffectBehaviorStripsUpLeft [] = L"strips(upLeft)";
|
||||
static const wchar_t EffectBehaviorStripsDownRight [] = L"strips(downRight)";
|
||||
static const wchar_t EffectBehaviorStripsUpRight [] = L"strips(upRight)";
|
||||
static const wchar_t EffectBehaviorWedge [] = L"wedge";
|
||||
static const wchar_t EffectBehaviorWheel1 [] = L"wheel(1)";
|
||||
static const wchar_t EffectBehaviorWheel2 [] = L"wheel(2)";
|
||||
static const wchar_t EffectBehaviorWheel3 [] = L"wheel(3)";
|
||||
static const wchar_t EffectBehaviorWheel4 [] = L"wheel(4)";
|
||||
static const wchar_t EffectBehaviorWheel8 [] = L"wheel(8)";
|
||||
static const wchar_t EffectBehaviorWipeRight [] = L"wipe(right)";
|
||||
static const wchar_t EffectBehaviorWipeLeft [] = L"wipe(left)";
|
||||
static const wchar_t EffectBehaviorWipeUp [] = L"wipe(up)";
|
||||
static const wchar_t EffectBehaviorWipeDown [] = L"wipe(down)";
|
||||
*/
|
||||
|
||||
#pragma region _MACROSES_
|
||||
|
||||
#define GET_ENUM_STRING(NAMEE, VALUEE)\
|
||||
case TL_##NAMEE##VALUEE: \
|
||||
return std::wstring(_T("TL_")) + std::wstring(_T(#NAMEE)) + std::wstring(_T(#VALUEE)); \
|
||||
break;
|
||||
|
||||
#if defined(_WIN32) || defined (_WIN64)
|
||||
#define GET_EFFECT_NAME_BY_ID(VALUE,DESCRIPTION) \
|
||||
case (##VALUE) : return std::wstring(_T(#DESCRIPTION)); break;
|
||||
#else
|
||||
#define GET_EFFECT_NAME_BY_ID(VALUE,DESCRIPTION) \
|
||||
case ##VALUE : return std::wstring(_T(#DESCRIPTION)); break;
|
||||
#endif
|
||||
#pragma endregion
|
||||
|
||||
namespace Animations
|
||||
{
|
||||
std::wstring Helpers::GetTimePropertyID4TimeNode ( TimePropertyID4TimeNode Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TPID_, Display );
|
||||
GET_ENUM_STRING( TPID_, MasterPos );
|
||||
GET_ENUM_STRING( TPID_, SlaveType );
|
||||
GET_ENUM_STRING( TPID_, EffectID );
|
||||
GET_ENUM_STRING( TPID_, EffectDir );
|
||||
GET_ENUM_STRING( TPID_, AfterEffect );
|
||||
GET_ENUM_STRING( TPID_, SlideCount );
|
||||
GET_ENUM_STRING( TPID_, TimeFilter );
|
||||
GET_ENUM_STRING( TPID_, EventFilter );
|
||||
GET_ENUM_STRING( TPID_, HideWhenStopped );
|
||||
GET_ENUM_STRING( TPID_, GroupID );
|
||||
GET_ENUM_STRING( TPID_, EffectNodeType );
|
||||
GET_ENUM_STRING( TPID_, PlaceholderNode );
|
||||
GET_ENUM_STRING( TPID_, MediaVolume );
|
||||
GET_ENUM_STRING( TPID_, MediaMute );
|
||||
GET_ENUM_STRING( TPID_, ZoomToFullScreen );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimePropertyID4TimeNode : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTimeVariantTypeEnum ( TimeVariantTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TVT_, Bool );
|
||||
GET_ENUM_STRING( TVT_, Int );
|
||||
GET_ENUM_STRING( TVT_, Float );
|
||||
GET_ENUM_STRING( TVT_, String );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeVariantTypeEnum : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTimeNodeTypeEnum ( TimeNodeTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TNT_, Parallel );
|
||||
GET_ENUM_STRING( TNT_, Sequential );
|
||||
GET_ENUM_STRING( TNT_, Behavior );
|
||||
GET_ENUM_STRING( TNT_, Media );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeNodeTypeEnum : Unknown Enum") );
|
||||
}
|
||||
};
|
||||
|
||||
std::wstring Helpers::GetTriggerObjectEnum ( TriggerObjectEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TOT_, None ); // None
|
||||
GET_ENUM_STRING( TOT_, VisualElement ); // An animatable object.
|
||||
GET_ENUM_STRING( TOT_, TimeNode ); // A time node.
|
||||
GET_ENUM_STRING( TOT_, RuntimeNodeRef ); // Runtime child time nodes.
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TriggerObjectEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetTimeVisualElementEnum ( TimeVisualElementEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TVET_, Shape );
|
||||
GET_ENUM_STRING( TVET_, Page );
|
||||
GET_ENUM_STRING( TVET_, TextRange );
|
||||
GET_ENUM_STRING( TVET_, Audio );
|
||||
GET_ENUM_STRING( TVET_, Video );
|
||||
GET_ENUM_STRING( TVET_, ChartElement );
|
||||
GET_ENUM_STRING( TVET_, ShapeOnly );
|
||||
GET_ENUM_STRING( TVET_, AllTextRange );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeVisualElementEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetElementTypeEnum ( ElementTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( ET_, ShapeType );
|
||||
GET_ENUM_STRING( ET_, SoundType );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("ElementTypeEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetTimeAnimateBehaviorValueTypeEnum ( TimeAnimateBehaviorValueTypeEnum Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
GET_ENUM_STRING( TABVT_, String );
|
||||
GET_ENUM_STRING( TABVT_, Number );
|
||||
GET_ENUM_STRING( TABVT_, Color );
|
||||
|
||||
default:
|
||||
return std::wstring ( _T("TimeAnimateBehaviorValueTypeEnum : Unknown Enum") );
|
||||
}
|
||||
}
|
||||
std::wstring Helpers::GetAnimationClassName ( AnimationsClassType Value )
|
||||
{
|
||||
switch ( Value )
|
||||
{
|
||||
case Animations::RT_TimeNode:
|
||||
return std::wstring (_T("TimeNodeAtom") );
|
||||
|
||||
case Animations::RT_TimePropertyList: // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
return std::wstring (_T("TimePropertyList4TimeNodeContainer"));
|
||||
|
||||
case Animations::RT_TimeExtTimeNodeContainer:
|
||||
return std::wstring (_T("ExtTimeNodeContainer"));
|
||||
|
||||
case Animations::RT_SlideTime10Atom :
|
||||
return std::wstring (_T("SlideTime10Atom"));
|
||||
|
||||
case Animations::RT_SlideFlags10Atom:
|
||||
return std::wstring (_T("SlideFlags10Atom"));
|
||||
|
||||
case Animations::RT_HashCodeAtom:
|
||||
return std::wstring (_T("HashCode10Atom"));
|
||||
|
||||
case Animations::RT_TimeSequenceData:
|
||||
return std::wstring (_T("TimeSequenceDataAtom"));
|
||||
|
||||
case Animations::RT_TimeConditionContainer:
|
||||
return std::wstring (_T("TimeConditionContainer"));
|
||||
|
||||
case Animations::RT_TimeCondition:
|
||||
return std::wstring (_T("TimeConditionAtom"));
|
||||
}
|
||||
|
||||
return std::wstring (_T(""));
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetEffectTypeOfGroup ( _UINT32 Value )
|
||||
{
|
||||
if ( 0x00000001 == Value )
|
||||
return std::wstring ( _T("Entrance") );
|
||||
if ( 0x00000002 == Value )
|
||||
return std::wstring ( _T("Exit") );
|
||||
if ( 0x00000003 == Value )
|
||||
return std::wstring ( _T("Emphasis") );
|
||||
if ( 0x00000004 == Value )
|
||||
return std::wstring ( _T("MotionPath") );
|
||||
if ( 0x00000005 == Value )
|
||||
return std::wstring ( _T("ActionVerb") );
|
||||
if ( 0x00000006 == Value )
|
||||
return std::wstring ( _T("MediaCommand") );
|
||||
|
||||
return std::wstring ( _T("") );
|
||||
}
|
||||
// the corresponding effect type is an entrance or an exit effect
|
||||
std::wstring Helpers::GetEffectEntranceOrExitNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000000, Custom ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, Appear ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, FlyIn ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, Blinds ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, Box ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, CheckBoard ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, Circle ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, Crawl ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Diamond ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Dissolve ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, Fade ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000B, FlashOnce ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000C, Peek ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000D, Plus ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, RandomBars ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, Spiral ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, Split ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000011, Stretch ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, Strips ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, Swivel ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, Wedge ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, Wheel ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, Wipe ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, Zoom ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, RandomEffects ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, Boomerang ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, Bounce ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, ColorReveal ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, Credits ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001D, EaseIn ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Float ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, GrowAndTurn ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000020, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000021, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, LightSpeed ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, PinWheel ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000024, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000025, RiseUp ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000026, Swish ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000027, ThinLine ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000028, Unfold ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000029, Whip ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002A, Ascend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002B, CenterRevolve ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000002C, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002D, FadedSwivel ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000002E, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002F, Descend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000030, Sling ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000031, Spinner ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000032, Compress ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000033, Zip ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000034, ArcUp ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000035, FadedZoom ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000036, Glide ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000037, Expand ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000038, Flip ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000039, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003A, Fold ); // The corresponding effect direction MUST be ignored.
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
|
||||
// the corresponding effect type is an emphasis effect
|
||||
std::wstring Helpers::GetEffectEmphasisNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, ChangeFont ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, ChangeFontSize ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, ChangeFontStyle ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, GrowAndShrink ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, ChangeFillColor ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Spin ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Transparency ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, BoldFlash ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000B, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000C, Reserved ); //
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000000D, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, Blast ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, BoldReveal ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, BrushOnColor ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x00000011, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, BrushOnUnderline ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, ColorBlend ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, ColorWave ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, ComplementaryColor ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, ComplementaryColor2 ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, ContrastingColor ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, Darken ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, Desaturate ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, FlashBulb ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, Flicker ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, GrowWithColor ); // The corresponding effect direction MUST be ignored.
|
||||
//GET_EFFECT_NAME_BY_ID ( 0x0000001D, Reserved ); //
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Lighten ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, StyleEmphasis ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000020, Teeter ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000021, VerticalGrow ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, Wave ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, Blink ); // The corresponding effect direction MUST be ignored.
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000024, Shimmer ); // The corresponding effect direction MUST be ignored.
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
// the corresponding effect type is a motion path effect
|
||||
std::wstring Helpers::GetEffectMotionPathNameByID ( _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectID )
|
||||
{
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000000, Custom );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000001, Circle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000002, RightTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000003, Diamond );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000004, Hexagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000005, FivePointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000006, CrescentMoon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000007, Square );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000008, Trapezoid );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000009, Heart );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000A, Octagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000B, SixPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000C, Football );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000D, EqualTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000E, Parallelogram );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000000F, Pentagon );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000010, FourPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000011, EightPointStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000012, Teardrop );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000013, PointyStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000014, CurvedSquare );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000015, CurvedX );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000016, VerticalFigure8 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000017, CurvyStar );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000018, LoopDeLoop );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000019, BuzzSaw );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001A, HorizontalFigure8 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001B, Peanut );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001C, Figure8four );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001D, Neutron );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001E, Swoosh );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000001F, Bean );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000020, Plus );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000021, InvertedTriangle );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000022, InvertedSquare );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000023, Left );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000024, TurnRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000025, ArcDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000026, Zigzag );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000027, SCurve2 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000028, SineWave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000029, BounceLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002A, Down );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002B, TurnUp );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002C, ArcUp );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002D, HeartBeat );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002E, SpiralRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000002F, Wave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000030, CurvyLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000031, DiagonalDownRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000032, TurnDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000033, ArcLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000034, Funnel );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000035, Spring );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000036, BounceRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000037, SpiralLeft );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000038, DiagonalUpRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000039, TurnUpRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003A, ArcRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003B, Scurve1 );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003C, DecayingWave );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003D, CurvyRight );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003E, StairsDown );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x0000003F, Right );
|
||||
GET_EFFECT_NAME_BY_ID ( 0x00000040, Up );
|
||||
default :
|
||||
break;
|
||||
}
|
||||
return std::wstring(_T("Unknown EffectID"));
|
||||
}
|
||||
|
||||
std::wstring Helpers::GetEffectNameByID ( _UINT32 EffectType, _UINT32 EffectID )
|
||||
{
|
||||
switch ( EffectType )
|
||||
{
|
||||
case 0x00000001: // Entrance +
|
||||
case 0x00000002: // Exit
|
||||
return Animations::Helpers::GetEffectEntranceOrExitNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000003: // Emphasis +
|
||||
return Animations::Helpers::GetEffectEmphasisNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000004: // Motion path +
|
||||
return Animations::Helpers::GetEffectMotionPathNameByID ( EffectID );
|
||||
break;
|
||||
case 0x00000005: // Action verb
|
||||
case 0x00000006: // Media command
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return std::wstring ( _T("") );
|
||||
}
|
||||
}
|
||||
|
||||
namespace Animations
|
||||
{
|
||||
IRecord* CAnimationFactory::BuildAnimationObject ( WORD Type )
|
||||
{
|
||||
switch ( Type )
|
||||
{
|
||||
case Animations::RT_SlideTime10Atom :
|
||||
return new Animations::SlideTime10Atom ();
|
||||
|
||||
case Animations::RT_SlideFlags10Atom:
|
||||
return new Animations::SlideFlags10Atom ();
|
||||
|
||||
case Animations::RT_HashCodeAtom:
|
||||
return new Animations::HashCode10Atom ();
|
||||
|
||||
case Animations::RT_TimeExtTimeNodeContainer:
|
||||
return new Animations::ExtTimeNodeContainer ();
|
||||
|
||||
case Animations::RT_TimeNode:
|
||||
return new Animations::TimeNodeAtom ();
|
||||
|
||||
case Animations::RT_TimePropertyList: // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
return new Animations::TimePropertyList4TimeNodeContainer ();
|
||||
|
||||
case Animations::RT_TimeSequenceData:
|
||||
return new Animations::TimeSequenceDataAtom ();
|
||||
|
||||
case Animations::RT_TimeConditionContainer:
|
||||
return new TimeConditionContainer ();
|
||||
|
||||
case Animations::RT_TimeCondition:
|
||||
return new TimeConditionAtom ();
|
||||
|
||||
case Animations::RT_TimeClientVisualElement:
|
||||
return new ClientVisualElementContainer ();
|
||||
|
||||
case Animations::RT_VisualPageAtom:
|
||||
return new VisualPageAtom ();
|
||||
|
||||
case Animations::RT_TimeEffectBehaviorContainer:
|
||||
return new TimeEffectBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeEffectBehavior:
|
||||
return new TimeEffectBehaviorAtom ();
|
||||
|
||||
case Animations::RT_TimeBehavior:
|
||||
return new TimeBehaviorAtom ();
|
||||
|
||||
case Animations::RT_TimeBehaviorContainer:
|
||||
return new TimeBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeMotionBehaviorContainer:
|
||||
return new TimeMotionBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeSetBehaviorContainer:
|
||||
return new TimeSetBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeAnimateBehaviorContainer:
|
||||
return new TimeAnimateBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeScaleBehaviorContainer:
|
||||
return new TimeScaleBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeRotationBehaviorContainer:
|
||||
return new TimeRotationBehaviorContainer ();
|
||||
|
||||
case Animations::RT_TimeSlaveContainer:
|
||||
return new SlaveContainer ();
|
||||
|
||||
case Animations::RT_TimeModifierAtom:
|
||||
return new TimeModifierAtom();
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
66
ASCOfficePPTFile/PPTFormatLib/Records/Animations/BuildAtom.h
Normal file
66
ASCOfficePPTFile/PPTFormatLib/Records/Animations/BuildAtom.h
Normal file
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nBuildType = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBuildId = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nShapeIdRef = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fExpanded = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fUIExpanded = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nBuildType; // 1 - Paragraph build type, 2 - Chart build type, 3 - Diagram build type
|
||||
_UINT32 m_nBuildId;
|
||||
_UINT32 m_nShapeIdRef;
|
||||
|
||||
bool m_fExpanded;
|
||||
bool m_fUIExpanded;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,81 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "ParaBuildContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordBuildListContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordBuildListContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CRecordBuildListContainer()
|
||||
{
|
||||
for ( size_t i = 0; i < n_arrRgChildRec.size(); ++i )
|
||||
RELEASEOBJECT (n_arrRgChildRec[i]);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 lCurLen(0);
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while (lCurLen < m_oHeader.RecLen) {
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
IRecord* pBuildListSubContainer = CreateByType(ReadHeader);
|
||||
n_arrRgChildRec.push_back(pBuildListSubContainer);
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
public:
|
||||
std::vector <IRecord*> n_arrRgChildRec;
|
||||
};
|
||||
}
|
||||
@ -30,17 +30,14 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
enum ChartBuildEnum : _UINT32
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
TLCB_AsOneObject,
|
||||
TLCB_BySeries,
|
||||
TLCB_ByCategory,
|
||||
TLCB_ByElementInSeries,
|
||||
TLCB_ByElementInCategory
|
||||
};
|
||||
|
||||
class CRecordChartBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
@ -60,3 +57,4 @@ public:
|
||||
StreamUtils::StreamSkip(3, pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "ChartBuildAtom.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordChartBuildContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordChartBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordChartBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oChartBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordChartBuildAtom m_oChartBuildAtom;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,85 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "VisualPageAtom.h"
|
||||
#include "VisualShapeAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordClientVisualElementContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordClientVisualElementContainer ()
|
||||
{
|
||||
m_bVisualPageAtom = false;
|
||||
m_bVisualShapeAtom = false;
|
||||
}
|
||||
|
||||
void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream ) override
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
if ( RT_VisualPageAtom == ReadHeader.RecType )
|
||||
{
|
||||
m_bVisualPageAtom = true;
|
||||
m_oVisualPageAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( RT_VisualShapeAtom == ReadHeader.RecType )
|
||||
{
|
||||
m_bVisualShapeAtom = true;
|
||||
m_oVisualShapeAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
}
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordVisualPageAtom m_oVisualPageAtom;
|
||||
CRecordVisualShapeAtom m_oVisualShapeAtom;
|
||||
|
||||
bool m_bVisualPageAtom;
|
||||
bool m_bVisualShapeAtom;
|
||||
};
|
||||
|
||||
}
|
||||
@ -30,33 +30,18 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
enum DiagramBuildEnum : _UINT32
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
TLDB_AsOneObject,
|
||||
TLDB_DepthByNode,
|
||||
TLDB_DepthByBranch,
|
||||
TLDB_BreadthByNode,
|
||||
TLDB_BreadthByLevel,
|
||||
TLDB_ClockWise,
|
||||
TLDB_ClockWiseIn,
|
||||
TLDB_ClockWiseOut,
|
||||
TLDB_CounterClockWise,
|
||||
TLDB_CounterClockWiseIn,
|
||||
TLDB_CounterClockWiseOut,
|
||||
TLDB_InByRing,
|
||||
TLDB_OutByRing,
|
||||
TLDB_Up,
|
||||
TLDB_Down,
|
||||
TLDB_AllAtOnce,
|
||||
TLDB_Custom
|
||||
};
|
||||
|
||||
class CRecordDiagramBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
DiagramBuildEnum m_DiagramBuild;
|
||||
DiagramBuildEnum m_oDiagramBuild;
|
||||
|
||||
CRecordDiagramBuildAtom(){}
|
||||
~CRecordDiagramBuildAtom(){}
|
||||
@ -65,6 +50,7 @@ public:
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_DiagramBuild = (DiagramBuildEnum)StreamUtils::ReadDWORD(pStream);
|
||||
m_oDiagramBuild = (DiagramBuildEnum)StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -1,5 +1,3 @@
|
||||
|
||||
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
@ -32,50 +30,44 @@
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "DiagramBuildAtom.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "DiagramBuildAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordDiagramBuildContainer : public CUnknownRecord
|
||||
{
|
||||
{
|
||||
public:
|
||||
CRecordDiagramBuildContainer()
|
||||
{
|
||||
|
||||
CRecordDiagramBuildContainer ()
|
||||
{
|
||||
}
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
~CRecordDiagramBuildContainer()
|
||||
{
|
||||
|
||||
#if defined(_DEBUG) && (defined(_WIN32) || defined(_WIN64))
|
||||
if( IsCorrect () == false ) return;
|
||||
#endif
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
}
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
m_BuildAtom.ReadFromStream(ReadHeader, pStream);
|
||||
}
|
||||
if (ReadHeader.ReadFromStream(pStream)) {
|
||||
m_DiagramBuildAtom.ReadFromStream(ReadHeader, pStream);
|
||||
}
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
virtual bool IsCorrect ( )
|
||||
{
|
||||
return m_oHeader.RecVersion == 0xF &&
|
||||
m_oHeader.RecInstance == 0x0 &&
|
||||
m_oHeader.RecType == 0x2B06 &&
|
||||
m_oHeader.RecLen == 0x024;
|
||||
}
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
public:
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oDiagramBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
CRecordBuildAtom m_BuildAtom;
|
||||
CRecordDiagramBuildAtom m_DiagramBuildAtom;
|
||||
};
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordDiagramBuildAtom m_oDiagramBuildAtom;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,376 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
#include "TimeAnimateBehaviorContainer.h"
|
||||
#include "TimeColorBehaviorContainer.h"
|
||||
#include "TimeEffectBehaviorContainer.h"
|
||||
#include "TimeMotionBehaviorContainer.h"
|
||||
#include "TimeRotationBehaviorContainer.h"
|
||||
#include "TimeScaleBehaviorContainer.h"
|
||||
#include "TimeSetBehaviorContainer.h"
|
||||
#include "TimeCommandBehaviorContainer.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
#include "TimeIterateDataAtom.h"
|
||||
#include "TimeSequenceDataAtom.h"
|
||||
#include "TimeConditionContainer.h"
|
||||
#include "TimeModifierAtom.h"
|
||||
#include "SubEffectContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordExtTimeNodeContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
/*-------------------------------------- record --------------------------------- */
|
||||
|
||||
CRecordTimeNodeAtom m_oTimeNodeAtom;
|
||||
//
|
||||
CRecordTimePropertyList4TimeNodeContainer* m_pTimePropertyList; // OPTIONAL
|
||||
CRecordTimeAnimateBehaviorContainer* m_pTimeAnimateBehavior; // OPTIONAL
|
||||
CRecordTimeColorBehaviorContainer* m_pTimeColorBehavior; // OPTIONAL
|
||||
CRecordTimeEffectBehaviorContainer* m_pTimeEffectBehavior; // OPTIONAL
|
||||
CRecordTimeMotionBehaviorContainer* m_pTimeMotionBehavior; // OPTIONAL
|
||||
CRecordTimeRotationBehaviorContainer* m_pTimeRotationBehavior; // OPTIONAL
|
||||
CRecordTimeScaleBehaviorContainer* m_pTimeScaleBehavior; // OPTIONAL
|
||||
CRecordTimeSetBehaviorContainer* m_pTimeSetBehavior; // OPTIONAL
|
||||
CRecordTimeCommandBehaviorContainer* m_pTimeCommandBehavior; // OPTIONAL
|
||||
CRecordClientVisualElementContainer* m_pClientVisualElement; // OPTIONAL - It MUST exist only if timeNodeAtom.type is TL_TNT_Media
|
||||
|
||||
CRecordTimeIterateDataAtom* m_pTimeIterateDataAtom; // OPTIONAL
|
||||
CRecordTimeSequenceDataAtom* m_pTimeSequenceDataAtom; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgBeginTimeCondition; // OPTIONAL
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgEndTimeCondition; // OPTIONAL
|
||||
CRecordTimeConditionContainer* m_pTimeEndSyncTimeCondition; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeModifierAtom*> m_arrRgTimeModifierAtom; // OPTIONAL
|
||||
std::vector<CRecordSubEffectContainer*> m_arrRgSubEffect; // OPTIONAL
|
||||
std::vector <CRecordExtTimeNodeContainer*> m_arrRgExtTimeNodeChildren; // OPTIONAL
|
||||
|
||||
/*-------------------------------------- record --------------------------------- */
|
||||
|
||||
bool m_haveTimePropertyList;
|
||||
bool m_haveAnimateBehavior;
|
||||
bool m_haveColorBehavior;
|
||||
bool m_haveEffectBehavior;
|
||||
bool m_haveMotionBehavior;
|
||||
bool m_haveRotationBehavior;
|
||||
bool m_haveScaleBehavior;
|
||||
bool m_haveSetBehavior;
|
||||
bool m_haveCommandBehavior;
|
||||
bool m_haveClientVisualElement;
|
||||
|
||||
bool m_haveIterateDataAtom;
|
||||
bool m_haveSequenceAtom;
|
||||
|
||||
bool m_haveTimeEndSyncTime;
|
||||
|
||||
public:
|
||||
|
||||
CRecordExtTimeNodeContainer() :
|
||||
m_pTimePropertyList(nullptr),
|
||||
m_pTimeAnimateBehavior(nullptr),
|
||||
m_pTimeColorBehavior(nullptr),
|
||||
m_pTimeEffectBehavior(nullptr),
|
||||
m_pTimeMotionBehavior(nullptr),
|
||||
m_pTimeRotationBehavior(nullptr),
|
||||
m_pTimeScaleBehavior(nullptr),
|
||||
m_pTimeSetBehavior(nullptr),
|
||||
m_pTimeCommandBehavior(nullptr),
|
||||
m_pClientVisualElement(nullptr),
|
||||
|
||||
m_pTimeIterateDataAtom(nullptr),
|
||||
m_pTimeSequenceDataAtom(nullptr),
|
||||
|
||||
m_pTimeEndSyncTimeCondition(nullptr),
|
||||
|
||||
|
||||
m_haveTimePropertyList(false),
|
||||
m_haveAnimateBehavior(false),
|
||||
m_haveColorBehavior(false),
|
||||
m_haveEffectBehavior(false),
|
||||
m_haveMotionBehavior(false),
|
||||
m_haveRotationBehavior(false),
|
||||
m_haveScaleBehavior(false),
|
||||
m_haveSetBehavior(false),
|
||||
m_haveCommandBehavior(false),
|
||||
m_haveClientVisualElement(false),
|
||||
|
||||
m_haveIterateDataAtom(false),
|
||||
m_haveSequenceAtom(false),
|
||||
|
||||
m_haveTimeEndSyncTime(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordExtTimeNodeContainer()
|
||||
{
|
||||
RELEASEOBJECT(m_pTimePropertyList);
|
||||
RELEASEOBJECT(m_pTimeAnimateBehavior);
|
||||
RELEASEOBJECT(m_pTimeColorBehavior);
|
||||
RELEASEOBJECT(m_pTimeEffectBehavior);
|
||||
RELEASEOBJECT(m_pTimeMotionBehavior);
|
||||
RELEASEOBJECT(m_pTimeRotationBehavior);
|
||||
RELEASEOBJECT(m_pTimeScaleBehavior);
|
||||
RELEASEOBJECT(m_pTimeSetBehavior);
|
||||
RELEASEOBJECT(m_pTimeCommandBehavior);
|
||||
RELEASEOBJECT(m_pClientVisualElement);
|
||||
|
||||
RELEASEOBJECT(m_pTimeIterateDataAtom);
|
||||
RELEASEOBJECT(m_pTimeSequenceDataAtom);
|
||||
|
||||
RELEASEOBJECT(m_pTimeEndSyncTimeCondition);
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgBeginTimeCondition.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgBeginTimeCondition[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgEndTimeCondition.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgEndTimeCondition[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgTimeModifierAtom.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgTimeModifierAtom[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgSubEffect.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgSubEffect[i] );
|
||||
|
||||
for ( size_t i = 0; i < m_arrRgExtTimeNodeChildren.size(); ++i )
|
||||
RELEASEOBJECT ( m_arrRgExtTimeNodeChildren[i] );
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader rHeader;
|
||||
|
||||
if ( rHeader.ReadFromStream(pStream) )
|
||||
m_oTimeNodeAtom.ReadFromStream ( rHeader, pStream );
|
||||
|
||||
UINT lCurLen = m_oTimeNodeAtom.m_oHeader.RecLen + 8;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
switch (ReadHeader.RecType)
|
||||
{
|
||||
case RT_TimePropertyList:
|
||||
{
|
||||
m_pTimePropertyList = new CRecordTimePropertyList4TimeNodeContainer;
|
||||
m_pTimePropertyList->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveTimePropertyList = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeAnimateBehaviorContainer:
|
||||
{
|
||||
m_pTimeAnimateBehavior = new CRecordTimeAnimateBehaviorContainer;
|
||||
m_pTimeAnimateBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveAnimateBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeColorBehaviorContainer:
|
||||
{
|
||||
m_pTimeColorBehavior = new CRecordTimeColorBehaviorContainer;
|
||||
m_pTimeColorBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveColorBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeEffectBehaviorContainer:
|
||||
{
|
||||
m_pTimeEffectBehavior = new CRecordTimeEffectBehaviorContainer();
|
||||
m_pTimeEffectBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveEffectBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeMotionBehaviorContainer:
|
||||
{
|
||||
m_pTimeMotionBehavior = new CRecordTimeMotionBehaviorContainer();
|
||||
m_pTimeMotionBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveMotionBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeRotationBehaviorContainer:
|
||||
{
|
||||
m_pTimeRotationBehavior = new CRecordTimeRotationBehaviorContainer();
|
||||
m_pTimeRotationBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveRotationBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeScaleBehaviorContainer:
|
||||
{
|
||||
m_pTimeScaleBehavior = new CRecordTimeScaleBehaviorContainer();
|
||||
m_pTimeScaleBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveScaleBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSetBehaviorContainer:
|
||||
{
|
||||
m_pTimeSetBehavior = new CRecordTimeSetBehaviorContainer();
|
||||
m_pTimeSetBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveSetBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeCommandBehaviorContainer:
|
||||
{
|
||||
m_pTimeCommandBehavior = new CRecordTimeCommandBehaviorContainer();
|
||||
m_pTimeCommandBehavior->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveCommandBehavior = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeClientVisualElement:
|
||||
{
|
||||
m_pClientVisualElement = new CRecordClientVisualElementContainer();
|
||||
m_pClientVisualElement->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveClientVisualElement = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeIterateData:
|
||||
{
|
||||
m_pTimeIterateDataAtom = new CRecordTimeIterateDataAtom();
|
||||
m_pTimeIterateDataAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveIterateDataAtom = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSequenceData:
|
||||
{
|
||||
m_pTimeSequenceDataAtom = new CRecordTimeSequenceDataAtom();
|
||||
m_pTimeSequenceDataAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveSequenceAtom = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeConditionContainer:
|
||||
{
|
||||
CRecordTimeConditionContainer* pTimeCondition =
|
||||
new CRecordTimeConditionContainer();
|
||||
pTimeCondition->ReadFromStream(ReadHeader, pStream);
|
||||
unsigned short recInst = ReadHeader.RecInstance;
|
||||
|
||||
if (recInst == TL_CT_Begin or recInst == TL_CT_Next)
|
||||
m_arrRgBeginTimeCondition.push_back(pTimeCondition);
|
||||
|
||||
else if (recInst == TL_CT_End or recInst == TL_CT_Previous)
|
||||
m_arrRgEndTimeCondition.push_back(pTimeCondition);
|
||||
else
|
||||
m_pTimeEndSyncTimeCondition = pTimeCondition;
|
||||
|
||||
break; // A lot of records. Look at instance
|
||||
}
|
||||
|
||||
|
||||
case RT_TimeModifier:
|
||||
{
|
||||
CRecordTimeModifierAtom* pModAtom = new CRecordTimeModifierAtom();
|
||||
pModAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgTimeModifierAtom.push_back(pModAtom);
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeSubEffectContainer:
|
||||
{
|
||||
CRecordSubEffectContainer* pSub = new CRecordSubEffectContainer();
|
||||
pSub->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgSubEffect.push_back(pSub);
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeExtTimeNodeContainer:
|
||||
{
|
||||
CRecordExtTimeNodeContainer* pExt = new CRecordExtTimeNodeContainer();
|
||||
pExt->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgExtTimeNodeChildren.push_back(pExt);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
default:
|
||||
throw ;
|
||||
}
|
||||
}
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
inline CRecordTimeModifierAtom* GetModifier (_UINT32 Type)
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrRgTimeModifierAtom.size(); ++i )
|
||||
if (m_arrRgTimeModifierAtom[i]->m_nType == Type)
|
||||
return m_arrRgTimeModifierAtom[i];
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
inline int GetNodeType () const
|
||||
{
|
||||
return m_oTimeNodeAtom.m_dwType;
|
||||
}
|
||||
|
||||
inline unsigned long GetEffectNodeType () const
|
||||
{
|
||||
if (m_pTimePropertyList)
|
||||
return m_pTimePropertyList->GetEffectNodeType ();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordHashCode10Atom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
_UINT32 m_nHash;
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nHash = StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,62 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordLevelInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordLevelInfoAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordLevelInfoAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nLevel = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
|
||||
_UINT32 m_nLevel;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordParaBuildAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nParaBuild = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBuildLevel = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fAnimBackground = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fReverse = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fUserSetAnimBackground = ( 0x03 == ( 0x03 & ((BYTE)Value) ) );
|
||||
m_fAutomatic = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
|
||||
m_nDelayTime = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nParaBuild; // 0 - All paragraphs in the shape animate at the same time.
|
||||
// 1 - Paragraph levels 1 to n – 1 in the shape animate separately.
|
||||
// All paragraph levels n or greater animate at the same time.
|
||||
// 2 - Applies a custom animation paragraph build type to the
|
||||
// paragraphs of the shape.
|
||||
// 3 - The shape and all paragraphs within the shape animate as one
|
||||
// graphical object.
|
||||
_UINT32 m_nBuildLevel;
|
||||
|
||||
bool m_fAnimBackground;
|
||||
bool m_fReverse;
|
||||
bool m_fUserSetAnimBackground;
|
||||
bool m_fAutomatic;
|
||||
|
||||
_UINT32 m_nDelayTime;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,84 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "ParaBuildLevel.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "ParaBuildAtom.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordParaBuildContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordParaBuildContainer()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual ~CRecordParaBuildContainer()
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrRgParaBuildLevel.size(); ++i )
|
||||
RELEASEOBJECT (m_arrRgParaBuildLevel[i]);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & thisHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
SRecordHeader oHeader;
|
||||
// UINT res = 0;
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oParaBuildAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
// TODO may not work
|
||||
_UINT32 levelCount = 1;
|
||||
for (_UINT32 i = 0; i < levelCount; i++) {
|
||||
CRecordParaBuildLevel* pLevel = new CRecordParaBuildLevel();
|
||||
pLevel->ReadFromStream(pStream);
|
||||
levelCount = pLevel->m_oLevelInfoAtom.m_nLevel;
|
||||
}
|
||||
}
|
||||
public:
|
||||
CRecordBuildAtom m_oBuildAtom;
|
||||
CRecordParaBuildAtom m_oParaBuildAtom;
|
||||
|
||||
std::vector <CRecordParaBuildLevel*> m_arrRgParaBuildLevel;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "LevelInfoAtom.h"
|
||||
#include "ExtTimeNodeContainer.h"
|
||||
|
||||
|
||||
class CRecordParaBuildLevel
|
||||
{
|
||||
public:
|
||||
CRecordParaBuildLevel ()
|
||||
{
|
||||
}
|
||||
|
||||
~CRecordParaBuildLevel()
|
||||
{
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( POLE::Stream* pStream )
|
||||
{
|
||||
SRecordHeader oHeader;
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oLevelInfoAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oTimeNode.ReadFromStream ( oHeader, pStream );
|
||||
}
|
||||
|
||||
CRecordLevelInfoAtom m_oLevelInfoAtom;
|
||||
CRecordExtTimeNodeContainer m_oTimeNode; // ExtTimeNodeContainer
|
||||
};
|
||||
@ -0,0 +1,174 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeNodeAtom.h"
|
||||
#include "TimePropertyList4TimeNodeContainer.h"
|
||||
#include "TimeColorBehaviorContainer.h"
|
||||
#include "TimeSetBehaviorContainer.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
#include "TimeConditionContainer.h"
|
||||
|
||||
|
||||
//--------------------------------------------------------------------------------
|
||||
#define SUBEFFECT_CASE(RECORD_TYPE, P_VAR, CLASS_RECORD_NAME, FLAG) \
|
||||
case RECORD_TYPE: { P_VAR = new CLASS_RECORD_NAME(); \
|
||||
P_VAR->ReadFromStream(ReadHeader, pStream); \
|
||||
FLAG = true; \
|
||||
break; } \
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct CRecordSubEffectContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
CRecordSubEffectContainer () :
|
||||
m_pTimePropertyList(nullptr),
|
||||
m_pTimeColorBehavior(nullptr),
|
||||
m_pTimeSetBehavior(nullptr),
|
||||
m_pTimeCommandBehavior(nullptr),
|
||||
m_pClientVisualElement(nullptr),
|
||||
|
||||
m_haveTimePropertyList(false),
|
||||
m_haveColorBehavior(false),
|
||||
m_haveSetBehavior(false),
|
||||
m_haveCommandBehavior(false),
|
||||
m_haveClientVisualElement(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordSubEffectContainer ()
|
||||
{
|
||||
RELEASEOBJECT(m_pTimePropertyList);
|
||||
RELEASEOBJECT(m_pTimeColorBehavior);
|
||||
RELEASEOBJECT(m_pTimeSetBehavior);
|
||||
RELEASEOBJECT(m_pTimeCommandBehavior);
|
||||
RELEASEOBJECT(m_pClientVisualElement);
|
||||
|
||||
for (auto pRecord : m_arrRgBeginTimeCondition)
|
||||
RELEASEOBJECT(pRecord);
|
||||
for (auto pRecord : m_arrRgEndTimeCondition)
|
||||
RELEASEOBJECT(pRecord);
|
||||
for (auto pRecord : m_arrRgTimeModifierAtom)
|
||||
RELEASEOBJECT(pRecord);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream (SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oTimeNodeAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
UINT lCurLen = m_oTimeNodeAtom.m_oHeader.RecLen + 8;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
switch (ReadHeader.RecType)
|
||||
{
|
||||
SUBEFFECT_CASE(RT_TimePropertyList, m_pTimePropertyList,
|
||||
CRecordTimePropertyList4TimeNodeContainer, m_haveTimePropertyList)
|
||||
SUBEFFECT_CASE(RT_TimeColorBehaviorContainer, m_pTimeColorBehavior,
|
||||
CRecordTimeColorBehaviorContainer, m_haveColorBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeSetBehaviorContainer, m_pTimeSetBehavior,
|
||||
CRecordTimeSetBehaviorContainer, m_haveSetBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeCommandBehaviorContainer, m_pTimeCommandBehavior,
|
||||
CRecordTimeCommandBehaviorContainer, m_haveCommandBehavior)
|
||||
SUBEFFECT_CASE(RT_TimeClientVisualElement, m_pClientVisualElement,
|
||||
CRecordClientVisualElementContainer, m_haveClientVisualElement)
|
||||
|
||||
case RT_TimeConditionContainer:
|
||||
{
|
||||
CRecordTimeConditionContainer* pTimeCondition =
|
||||
new CRecordTimeConditionContainer();
|
||||
pTimeCondition->ReadFromStream(ReadHeader, pStream);
|
||||
unsigned short recInst = ReadHeader.RecInstance;
|
||||
|
||||
if (recInst == TL_CT_Begin)
|
||||
m_arrRgBeginTimeCondition.push_back(pTimeCondition);
|
||||
|
||||
else if (recInst == TL_CT_End)
|
||||
m_arrRgEndTimeCondition.push_back(pTimeCondition);
|
||||
else
|
||||
throw ;
|
||||
|
||||
break; // A lot of records. Look at instance
|
||||
}
|
||||
|
||||
case RT_TimeModifier:
|
||||
{
|
||||
CRecordTimeModifierAtom* pModAtom = new CRecordTimeModifierAtom();
|
||||
pModAtom->ReadFromStream(ReadHeader, pStream);
|
||||
m_arrRgTimeModifierAtom.push_back(pModAtom);
|
||||
break;
|
||||
}
|
||||
|
||||
default:
|
||||
throw ;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeNodeAtom m_oTimeNodeAtom;
|
||||
CRecordTimePropertyList4TimeNodeContainer* m_pTimePropertyList; // OPTIONAL
|
||||
CRecordTimeColorBehaviorContainer* m_pTimeColorBehavior; // OPTIONAL
|
||||
CRecordTimeSetBehaviorContainer* m_pTimeSetBehavior; // OPTIONAL
|
||||
CRecordTimeCommandBehaviorContainer* m_pTimeCommandBehavior; // OPTIONAL
|
||||
CRecordClientVisualElementContainer* m_pClientVisualElement; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgBeginTimeCondition; // OPTIONAL
|
||||
std::vector<CRecordTimeConditionContainer*> m_arrRgEndTimeCondition; // OPTIONAL
|
||||
|
||||
std::vector<CRecordTimeModifierAtom*> m_arrRgTimeModifierAtom; // OPTIONAL
|
||||
|
||||
bool m_haveTimePropertyList;
|
||||
bool m_haveColorBehavior;
|
||||
bool m_haveSetBehavior;
|
||||
bool m_haveCommandBehavior;
|
||||
bool m_haveClientVisualElement;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimateBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nCalcMode = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_bToPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_bCalcModePropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_bAnimationValuesPropertyUsed = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
m_bValueTypePropertyUsed = ( 0x20 == ( 0x20 & ((BYTE)Value) ) );
|
||||
|
||||
m_ValueType = (TimeAnimateBehaviorValueTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nCalcMode;
|
||||
|
||||
bool m_bByPropertyUsed;
|
||||
bool m_bFromPropertyUsed;
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bCalcModePropertyUsed;
|
||||
bool m_bAnimationValuesPropertyUsed;
|
||||
bool m_bValueTypePropertyUsed;
|
||||
|
||||
TimeAnimateBehaviorValueTypeEnum m_ValueType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,96 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeAnimateBehaviorAtom.h"
|
||||
#include "TimeStringListContainer.h"
|
||||
#include "TimeAnimationValueListContainer.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimateBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oAnimateBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bAnimationValuesPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oAnimateValueList.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bByPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarBy.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bFromPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarFrom.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( m_oAnimateBehaviorAtom.m_bToPropertyUsed )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarTo.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeAnimateBehaviorAtom m_oAnimateBehaviorAtom;
|
||||
CRecordTimeAnimationValueListContainer m_oAnimateValueList;
|
||||
|
||||
CRecordTimeVariantString m_oVarBy;
|
||||
CRecordTimeVariantString m_oVarFrom;
|
||||
CRecordTimeVariantString m_oVarTo;
|
||||
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeAnimateColor
|
||||
{
|
||||
_UINT32 model; // 0 - RGB, 2 - IndexScheme
|
||||
_UINT32 m_nRed;
|
||||
_UINT32 m_nGreen;
|
||||
_UINT32 m_nBlue;
|
||||
|
||||
inline unsigned long FRGB (BYTE alpha = 0xFF)
|
||||
{
|
||||
return ((m_nBlue << 16) | (m_nGreen << 8) | (m_nRed << 0) | (alpha << 24));
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeAnimateColorBy
|
||||
{
|
||||
_UINT32 model; // 0 - RGB, 1 - HSL, 2 - IndexScheme
|
||||
_UINT32 component0;
|
||||
_UINT32 component1;
|
||||
_UINT32 component2;
|
||||
|
||||
inline unsigned long FRGB (BYTE alpha = 0xFF) //
|
||||
{
|
||||
return ((component2 << 16) | (component1 << 8) | (component0 << 0) | (alpha << 24));
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimationValueAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nTime = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
long m_nTime;
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,77 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeAnimationValueListEntry.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimationValueListContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false )
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
CRecordTimeAnimationEntry Entry;
|
||||
Entry.ReadFromStream ( lCurLen, ReadHeader, pStream );
|
||||
|
||||
m_arrEntry.push_back ( Entry );
|
||||
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
std::vector<CRecordTimeAnimationEntry> m_arrEntry;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeAnimationValueAtom.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeAnimationEntry
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( UINT& CurLen, SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oTimeAnimationValueAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
// UINT res = 0;
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
m_VarValue.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
CurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
{
|
||||
m_VarFormula.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
CurLen += 8 + ReadHeader.RecLen;
|
||||
}
|
||||
|
||||
CRecordTimeAnimationValueAtom m_oTimeAnimationValueAtom;
|
||||
CRecordTimeVariantString m_VarValue;
|
||||
CRecordTimeVariantString m_VarFormula;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,72 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
_UINT32 dwFlags = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bAdditivePropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)dwFlags) ) );
|
||||
m_bAttributeNamesPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)dwFlags) ) );
|
||||
|
||||
m_nBehaviorAdditive = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBehaviorAccumulate = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nBehaviorTransform = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bAdditivePropertyUsed;
|
||||
bool m_bAttributeNamesPropertyUsed;
|
||||
|
||||
_UINT32 m_nBehaviorAdditive;
|
||||
_UINT32 m_nBehaviorAccumulate;
|
||||
_UINT32 m_nBehaviorTransform;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,128 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/RecordType.h"
|
||||
#include "TimeBehaviorAtom.h"
|
||||
#include "TimeStringListContainer.h"
|
||||
#include "TimePropertyList4TimeBehavior.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeBehaviorContainer () :
|
||||
m_pStringList(nullptr),
|
||||
m_pPropertyList(nullptr),
|
||||
|
||||
m_haveStringList(false),
|
||||
m_havePropertyList(false)
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordTimeBehaviorContainer ()
|
||||
{
|
||||
RELEASEOBJECT (m_pStringList);
|
||||
RELEASEOBJECT (m_pPropertyList);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if (ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
RecordType nRecord = ReadHeader.RecType;
|
||||
|
||||
switch (nRecord)
|
||||
{
|
||||
case RT_TimeVariantList:
|
||||
{
|
||||
m_pStringList = new CRecordTimeStringListContainer();
|
||||
m_pStringList->ReadFromStream(ReadHeader, pStream);
|
||||
m_haveStringList = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimePropertyList:
|
||||
{
|
||||
m_pPropertyList = new CRecordTimePropertyList4TimeBehavior();
|
||||
m_pPropertyList->ReadFromStream(ReadHeader, pStream);
|
||||
m_havePropertyList = true;
|
||||
break;
|
||||
}
|
||||
|
||||
case RT_TimeClientVisualElement:
|
||||
{
|
||||
m_oClientVisualElement.ReadFromStream( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
default:
|
||||
throw ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline _UINT32 GetObjectID ()
|
||||
{
|
||||
return m_oClientVisualElement.m_oVisualShapeAtom.m_nObjectIdRef;
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeBehaviorAtom m_oBehaviorAtom;
|
||||
CRecordTimeStringListContainer* m_pStringList; // OPTIONAL
|
||||
CRecordTimePropertyList4TimeBehavior* m_pPropertyList; // OPTIONAL
|
||||
CRecordClientVisualElementContainer m_oClientVisualElement;
|
||||
|
||||
bool m_haveStringList;
|
||||
bool m_havePropertyList;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeAnimateColor.h"
|
||||
#include "TimeAnimateColorBy.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeColorBehaviorAtom: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 flag = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)flag) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)flag) ) );
|
||||
m_fToPropertyUsed = ( 0x03 == ( 0x03 & ((BYTE)flag) ) );
|
||||
m_fColorSpacePropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)flag) ) );
|
||||
m_fDirectionPropertyUsed = ( 0x05 == ( 0x05 & ((BYTE)flag) ) );
|
||||
|
||||
pStream->read ((unsigned char*) &m_sColorBy , sizeof ( TimeAnimateColorBy ) );
|
||||
pStream->read ((unsigned char*) &m_sColorFrom , sizeof ( TimeAnimateColor ) );
|
||||
pStream->read ((unsigned char*) &m_sColorTo , sizeof ( TimeAnimateColor ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fColorSpacePropertyUsed;
|
||||
bool m_fDirectionPropertyUsed;
|
||||
|
||||
TimeAnimateColorBy m_sColorBy;
|
||||
TimeAnimateColor m_sColorFrom;
|
||||
TimeAnimateColor m_sColorTo;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeColorBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeColorBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
m_oColorBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if (ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream (ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeColorBehaviorAtom m_oColorBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeCommandBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeCommandBehaviorAtom ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordTimeCommandBehaviorAtom()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &oHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
BYTE flags = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
m_fTypePropertyUsed = ( 0x01 == ( 0x01 & (flags) ) );
|
||||
m_fCommandPropertyUsed = ( 0x02 == ( 0x02 & (flags) ) );
|
||||
|
||||
StreamUtils::StreamSkip(28, pStream);
|
||||
|
||||
m_eCommandBehaviorType = (TimeCommandBehaviorTypeEnum)
|
||||
StreamUtils::ReadLONG(pStream);
|
||||
|
||||
}
|
||||
public:
|
||||
bool m_fTypePropertyUsed;
|
||||
bool m_fCommandPropertyUsed;
|
||||
TimeCommandBehaviorTypeEnum m_eCommandBehaviorType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeCommandBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeCommandBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
CRecordTimeCommandBehaviorContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~CRecordTimeCommandBehaviorContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
void ReadFromStream(SRecordHeader &thisHeader, POLE::Stream *pStream) override
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
SRecordHeader oHeader;
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oCommandBehaviorAtom.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oVarCommand.ReadFromStream ( oHeader, pStream );
|
||||
|
||||
if (oHeader.ReadFromStream(pStream))
|
||||
m_oBevavior.ReadFromStream ( oHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeCommandBehaviorAtom m_oCommandBehaviorAtom;
|
||||
CRecordTimeVariantString m_oVarCommand;
|
||||
CRecordTimeBehaviorContainer m_oBevavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeConditionAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_TriggerObject = ( TriggerObjectEnum )StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_nTriggerEvent = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nID = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nTimeDelay = StreamUtils::ReadLONG ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TriggerObjectEnum m_TriggerObject;
|
||||
_UINT32 m_nTriggerEvent;
|
||||
_UINT32 m_nID;
|
||||
LONG m_nTimeDelay;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeConditionAtom.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeConditionContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader header;
|
||||
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oTimeConditionAtom.ReadFromStream ( header, pStream );
|
||||
|
||||
if ( TL_TOT_VisualElement == m_oTimeConditionAtom.m_TriggerObject )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oVisualElement.ReadFromStream ( header, pStream );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeConditionAtom m_oTimeConditionAtom;
|
||||
CRecordClientVisualElementContainer m_oVisualElement;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeEffectBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
_UINT32 dwFlags = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bTransitionPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)dwFlags) ) );
|
||||
m_bTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)dwFlags) ) );
|
||||
m_bProgressPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)dwFlags) ) );
|
||||
m_bRuntimeContextObsolete = ( 0x08 == ( 0x08 & ((BYTE)dwFlags) ) );
|
||||
|
||||
m_nEffectTransition = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
bool m_bTransitionPropertyUsed;
|
||||
bool m_bTypePropertyUsed;
|
||||
bool m_bProgressPropertyUsed;
|
||||
bool m_bRuntimeContextObsolete;
|
||||
|
||||
_UINT32 m_nEffectTransition;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,103 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeEffectBehaviorAtom.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeEffectBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
SRecordHeader header;
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_effectBehaviorAtom.ReadFromStream ( header, pStream );
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bTypePropertyUsed )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarType.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bProgressPropertyUsed )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarProgres.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( m_effectBehaviorAtom.m_bRuntimeContextObsolete )
|
||||
{
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
m_oVarRuntimeContext.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
if (header.RecType == 0xF12A)
|
||||
{
|
||||
m_oBehavior.ReadFromStream (header, pStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
StreamUtils::StreamSkip (header.RecLen, pStream);
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oBehavior.ReadFromStream ( header, pStream );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeEffectBehaviorAtom m_effectBehaviorAtom;
|
||||
|
||||
CRecordTimeVariantString m_oVarType;
|
||||
CRecordTimeVariantFloat m_oVarProgres;
|
||||
CRecordTimeVariantString m_oVarRuntimeContext;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
class CRecordTimeIterateDataAtom: public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nIterateInterval = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateType = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateDirection = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nIterateIntervalType = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fIterateDirectionPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fIterateTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fIterateIntervalPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_fIterateIntervalTypePropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nIterateInterval;
|
||||
_UINT32 m_nIterateType;
|
||||
_UINT32 m_nIterateDirection;
|
||||
_UINT32 m_nIterateIntervalType;
|
||||
|
||||
bool m_fIterateDirectionPropertyUsed;
|
||||
bool m_fIterateTypePropertyUsed;
|
||||
bool m_fIterateIntervalPropertyUsed;
|
||||
bool m_fIterateIntervalTypePropertyUsed;
|
||||
};
|
||||
@ -0,0 +1,61 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeModifierAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_nType = StreamUtils::ReadDWORD(pStream);
|
||||
m_Value = StreamUtils::ReadFLOAT(pStream);
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
unsigned long m_nType; // 0x00000000 Repeat count.
|
||||
// 0x00000001 Repeat duration.
|
||||
// 0x00000002 Speed.
|
||||
// 0x00000003 Accelerate.
|
||||
// 0x00000004 Decelerate.
|
||||
float m_Value;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeMotionBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_bToPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
m_bOriginPropertyUsed = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_bPathPropertyUsed = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
|
||||
m_bEditRotationPropertyUsed = ( 0x40 == ( 0x40 & ((BYTE)Value) ) );
|
||||
m_bPointsTypesPropertyUsed = ( 0x80 == ( 0x80 & ((BYTE)Value) ) );
|
||||
|
||||
m_nXBY = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYBY = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nXFROM = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYFROM = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nXTO = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nYTO = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_nBehaviorOrigin = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bByPropertyUsed;
|
||||
bool m_bFromPropertyUsed;
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bOriginPropertyUsed;
|
||||
bool m_bPathPropertyUsed;
|
||||
bool m_bEditRotationPropertyUsed;
|
||||
bool m_bPointsTypesPropertyUsed;
|
||||
|
||||
FLOAT m_nXBY;
|
||||
FLOAT m_nYBY;
|
||||
FLOAT m_nXFROM;
|
||||
FLOAT m_nYFROM;
|
||||
FLOAT m_nXTO;
|
||||
FLOAT m_nYTO;
|
||||
_UINT32 m_nBehaviorOrigin;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,93 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeMotionBehaviorAtom.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeMotionBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
//UINT res = 0;
|
||||
|
||||
SRecordHeader header;
|
||||
if ( header.ReadFromStream(pStream) )
|
||||
{
|
||||
m_oMotionBehaviorAtom.ReadFromStream ( header, pStream );
|
||||
}
|
||||
|
||||
UINT lCurLen = m_oMotionBehaviorAtom.m_oHeader.RecLen + 8;
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
header.ReadFromStream(pStream);
|
||||
switch (header.RecType) {
|
||||
case RT_TimeVariant:
|
||||
{
|
||||
if (header.RecLen > 5 ) {
|
||||
m_pVarPath = new CRecordTimeVariantString();
|
||||
m_pVarPath->ReadFromStream(header, pStream);
|
||||
}else if (header.RecLen == 5){
|
||||
StreamUtils::StreamSkip(5, pStream);
|
||||
} else
|
||||
StreamUtils::StreamSkip(header.RecLen, pStream);
|
||||
}
|
||||
|
||||
case RT_TimeBehaviorContainer:
|
||||
{
|
||||
m_oTimeBehavior.ReadFromStream(header, pStream);
|
||||
}
|
||||
default:
|
||||
throw ;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeMotionBehaviorAtom m_oMotionBehaviorAtom;
|
||||
CRecordTimeVariantString* m_pVarPath; // OPTIONAL
|
||||
// reserved (13 bytes): An optional TimeVariantInt record that MUST be ignored.
|
||||
CRecordTimeBehaviorContainer m_oTimeBehavior;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,98 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeNodeAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition(lPos, pStream);
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
// 0x00000000 Does not restart.
|
||||
// 0x00000001 Can restart at any time.
|
||||
// 0x00000002 Can restart when the corresponding time node is not active.
|
||||
// 0x00000003 Same as 0x00000000.
|
||||
m_dwRestart = StreamUtils::ReadDWORD ( pStream );
|
||||
// 0x00000000 specifies that this time node is a parallel time node,
|
||||
// which allows all of its child nodes to start at the same time.
|
||||
m_dwType = (TimeNodeTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
// 0x00000000 The properties remain at their ending values while the parent time node is still running or holding. After which, the properties reset to their original values.
|
||||
// 0x00000001 The properties reset to their original values after the time node becomes inactive.
|
||||
// 0x00000002 The properties remain at their ending values while the parent time node is still running or holding, or until another sibling time node is started under a sequential time node as specified in the type field. After which, the properties reset to their original values.
|
||||
// 0x00000003 Same as 0x00000000.
|
||||
// 0x00000004 Same as 0x00000001.
|
||||
m_dwFill = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
// duration: 0xFFFFFFFF specifies that the duration of the time node is infinite,
|
||||
// and that its actual duration is determined by the durations of its child nodes.
|
||||
m_nDuration = StreamUtils::ReadLONG ( pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fFillProperty = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fRestartProperty = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
|
||||
m_fGroupingTypeProperty = ( 0x08 == ( 0x08 & ((BYTE)Value) ) );
|
||||
m_fDurationProperty = ( 0x10 == ( 0x10 & ((BYTE)Value) ) );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_dwRestart;
|
||||
TimeNodeTypeEnum m_dwType;
|
||||
_UINT32 m_dwFill;
|
||||
long m_nDuration;
|
||||
|
||||
bool m_fFillProperty;
|
||||
bool m_fRestartProperty;
|
||||
bool m_fGroupingTypeProperty;
|
||||
bool m_fDurationProperty;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TimeNodeTimeFilter : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,87 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant4Behavior.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimePropertyList4TimeBehavior : public CRecordsContainer
|
||||
{
|
||||
public:
|
||||
//static const _UINT32 RT_TimePropertyList = 0xF13D; // Specifies a TimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
|
||||
CRecordTimePropertyList4TimeBehavior ()
|
||||
{
|
||||
}
|
||||
|
||||
virtual ~CRecordTimePropertyList4TimeBehavior ()
|
||||
{
|
||||
CRecordsContainer::Clear();
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & thisHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = thisHeader;
|
||||
|
||||
UINT lCurLen = 0;
|
||||
SRecordHeader oHeader;
|
||||
|
||||
while (lCurLen < m_oHeader.RecLen)
|
||||
{
|
||||
if (oHeader.ReadFromStream(pStream) == FALSE)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
if (oHeader.ReadFromStream(pStream)) {
|
||||
lCurLen += 8 + oHeader.RecLen;
|
||||
IRecord* pRecord = FactoryTimeVariant4Behavior::createByInstanse(oHeader.RecInstance);
|
||||
if (pRecord)
|
||||
{
|
||||
pRecord->ReadFromStream(oHeader, pStream);
|
||||
m_arRecords.push_back(pRecord);
|
||||
}
|
||||
else
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
// Empty
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,174 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimePropertyList4TimeNodeContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
//static const _UINT32 RT_TimePropertyList = 0xF13D; // Specifies a CRecordTimePropertyList4TimeNodeContainer or TimePropertyList4TimeBehavior.
|
||||
|
||||
CRecordTimePropertyList4TimeNodeContainer ()
|
||||
{
|
||||
m_bEmtyNode = false;
|
||||
m_oEffectNodeType.m_Value = 0;
|
||||
}
|
||||
|
||||
virtual ~CRecordTimePropertyList4TimeNodeContainer ()
|
||||
{
|
||||
ClearNodes ();
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( 0 == m_oHeader.RecLen )
|
||||
m_bEmtyNode = true;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if (ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
CRecordTimeVariant* pRecord = NULL;
|
||||
|
||||
TimePropertyID4TimeNode VariableType = ( TimePropertyID4TimeNode ) ReadHeader.RecInstance;
|
||||
|
||||
switch ( VariableType )
|
||||
{
|
||||
case TL_TPID_Display: pRecord = new CRecordTimeDisplayType (); break;
|
||||
case TL_TPID_MasterPos: pRecord = new CRecordTimeMasterRelType (); break;
|
||||
case TL_TPID_SubType: pRecord = new CRecordTimeSubType (); break;
|
||||
case TL_TPID_EffectID: pRecord = new CRecordTimeEffectID (); break;
|
||||
case TL_TPID_EffectDir: pRecord = new CRecordTimeEffectDir (); break;
|
||||
case TL_TPID_EffectType: pRecord = new CRecordTimeEffectType (); break;
|
||||
case TL_TPID_AfterEffect: pRecord = new CRecordTimeAfterEffect (); break;
|
||||
case TL_TPID_SlideCount: pRecord = new CRecordTimeSlideCount (); break;
|
||||
case TL_TPID_TimeFilter: pRecord = new CRecordTimeNodeTimeFilter (); break;
|
||||
case TL_TPID_EventFilter: pRecord = new CRecordTimeEventFilter (); break;
|
||||
case TL_TPID_HideWhenStopped: pRecord = new CRecordTimeHideWhenStopped (); break;
|
||||
case TL_TPID_GroupID: pRecord = new CRecordTimeGroupID (); break;
|
||||
case TL_TPID_EffectNodeType: pRecord = new CRecordTimeEffectNodeType (); break;
|
||||
case TL_TPID_PlaceholderNode: pRecord = new CRecordTimePlaceholderNode (); break;
|
||||
case TL_TPID_MediaVolume: pRecord = new CRecordTimeMediaVolume (); break;
|
||||
case TL_TPID_MediaMute: pRecord = new CRecordTimeMediaMute (); break;
|
||||
case TL_TPID_ZoomToFullScreen: pRecord = new CRecordTimeZoomToFullScreen (); break;
|
||||
default :
|
||||
break;
|
||||
}
|
||||
|
||||
pRecord->ReadFromStream ( ReadHeader, pStream );
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
if ( TL_TPID_EffectID == VariableType )
|
||||
{
|
||||
m_oEffectID = *(static_cast<CRecordTimeEffectID*> ( pRecord ) );
|
||||
// RELEASEOBJECT ( pRecord );
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
else if ( TL_TPID_EffectType == VariableType )
|
||||
{
|
||||
m_oEffectType = *(static_cast<CRecordTimeEffectType*> ( pRecord ) );
|
||||
// RELEASEOBJECT ( pRecord );
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
else if ( TL_TPID_EffectDir == VariableType )
|
||||
{
|
||||
m_oEffectDir = *(static_cast<CRecordTimeEffectDir*> ( pRecord ) );
|
||||
//RELEASEOBJECT ( pRecord );
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
else if ( TL_TPID_EffectNodeType == VariableType )
|
||||
{
|
||||
m_oEffectNodeType = *(static_cast<CRecordTimeEffectNodeType*> ( pRecord ) );
|
||||
//RELEASEOBJECT ( pRecord );
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_arrElements.push_back ( pRecord );
|
||||
}
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
inline bool IsEmpty ()
|
||||
{
|
||||
return m_bEmtyNode;
|
||||
}
|
||||
|
||||
void ClearNodes ()
|
||||
{
|
||||
for ( size_t i = 0; i < m_arrElements.size(); ++i )
|
||||
{
|
||||
RELEASEOBJECT ( m_arrElements[i] );
|
||||
}
|
||||
m_arrElements.clear ();
|
||||
}
|
||||
|
||||
// helper
|
||||
|
||||
inline const _UINT32& GetEffectNodeType () const
|
||||
{
|
||||
return m_oEffectNodeType.m_Value;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bEmtyNode;
|
||||
|
||||
std::vector <CRecordTimeVariant*> m_arrElements;
|
||||
|
||||
//
|
||||
CRecordTimeEffectNodeType m_oEffectNodeType;
|
||||
CRecordTimeEffectID m_oEffectID;
|
||||
CRecordTimeEffectType m_oEffectType;
|
||||
CRecordTimeEffectDir m_oEffectDir;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,71 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeRotationBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 src = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)src) ) );
|
||||
m_fToPropertyUsed = ( 0x03 == ( 0x03 & ((BYTE)src) ) );
|
||||
m_fDirectionPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)src) ) );
|
||||
|
||||
m_By = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_From = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_To = StreamUtils::ReadFLOAT ( pStream );
|
||||
|
||||
m_nRotationDirection = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fDirectionPropertyUsed;
|
||||
float m_By;
|
||||
float m_From;
|
||||
float m_To;
|
||||
_UINT32 m_nRotationDirection; // 0 - rotate clockwise, 1 - rotate counter clockwise
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,66 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeRotationBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeRotationBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oRotationBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeRotationBehaviorAtom m_oRotationBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeScaleBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 src = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fByPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
m_fFromPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)src) ) );
|
||||
m_fToPropertyUsed = ( 0x03 == ( 0x03 & ((BYTE)src) ) );
|
||||
m_fZoomContentsUsed = ( 0x04 == ( 0x04 & ((BYTE)src) ) );
|
||||
|
||||
m_XBy = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YBy = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_XFrom = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YFrom = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_XTo = StreamUtils::ReadFLOAT ( pStream );
|
||||
m_YTo = StreamUtils::ReadFLOAT ( pStream );
|
||||
|
||||
src = StreamUtils::ReadDWORD ( pStream );
|
||||
m_fZoomContents = ( 0x01 == ( 0x01 & ((BYTE)src) ) );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_fByPropertyUsed;
|
||||
bool m_fFromPropertyUsed;
|
||||
bool m_fToPropertyUsed;
|
||||
bool m_fZoomContentsUsed;
|
||||
float m_XBy;
|
||||
float m_YBy;
|
||||
float m_XFrom;
|
||||
float m_YFrom;
|
||||
float m_XTo;
|
||||
float m_YTo;
|
||||
bool m_fZoomContents;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeScaleBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeScaleBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oScaleBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordTimeScaleBehaviorAtom m_oScaleBehaviorAtom;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeSequenceDataAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
// LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
m_nConcurrency = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nNextAction = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nPreviousAction = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
StreamUtils::StreamSkip ( sizeof ( _UINT32 ), pStream );
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_fConcurrencyPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_fNextActionPropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
m_fPreviousActionPropertyUsed = ( 0x04 == ( 0x04 & ((BYTE)Value) ) );
|
||||
|
||||
// StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
_UINT32 m_nConcurrency;
|
||||
_UINT32 m_nNextAction;
|
||||
_UINT32 m_nPreviousAction;
|
||||
|
||||
bool m_fConcurrencyPropertyUsed;
|
||||
bool m_fNextActionPropertyUsed;
|
||||
bool m_fPreviousActionPropertyUsed;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeSetBehaviorAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
_UINT32 Value = StreamUtils::ReadDWORD ( pStream );
|
||||
|
||||
m_bToPropertyUsed = ( 0x01 == ( 0x01 & ((BYTE)Value) ) );
|
||||
m_bValueTypePropertyUsed = ( 0x02 == ( 0x02 & ((BYTE)Value) ) );
|
||||
|
||||
m_eValueType = (TimeAnimateBehaviorValueTypeEnum)StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
bool m_bToPropertyUsed;
|
||||
bool m_bValueTypePropertyUsed;
|
||||
|
||||
TimeAnimateBehaviorValueTypeEnum m_eValueType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,76 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeSetBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
#include "TimeVariant.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeSetBehaviorContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0; StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
//UINT res = 0;
|
||||
SRecordHeader ReadHeader;
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oSetBehaviorAtom.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
//if ( m_oSetBehaviorAtom.m_bToPropertyUsed )
|
||||
//{
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oVarTo.ReadFromStream ( ReadHeader, pStream );
|
||||
//}
|
||||
|
||||
if ( ReadHeader.ReadFromStream(pStream) )
|
||||
m_oBehavior.ReadFromStream ( ReadHeader, pStream );
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
CRecordTimeSetBehaviorAtom m_oSetBehaviorAtom;
|
||||
CRecordTimeVariantString m_oVarTo;
|
||||
CRecordTimeBehaviorContainer m_oBehavior;
|
||||
};
|
||||
|
||||
}
|
||||
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "TimeVariant.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordTimeStringListContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
UINT lCurLen = 0;
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if (ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
CRecordTimeVariantString Element;
|
||||
Element.ReadFromStream ( ReadHeader, pStream );
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
|
||||
m_arrRgChildRec.push_back ( Element );
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
std::vector <CRecordTimeVariantString> m_arrRgChildRec;
|
||||
};
|
||||
|
||||
}
|
||||
262
ASCOfficePPTFile/PPTFormatLib/Records/Animations/TimeVariant.h
Normal file
262
ASCOfficePPTFile/PPTFormatLib/Records/Animations/TimeVariant.h
Normal file
@ -0,0 +1,262 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
class CRecordTimeVariant : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = ( TimeVariantTypeEnum )StreamUtils::ReadBYTE ( pStream ); //
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
TimeVariantTypeEnum m_Type;
|
||||
};
|
||||
|
||||
|
||||
class CRecordTimeVariantBool : public CRecordTimeVariant
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = ( TimeVariantTypeEnum )StreamUtils::ReadBYTE ( pStream ); // MUST be TL_TVT_Bool
|
||||
m_Value = ( 0x1 == StreamUtils::ReadBYTE ( pStream ) );
|
||||
}
|
||||
|
||||
public:
|
||||
TimeVariantTypeEnum m_Type;
|
||||
bool m_Value;
|
||||
};
|
||||
|
||||
class CRecordTimeVariantInt : public CRecordTimeVariant
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = ( TimeVariantTypeEnum )StreamUtils::ReadBYTE ( pStream ); // MUST be TL_TVT_Bool
|
||||
m_Value = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TimeVariantTypeEnum m_Type;
|
||||
_UINT32 m_Value;
|
||||
};
|
||||
|
||||
class CRecordTimeVariantFloat : public CRecordTimeVariant
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = ( TimeVariantTypeEnum )StreamUtils::ReadBYTE ( pStream ); // MUST be TL_TVT_Bool
|
||||
m_Value = StreamUtils::ReadFLOAT ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TimeVariantTypeEnum m_Type;
|
||||
FLOAT m_Value;
|
||||
};
|
||||
|
||||
class CRecordTimeVariantString : public CRecordTimeVariant
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = ( TimeVariantTypeEnum )StreamUtils::ReadBYTE ( pStream ); // MUST be TL_TVT_String
|
||||
|
||||
if ( WCHAR* pString = new WCHAR [ m_oHeader.RecLen / 2 ] )
|
||||
{
|
||||
POLE::uint64 res = pStream->read ((unsigned char*) pString, ( m_oHeader.RecLen / 2 ) * 2) ;
|
||||
|
||||
if (res > 0)
|
||||
{
|
||||
if (sizeof(wchar_t) == 4)
|
||||
{
|
||||
//todoooo
|
||||
}
|
||||
else
|
||||
m_stringValue = std::wstring ( pString );
|
||||
}
|
||||
|
||||
RELEASEARRAYOBJECTS ( pString );
|
||||
}
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TimeVariantTypeEnum m_Type;
|
||||
std::wstring m_stringValue;
|
||||
};
|
||||
|
||||
|
||||
|
||||
class CRecordTimeDisplayType : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeMasterRelType : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeSubType : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeEffectID : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeEffectDir : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeEffectType : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeAfterEffect : public CRecordTimeVariantBool
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeSlideCount : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeNodeTimeFilter : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeEventFilter : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeHideWhenStopped : public CRecordTimeVariantBool
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeGroupID : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeEffectNodeType : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimePlaceholderNode : public CRecordTimeVariantBool
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeMediaVolume : public CRecordTimeVariantFloat
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeMediaMute : public CRecordTimeVariantBool
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeZoomToFullScreen : public CRecordTimeVariantBool
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
|
||||
class CRecordTimeRuntimeContext : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordColorModel : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeColorModel: public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeColorDirection : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimeOverride : public CRecordTimeVariantInt
|
||||
{
|
||||
|
||||
};
|
||||
|
||||
class CRecordTimePointsTypes : public CRecordTimeVariantString
|
||||
{
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,73 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Enums/_includer.h"
|
||||
#include "TimeVariant.h"
|
||||
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
#define CREATE_BY_Instanse(RECORD_Instanse, CLASS_RECORD_NAME) \
|
||||
case RECORD_Instanse: { pRecord = new CLASS_RECORD_NAME(); break; } \
|
||||
//-------------------------------------------------------------------------------
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
//TODO
|
||||
class FactoryTimeVariant4Behavior
|
||||
{
|
||||
public:
|
||||
static IRecord* createByInstanse(unsigned short recInstance)
|
||||
{
|
||||
IRecord* pRecord = nullptr;
|
||||
|
||||
switch (recInstance)
|
||||
{
|
||||
CREATE_BY_Instanse(TL_TBPID_UnknownPropertyList, CRecordTimeVariantString)
|
||||
CREATE_BY_Instanse(TL_TBPID_RuntimeContext, CRecordTimeRuntimeContext)
|
||||
CREATE_BY_Instanse(TL_TBPID_MotionPathEditRelative, CRecordTimeVariantBool)
|
||||
CREATE_BY_Instanse(TL_TBPID_ColorColorModel, CRecordTimeColorModel)
|
||||
CREATE_BY_Instanse(TL_TBPID_ColorDirection, CRecordTimeColorDirection)
|
||||
CREATE_BY_Instanse(TL_TBPID_Override, CRecordTimeOverride)
|
||||
CREATE_BY_Instanse(TL_TBPID_PathEditRotationAngle, CRecordTimeVariantFloat)
|
||||
CREATE_BY_Instanse(TL_TBPID_PathEditRotationX, CRecordTimeVariantFloat)
|
||||
CREATE_BY_Instanse(TL_TBPID_PathEditRotationY, CRecordTimeVariantFloat)
|
||||
CREATE_BY_Instanse(TL_TBPID_PointsTypes, CRecordTimePointsTypes)
|
||||
}
|
||||
|
||||
return pRecord;
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordVisualPageAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_eType = (TimeVisualElementEnum) StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
|
||||
public:
|
||||
|
||||
TimeVisualElementEnum m_eType;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,65 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordVisualShapeAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
// Привязка анимации через этот объект к ID объекту
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_Type = (TimeVisualElementEnum) StreamUtils::ReadDWORD ( pStream );
|
||||
m_RefType = (ElementTypeEnum) StreamUtils::ReadDWORD ( pStream );
|
||||
m_nObjectIdRef = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nData1 = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nData2 = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TimeVisualElementEnum m_Type;
|
||||
ElementTypeEnum m_RefType;
|
||||
_UINT32 m_nObjectIdRef; // ShapeIdRef || SoundIdRef
|
||||
_UINT32 m_nData1;
|
||||
_UINT32 m_nData2;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,63 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordVisualShapeChartElementAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_eType = (TimeVisualElementEnum)StreamUtils::ReadDWORD(pStream);
|
||||
m_eRefType = (ElementTypeEnum)StreamUtils::ReadDWORD(pStream);
|
||||
|
||||
m_nShapeIdRef = StreamUtils::ReadDWORD(pStream);
|
||||
m_nData1 = StreamUtils::ReadDWORD(pStream);
|
||||
m_nData2 = StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
|
||||
public:
|
||||
TimeVisualElementEnum m_eType;
|
||||
ElementTypeEnum m_eRefType;
|
||||
|
||||
_UINT32 m_nShapeIdRef;
|
||||
_UINT32 m_nData1;
|
||||
_INT32 m_nData2;
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,64 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordVisualShapeGeneralAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
m_eType = (TimeVisualElementEnum)StreamUtils::ReadDWORD(pStream);
|
||||
m_eRefType = (ElementTypeEnum)StreamUtils::ReadDWORD(pStream);
|
||||
|
||||
m_nShapeIdRef = StreamUtils::ReadDWORD(pStream);
|
||||
m_nData1 = StreamUtils::ReadDWORD(pStream);
|
||||
m_nData2 = StreamUtils::ReadDWORD(pStream);
|
||||
}
|
||||
|
||||
public:
|
||||
TimeVisualElementEnum m_eType;
|
||||
ElementTypeEnum m_eRefType;
|
||||
|
||||
_UINT32 m_nShapeIdRef;
|
||||
_INT32 m_nData1;
|
||||
_INT32 m_nData2;
|
||||
|
||||
};
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "../Reader/Records.h"
|
||||
#include "../../Enums/_includer.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordVisualSoundAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
// Привязка звука через этот объект к ID объекту
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_eType = (TimeVisualElementEnum) StreamUtils::ReadDWORD ( pStream );
|
||||
m_eRefType = (ElementTypeEnum) StreamUtils::ReadDWORD ( pStream );
|
||||
m_nSoundIdRef = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nData1 = StreamUtils::ReadDWORD ( pStream );
|
||||
m_nData2 = StreamUtils::ReadDWORD ( pStream );
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
TimeVisualElementEnum m_eType;
|
||||
ElementTypeEnum m_eRefType;
|
||||
_UINT32 m_nSoundIdRef;
|
||||
|
||||
// MUST be 0xFFFFFFFF, and MUST be ignored.
|
||||
_UINT32 m_nData1;
|
||||
_UINT32 m_nData2;
|
||||
};
|
||||
}
|
||||
90
ASCOfficePPTFile/PPTFormatLib/Records/Animations/_includer.h
Normal file
90
ASCOfficePPTFile/PPTFormatLib/Records/Animations/_includer.h
Normal file
@ -0,0 +1,90 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "AnimationInfoAtom.h"
|
||||
#include "AnimationInfoContainer.h"
|
||||
#include "BuildAtom.h"
|
||||
#include "BuildListContainer.h"
|
||||
#include "ChartBuildAtom.h"
|
||||
#include "ChartBuildContainer.h"
|
||||
#include "ClientVisualElementContainer.h"
|
||||
#include "DiagramBuildAtom.h"
|
||||
#include "DiagramBuildContainer.h"
|
||||
#include "ExtTimeNodeContainer.h"
|
||||
#include "HashCode10Atom.h"
|
||||
#include "LevelInfoAtom.h"
|
||||
#include "ParaBuildAtom.h"
|
||||
#include "ParaBuildContainer.h"
|
||||
#include "ParaBuildLevel.h"
|
||||
#include "SubEffectContainer.h"
|
||||
#include "TimeAnimateBehaviorAtom.h"
|
||||
#include "TimeAnimateBehaviorContainer.h"
|
||||
#include "TimeAnimateColorBy.h"
|
||||
#include "TimeAnimateColor.h"
|
||||
#include "TimeAnimationValueAtom.h"
|
||||
#include "TimeAnimationValueListContainer.h"
|
||||
#include "TimeAnimationValueListEntry.h"
|
||||
#include "TimeBehaviorAtom.h"
|
||||
#include "TimeBehaviorContainer.h"
|
||||
#include "TimeColorBehaviorAtom.h"
|
||||
#include "TimeColorBehaviorContainer.h"
|
||||
#include "TimeCommandBehaviorAtom.h"
|
||||
#include "TimeCommandBehaviorContainer.h"
|
||||
#include "TimeConditionAtom.h"
|
||||
#include "TimeConditionContainer.h"
|
||||
#include "TimeEffectBehaviorAtom.h"
|
||||
#include "TimeEffectBehaviorContainer.h"
|
||||
#include "TimeIterateDataAtom.h"
|
||||
#include "TimeModifierAtom.h"
|
||||
#include "TimeMotionBehaviorAtom.h"
|
||||
#include "TimeMotionBehaviorContainer.h"
|
||||
#include "TimeNodeAtom.h"
|
||||
#include "TimePropertyList4TimeBehavior.h"
|
||||
#include "TimePropertyList4TimeNodeContainer.h"
|
||||
#include "TimeRotationBehaviorAtom.h"
|
||||
#include "TimeRotationBehaviorContainer.h"
|
||||
#include "TimeScaleBehaviorAtom.h"
|
||||
#include "TimeScaleBehaviorContainer.h"
|
||||
#include "TimeSequenceDataAtom.h"
|
||||
#include "TimeSetBehaviorAtom.h"
|
||||
#include "TimeSetBehaviorContainer.h"
|
||||
#include "TimeStringListContainer.h"
|
||||
#include "TimeVariant4Behavior.h"
|
||||
#include "TimeVariant4TimeNode.h"
|
||||
#include "TimeVariant.h"
|
||||
#include "VisualPageAtom.h"
|
||||
#include "VisualShapeAtom.h"
|
||||
#include "VisualShapeChartElementAtom.h"
|
||||
#include "VisualShapeGeneralAtom.h"
|
||||
#include "VisualSoundAtom.h"
|
||||
@ -39,6 +39,9 @@
|
||||
#include "DocumentRecords.h"
|
||||
#include "DocumentTextInfo.h"
|
||||
|
||||
//Animation
|
||||
#include "Animations/_includer.h"
|
||||
|
||||
// drawing records
|
||||
#include "Drawing/ChildAnchor.h"
|
||||
#include "Drawing/BlipStoreContainer.h"
|
||||
@ -54,16 +57,12 @@
|
||||
#include "Drawing/DrawingContainer.h"
|
||||
|
||||
// others
|
||||
#include "AnimationInfoAtom.h"
|
||||
#include "AnimationInfoContainer.h"
|
||||
|
||||
#include "BlipEntityAtom.h"
|
||||
#include "BookmarkEntityAtom.h"
|
||||
#include "BookmarkSeedAtom.h"
|
||||
#include "ChartBuildAtom.h"
|
||||
#include "CString.h"
|
||||
#include "ColorSchemeAtom.h"
|
||||
#include "DiagramBuildAtom.h"
|
||||
#include "DiagramBuildContainer.h"
|
||||
#include "DocRoutingSlipAtom.h"
|
||||
#include "DocumentAtom.h"
|
||||
#include "ExControlAtom.h"
|
||||
@ -123,7 +122,7 @@
|
||||
#include "ViewInfoAtom.h"
|
||||
#include "ZoomViewInfoAtom.h"
|
||||
|
||||
#include "Animations/AnimationTypes.h"
|
||||
#include "Animations/_includer.h"
|
||||
#include "InteractiveInfoAtom.h"
|
||||
#include "TextInteractiveInfoAtom.h"
|
||||
|
||||
|
||||
952
ASCOfficePPTFile/PPTFormatLib/Records/SlideProgTagsContainer.h
Normal file
952
ASCOfficePPTFile/PPTFormatLib/Records/SlideProgTagsContainer.h
Normal file
@ -0,0 +1,952 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#include "../Reader/Records.h"
|
||||
#include "Animations/_includer.h"
|
||||
#include "HeadersFootersAtom.h"
|
||||
#include "Animations/ExtTimeNodeContainer.h"
|
||||
#include "Animations/SubEffectContainer.h"
|
||||
|
||||
#define MIN_SLIDE_TIME 5000.0
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
|
||||
class CSlideTimeLine
|
||||
{
|
||||
public:
|
||||
|
||||
CSlideTimeLine ()
|
||||
{
|
||||
m_dEffectDuration = 0.0;
|
||||
|
||||
m_nMediaID = -1;
|
||||
m_nMediaShapeID = -1;
|
||||
m_nMediaPush = 0;
|
||||
}
|
||||
|
||||
~CSlideTimeLine()
|
||||
{
|
||||
Clear ();
|
||||
}
|
||||
|
||||
inline bool Build (CRecordExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if (pContainer)
|
||||
{
|
||||
Clear ();
|
||||
|
||||
m_bSaveEffect = false;
|
||||
m_HaveAfterEffect = false;
|
||||
|
||||
m_oParagraphBuilds.Create(pContainer);
|
||||
|
||||
ExploreTree ( pContainer );
|
||||
|
||||
UpdateParagraph ();
|
||||
|
||||
return (0 != m_oAnimation.size());
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
inline EffectsMap& GetAnimation ()
|
||||
{
|
||||
return m_oAnimation;
|
||||
}
|
||||
|
||||
inline double GetTime ()
|
||||
{
|
||||
double dTime = m_oNodeTiming.GetTimeLine ();
|
||||
if (dTime < MIN_SLIDE_TIME)
|
||||
return MIN_SLIDE_TIME;
|
||||
|
||||
if (((long)dTime) % 1000)
|
||||
return ( ((long)((long)(dTime) / 1000) + 1 ) * 1000.0 );
|
||||
|
||||
return dTime;
|
||||
}
|
||||
|
||||
private:
|
||||
inline void ExploreTree (CRecordExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
unsigned long nNodeType = pContainer->GetEffectNodeType ();
|
||||
if (nNodeType)
|
||||
{
|
||||
if (CNodeTiming::MainSequenceNode != nNodeType && CNodeTiming::TimingRootNode != nNodeType)
|
||||
{
|
||||
m_oTopEffect = CreateEffectFromNode ( pContainer->timePropertyList );
|
||||
|
||||
m_ComposeEffectMothionPath = _T("");
|
||||
|
||||
FindEffectMothionPath ( pContainer );
|
||||
|
||||
// время старта анимации
|
||||
if ( pContainer->timeCondition.size() )
|
||||
{
|
||||
double dTime = static_cast<TimeConditionContainer*> ( pContainer->timeCondition[0] )->m_oTimeConditionAtom.m_nTimeDelay;
|
||||
m_oNodeTiming.SetTimeDelay (dTime);
|
||||
|
||||
//m_oTopEffect.m_nBeginTime = static_cast<TimeConditionContainer*> ( pContainer->timeCondition[0] )->m_oTimeConditionAtom.m_nTimeDelay;
|
||||
|
||||
m_bSaveEffect = false;
|
||||
}
|
||||
|
||||
// setup accelerate - decelerate
|
||||
|
||||
if (pContainer->rgTimeModifierAtom.size())
|
||||
{
|
||||
if (pContainer->GetModifier(3))
|
||||
m_oTopEffect.m_dTimeAccel = (std::max)((std::min)(pContainer->GetModifier(3)->value,1.0f),0.0f);
|
||||
|
||||
if (pContainer->GetModifier(4))
|
||||
m_oTopEffect.m_dTimeDecel = (std::max)((std::min)(pContainer->GetModifier(4)->value,1.0f),0.0f);
|
||||
}
|
||||
|
||||
if (pContainer->haveSlaveContainer)
|
||||
{
|
||||
CRecordSubContainer* pSlave = pContainer->rgSlave;
|
||||
if(pSlave->haveSetBehavior) // после анимации к объекту может быть применена дополнительная анимация
|
||||
{
|
||||
m_HaveAfterEffect = true;
|
||||
|
||||
// эффект исчезновения элемента (Appear)
|
||||
m_oAfterEffect.m_nDuration = 1.0;
|
||||
m_oAfterEffect.m_nEffectID = 1;
|
||||
m_oAfterEffect.m_nEffectNodeType = 1;
|
||||
m_oAfterEffect.m_nEffectType = 2;
|
||||
|
||||
if (pSlave->timeSetBehavior)
|
||||
{
|
||||
if (pSlave->timeSetBehavior->behavior.clientVisualElement.m_bVisualShapeAtom)
|
||||
m_oAfterEffect.m_nRefID = pSlave->timeSetBehavior->behavior.GetObjectID ();
|
||||
}
|
||||
|
||||
if (pSlave->extTimeContainer)
|
||||
{
|
||||
ExploreTree (static_cast<ExtTimeNodeContainer*>(pSlave->extTimeContainer));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ProcessMediaCall (pContainer);
|
||||
}
|
||||
}
|
||||
|
||||
int nID = GetShapeID ( pContainer );
|
||||
if ( -1 != nID )
|
||||
{
|
||||
// TODO :
|
||||
// нужно из всех объектов (*Behavior) для конкретного эффекта,
|
||||
// который заранее прочитан в m_oTopEffect дополнять параметры из потомков
|
||||
|
||||
if ( false == m_bSaveEffect )
|
||||
{
|
||||
AddAnimation ( pContainer, nID );
|
||||
|
||||
m_bSaveEffect = true;
|
||||
}
|
||||
}
|
||||
|
||||
for ( int i = 0; i < (int)pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
{
|
||||
if ( (WORD)RT_TimeExtTimeNodeContainer == pContainer->rgExtTimeNodeChildren [i]->m_oHeader.RecType )
|
||||
{
|
||||
Animations::ExtTimeNodeContainer* pChild = static_cast<Animations::ExtTimeNodeContainer*> ( pContainer->rgExtTimeNodeChildren [i] );
|
||||
if ( pChild )
|
||||
ExploreTree ( pChild );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
inline void AddAnimation (ExtTimeNodeContainer* pTimeNode, int nID)
|
||||
{
|
||||
CalculateTimeEffect (pTimeNode);
|
||||
|
||||
Effect oEffect = m_oTopEffect;
|
||||
|
||||
oEffect.m_nRefID = nID;
|
||||
oEffect.m_nBeginTime = m_oNodeTiming.GetTop ().dTime;
|
||||
oEffect.m_nDuration = m_oNodeTiming.GetTop ().dDuration;
|
||||
|
||||
if (pTimeNode->timeMotionBehavior)
|
||||
{
|
||||
oEffect.m_MotionPath = pTimeNode->timeMotionBehavior->m_VarPath.stringValue;
|
||||
}
|
||||
|
||||
if (pTimeNode->haveScaleBehavior) // GrowAndShrinkEffect = 6 // простое увеличение
|
||||
{
|
||||
oEffect.m_dSX = pTimeNode->timeScaleBehavior->scaleBehaviorAtom.fXBy * 0.01;
|
||||
oEffect.m_dSY = pTimeNode->timeScaleBehavior->scaleBehaviorAtom.fYBy * 0.01;
|
||||
}
|
||||
|
||||
if (pTimeNode->haveRotationBehavior) // SpinEffect = 8 // вращение
|
||||
{
|
||||
oEffect.m_dRotateAngle = pTimeNode->timeRotationBehavior->rotationBehaviorAtom.fBy;
|
||||
//oEffect.m_nRotateDirection = pTimeNode->timeRotationBehavior->rotationBehaviorAtom.rotationDirection;
|
||||
}
|
||||
|
||||
if (pTimeNode->haveSetBehavior)
|
||||
{
|
||||
if (9 == oEffect.m_nEffectID) // TransparencyEffect = 9, // временная прозрачность
|
||||
oEffect.m_dTransparency = _tstof (pTimeNode->timeSetBehavior->varTo.stringValue.c_str());
|
||||
}
|
||||
|
||||
if (m_ComposeEffectMothionPath.length())
|
||||
{
|
||||
oEffect.m_MotionPath = m_ComposeEffectMothionPath; // составной эффект может иметь траекторию для движения
|
||||
}
|
||||
|
||||
if(pTimeNode->haveColorBehavior)
|
||||
{
|
||||
oEffect.m_nSchemeColor = pTimeNode->timeColorBehavior->colorBehaviorAtom.colorTo.model;
|
||||
|
||||
if (0 == pTimeNode->timeColorBehavior->colorBehaviorAtom.colorTo.model)
|
||||
{
|
||||
oEffect.m_nColorTo = pTimeNode->timeColorBehavior->colorBehaviorAtom.colorTo.FRGB();
|
||||
}
|
||||
|
||||
// TODO : HSL
|
||||
// TODO : ColorDirection
|
||||
|
||||
if (2 == pTimeNode->timeColorBehavior->colorBehaviorAtom.colorTo.model)
|
||||
{
|
||||
oEffect.m_nColorTo = pTimeNode->timeColorBehavior->colorBehaviorAtom.colorTo.red; // index from table
|
||||
}
|
||||
}
|
||||
|
||||
if (MediaCallEffect == oEffect.m_nEffectType)
|
||||
{
|
||||
if (1 == oEffect.m_nEffectID) // PLAY
|
||||
oEffect.m_nMediaCMD = 1;
|
||||
|
||||
if (2 == oEffect.m_nEffectID) // PAUSE
|
||||
oEffect.m_nMediaCMD = 2;
|
||||
|
||||
if (3 == oEffect.m_nEffectID) // STOP
|
||||
oEffect.m_nMediaCMD = 0;
|
||||
}
|
||||
|
||||
// oEffect.m_nTextSequence = m_oParagraphBuilds.GetBuild(nID);
|
||||
|
||||
AddEffectTopMap (oEffect, nID);
|
||||
AddAfterEffect (nID);
|
||||
|
||||
m_oTopEffect.m_dTimeAccel = 0.0;
|
||||
m_oTopEffect.m_dTimeDecel = 0.0;
|
||||
m_oTopEffect.m_bIgnoreShape = false;
|
||||
}
|
||||
|
||||
inline void AddAfterEffect (long nID)
|
||||
{
|
||||
if (m_HaveAfterEffect)
|
||||
{
|
||||
if (-1 == m_oAfterEffect.m_nRefID)
|
||||
{
|
||||
m_oAfterEffect.m_nRefID = nID;
|
||||
}
|
||||
|
||||
m_oAfterEffect.m_nDuration = 1.0;
|
||||
m_oAfterEffect.m_nBeginTime = m_oNodeTiming.GetTop ().dTime + m_oNodeTiming.GetTop ().dDuration;
|
||||
|
||||
AddEffectTopMap (m_oAfterEffect,nID);
|
||||
|
||||
m_oAfterEffect.m_nRefID = -1;
|
||||
m_HaveAfterEffect = false;
|
||||
}
|
||||
}
|
||||
inline void AddEffectTopMap (Effect& oEffect, long nID)
|
||||
{
|
||||
oEffect.m_bRemoveEmptyBlocks = true; // ALWAYS
|
||||
|
||||
EffectToMap (oEffect);
|
||||
}
|
||||
inline void EffectToMap (const Effect& oEffect)
|
||||
{
|
||||
EffectsMap::const_iterator mSearch = m_oAnimation.find(oEffect.m_nRefID);
|
||||
Effects* pEffects = NULL;
|
||||
if (mSearch == m_oAnimation.end())
|
||||
{
|
||||
pEffects = new Effects ();
|
||||
m_oAnimation.insert(std::pair<_UINT32,Effects*>( oEffect.m_nRefID, pEffects));
|
||||
}else
|
||||
pEffects = mSearch->second;
|
||||
|
||||
if (pEffects)
|
||||
pEffects->push_back ( oEffect );
|
||||
}
|
||||
|
||||
//
|
||||
inline Effect CreateEffectFromNode (TimePropertyList4TimeNodeContainer* pContainer)
|
||||
{
|
||||
Effect oEffect;
|
||||
|
||||
if (pContainer)
|
||||
{
|
||||
oEffect.m_nEffectID = pContainer->m_EffectID.m_Value;
|
||||
oEffect.m_nEffectType = pContainer->m_EffectType.m_Value;
|
||||
oEffect.m_nEffectDir = pContainer->m_EffectDir.m_Value;
|
||||
oEffect.m_nEffectNodeType = pContainer->m_EffectNodeType.m_Value;
|
||||
}
|
||||
|
||||
return oEffect;
|
||||
}
|
||||
|
||||
inline int GetShapeID (CRecordExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if (TL_TNT_Behavior == pContainer->timeNodeAtom.m_dwType)
|
||||
{
|
||||
if (pContainer->timeMotionBehavior)
|
||||
{
|
||||
if (pContainer->timeMotionBehavior->m_oBehavior.clientVisualElement.m_bVisualShapeAtom)
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeMotionBehavior->m_oBehavior);
|
||||
return pContainer->timeMotionBehavior->m_oBehavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeEffectBehavior)
|
||||
{
|
||||
if (pContainer->timeEffectBehavior->m_oBehavior.clientVisualElement.m_bVisualShapeAtom)
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeEffectBehavior->m_oBehavior);
|
||||
return pContainer->timeEffectBehavior->m_oBehavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeAnimateBehavior)
|
||||
{
|
||||
if (pContainer->timeAnimateBehavior->m_oBehavior.clientVisualElement.m_bVisualShapeAtom)
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeAnimateBehavior->m_oBehavior);
|
||||
return pContainer->timeAnimateBehavior->m_oBehavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeSetBehavior)
|
||||
{
|
||||
if (pContainer->timeSetBehavior->behavior.clientVisualElement.m_bVisualShapeAtom)
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeSetBehavior->behavior);
|
||||
return pContainer->timeSetBehavior->behavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeScaleBehavior)
|
||||
{
|
||||
if ( pContainer->timeScaleBehavior->behavior.clientVisualElement.m_bVisualShapeAtom )
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeScaleBehavior->behavior);
|
||||
return pContainer->timeScaleBehavior->behavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeRotationBehavior)
|
||||
{
|
||||
if ( pContainer->timeRotationBehavior->behavior.clientVisualElement.m_bVisualShapeAtom )
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeRotationBehavior->behavior);
|
||||
return pContainer->timeRotationBehavior->behavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
|
||||
if (pContainer->timeColorBehavior)
|
||||
{
|
||||
if ( pContainer->timeColorBehavior->behavior.clientVisualElement.m_bVisualShapeAtom )
|
||||
{
|
||||
ReadPropertyIgnoreShape (pContainer->timeColorBehavior->behavior);
|
||||
return pContainer->timeColorBehavior->behavior.GetObjectID ();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
inline void CalculateTimeEffect (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
m_dEffectDuration = pContainer->timeNodeAtom.m_nDuration;
|
||||
|
||||
MediumEffectDuration ( pContainer ); // получаем для все временные интервалы данного эффекта
|
||||
MediumEffectTimeDelay ( pContainer ); // получаем все внутренние метки для данного эффткта
|
||||
|
||||
if (MediaCallEffect == m_oTopEffect.m_nEffectType)
|
||||
{
|
||||
if (!pContainer->rgExtTimeNodeChildren.empty())
|
||||
{
|
||||
ExtTimeNodeContainer* pChild = pContainer->rgExtTimeNodeChildren[0];
|
||||
if (pChild)
|
||||
{
|
||||
if (pChild->timeNodeAtom.m_bDurationProperty)
|
||||
{
|
||||
m_dEffectDuration = pChild->timeNodeAtom.m_nDuration;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ((int)m_arDurations.size() > 1)
|
||||
{
|
||||
m_dEffectDuration = m_arDurations[1];
|
||||
|
||||
if (FadeExitType == m_oTopEffect.m_nEffectType)
|
||||
m_dEffectDuration = m_arDurations[0];
|
||||
}
|
||||
|
||||
// TODO : для составных эффектов посчитаем время с помощью заглушек
|
||||
|
||||
if (/* BlindsEffect */( m_oTopEffect.m_nEffectID == 3 ||
|
||||
/* BoxEffect */ m_oTopEffect.m_nEffectID == 4 ||
|
||||
/* CheckBoardEffect */ m_oTopEffect.m_nEffectID == 5 ||
|
||||
/* CircleEffect */ m_oTopEffect.m_nEffectID == 6 ||
|
||||
/* DiamondEffect */ m_oTopEffect.m_nEffectID == 8 ||
|
||||
/* DissolveEffect */ m_oTopEffect.m_nEffectID == 9 ||
|
||||
/* PeekEffect */ m_oTopEffect.m_nEffectID == 12 ||
|
||||
/* PlusEffect */ m_oTopEffect.m_nEffectID == 13 ||
|
||||
/* RandomBarsEffect */ m_oTopEffect.m_nEffectID == 14 ||
|
||||
/* SplitEffect */ m_oTopEffect.m_nEffectID == 16 ||
|
||||
/* StripsEffect */ m_oTopEffect.m_nEffectID == 18 ||
|
||||
/* WedgeEffect */ m_oTopEffect.m_nEffectID == 20 ||
|
||||
/* WheelEffect */ m_oTopEffect.m_nEffectID == 21 ||
|
||||
/* WipeEffect */ m_oTopEffect.m_nEffectID == 22 ) && 2 == m_oTopEffect.m_nEffectType )
|
||||
{
|
||||
m_dEffectDuration = m_arDurations[0];
|
||||
}
|
||||
|
||||
if (43 == m_oTopEffect.m_nEffectID) // CenterRevolveEffect
|
||||
{
|
||||
if (5 == m_arDurations.size())
|
||||
m_dEffectDuration = m_arDurations[0] + m_arDurations[1] + m_arDurations[3];
|
||||
}
|
||||
|
||||
if (45 == m_oTopEffect.m_nEffectID) // FadedSwivel
|
||||
{
|
||||
}
|
||||
|
||||
if (55 == m_oTopEffect.m_nEffectID) // Expand
|
||||
{
|
||||
}
|
||||
|
||||
if (52 == m_oTopEffect.m_nEffectID) // RiseUp
|
||||
{
|
||||
}
|
||||
|
||||
if (30 == m_oTopEffect.m_nEffectID) // Float
|
||||
{
|
||||
if ((int)m_arDurations.size() > 5)
|
||||
m_dEffectDuration = m_arDurations[1] + m_arDurations[5];
|
||||
}
|
||||
|
||||
if (26 == m_oTopEffect.m_nEffectID)
|
||||
{
|
||||
if (!m_arDurations.empty() && !m_arBeginTimes.empty() )
|
||||
m_dEffectDuration = m_arDurations.at(m_arDurations.size()-1) + m_arBeginTimes.at(m_arBeginTimes.size()-1);
|
||||
}
|
||||
|
||||
if ( 32 == m_oTopEffect.m_nEffectID && 3 == m_oTopEffect.m_nEffectType ) // Teeter Effect
|
||||
{
|
||||
if ((int)m_arDurations.size())
|
||||
m_dEffectDuration = m_arDurations[0] * 10.0;
|
||||
|
||||
}
|
||||
|
||||
if ( 26 == m_oTopEffect.m_nEffectID && 3 == m_oTopEffect.m_nEffectType ) // FlashBulb Effect
|
||||
{
|
||||
if ((int)m_arDurations.size() >= 2)
|
||||
m_dEffectDuration = m_arDurations[0];
|
||||
}
|
||||
|
||||
//debug::tracearrf (m_arDurations);
|
||||
//debug::tracearrf (m_arBeginTimes);
|
||||
|
||||
m_arDurations.clear();
|
||||
m_arBeginTimes.clear();
|
||||
|
||||
m_oNodeTiming.Push ( m_dEffectDuration, m_oTopEffect.m_nEffectNodeType );
|
||||
}
|
||||
|
||||
inline bool MediumEffectDuration (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if ( pContainer->timeNodeAtom.m_bDurationProperty )
|
||||
{
|
||||
m_arDurations.push_back ( pContainer->timeNodeAtom.m_nDuration );
|
||||
|
||||
for ( int i = 0; i < (int)pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
{
|
||||
if ( (WORD)RT_TimeExtTimeNodeContainer == pContainer->rgExtTimeNodeChildren [i]->m_oHeader.RecType )
|
||||
MediumEffectDuration ( pContainer->rgExtTimeNodeChildren [i] );
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
inline bool MediumEffectTimeDelay (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if ( pContainer->timeNodeAtom.m_bDurationProperty )
|
||||
{
|
||||
if ( pContainer->timeCondition.size() )
|
||||
{
|
||||
m_arBeginTimes.push_back( static_cast<TimeConditionContainer*> ( pContainer->timeCondition[0] )->m_oTimeConditionAtom.m_nTimeDelay );
|
||||
}
|
||||
|
||||
for ( int i = 0; i < (int)pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
{
|
||||
if ( (WORD)RT_TimeExtTimeNodeContainer == pContainer->rgExtTimeNodeChildren [i]->m_oHeader.RecType )
|
||||
MediumEffectTimeDelay ( pContainer->rgExtTimeNodeChildren [i] );
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
inline bool FindEffectMothionPath (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
// сложные эффект может содержать в себе перемещение по траектории
|
||||
if (52 == m_oTopEffect.m_nEffectID) // ArcUp
|
||||
{
|
||||
if ( pContainer->haveMotionBehavior )
|
||||
{
|
||||
m_ComposeEffectMothionPath = pContainer->timeMotionBehavior->m_VarPath.stringValue;
|
||||
// debug::trace (m_ComposeEffectMothionPath);
|
||||
return true;
|
||||
}
|
||||
|
||||
for ( int i = 0; i < (int)pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
FindEffectMothionPath ( pContainer->rgExtTimeNodeChildren [i] );
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
inline void ReadPropertyIgnoreShape (const TimeBehaviorContainer& container)
|
||||
{
|
||||
if (2 == container.clientVisualElement.m_oVisualShapeAtom.m_Type) // указывает на то что анимация применяется к тексту
|
||||
{
|
||||
m_oTopEffect.m_bIgnoreShape = true;
|
||||
m_oTopEffect.m_nTextSequence = container.clientVisualElement.m_oVisualShapeAtom.m_nData1; // номер параграфа - не нормальзован
|
||||
m_oTopEffect.m_bRemoveEmptyBlocks = true;
|
||||
|
||||
for (size_t i = 0; i < m_arParIndexer.size(); ++i)
|
||||
{
|
||||
if (m_oTopEffect.m_nTextSequence == m_arParIndexer.at(i))
|
||||
return;
|
||||
}
|
||||
|
||||
m_arParIndexer.push_back (m_oTopEffect.m_nTextSequence);
|
||||
}
|
||||
}
|
||||
|
||||
inline bool UpdateParagraph ()
|
||||
{
|
||||
if (!m_arParIndexer.empty())
|
||||
{
|
||||
//ATLTRACE ( _T("====================PARAGRAPH==========================================\n"));
|
||||
//qsort ( m_arParIndexer.GetData(), m_arParIndexer.size(), sizeof (long), (int(*)(const void*, const void*))sort );
|
||||
|
||||
sort(m_arParIndexer.begin(), m_arParIndexer.end());
|
||||
|
||||
for (std::map<_UINT32, Effects*>::iterator pPair = m_oAnimation.begin(); pPair != m_oAnimation.end(); ++pPair)
|
||||
{
|
||||
Effects* arEffects = pPair->second;
|
||||
if (arEffects)
|
||||
{
|
||||
for (size_t i = 0; i < arEffects->size(); ++i)
|
||||
{
|
||||
Effect& oEffect = arEffects->at(i);
|
||||
if (oEffect.m_nTextSequence >= 0)
|
||||
{
|
||||
for (size_t ind = 0; ind < m_arParIndexer.size(); ++ind)
|
||||
{
|
||||
if (oEffect.m_nTextSequence == m_arParIndexer.at(ind))
|
||||
{
|
||||
oEffect.m_nTextSequence = ind;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
inline void ProcessMediaCall (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if (MediaCallEffect == m_oTopEffect.m_nEffectType) // если анимация применена к VIDEO или AUDIO элементу
|
||||
{
|
||||
m_nMediaPush = GetAttachedShapeToVideo (pContainer); // если к видео добавлена картинка, надо учитывать смещение при поиск ID
|
||||
|
||||
if (GetMediaID (pContainer))
|
||||
{
|
||||
AddAnimation (pContainer, m_nMediaID);
|
||||
m_bSaveEffect = true;
|
||||
}
|
||||
|
||||
m_arrMedia.clear ();
|
||||
}
|
||||
}
|
||||
|
||||
inline int GetMediaID (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
m_nMediaID = -1;
|
||||
|
||||
if (TL_TNT_Media == pContainer->GetNodeType ())
|
||||
{
|
||||
if (pContainer->clientVisualElement)
|
||||
{
|
||||
m_nMediaID = pContainer->clientVisualElement->m_oVisualShapeAtom.m_nObjectIdRef;
|
||||
|
||||
if (0 == m_nMediaPush)
|
||||
return true;
|
||||
|
||||
--m_nMediaPush;
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
{
|
||||
if (GetMediaID(pContainer->rgExtTimeNodeChildren [i]))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
inline bool GetAttachedShapeToVideo (ExtTimeNodeContainer* pContainer)
|
||||
{
|
||||
if (TL_TNT_Media == pContainer->GetNodeType ()) // нод типа Media
|
||||
{
|
||||
if (pContainer->clientVisualElement)
|
||||
{
|
||||
m_arrMedia.push_back (pContainer->clientVisualElement->m_oVisualShapeAtom.m_nObjectIdRef);
|
||||
|
||||
if (2 == (int)m_arrMedia.size()) // у видео есть статическое изображение
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
for (size_t i = 0; i < pContainer->rgExtTimeNodeChildren.size(); ++i )
|
||||
{
|
||||
if (CNodeTiming::AfterPreviousNode == pContainer->rgExtTimeNodeChildren [i]->GetEffectNodeType ()) // нод с описанием эффекта
|
||||
return false;
|
||||
|
||||
if (GetAttachedShapeToVideo(pContainer->rgExtTimeNodeChildren [i]))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
//
|
||||
inline void Clear ()
|
||||
{
|
||||
for (std::map<_UINT32,Effects*>::iterator pPair = m_oAnimation.begin(); pPair != m_oAnimation.end(); ++pPair)
|
||||
{
|
||||
RELEASEOBJECT(pPair->second);
|
||||
}
|
||||
|
||||
m_oAnimation.clear();
|
||||
}
|
||||
|
||||
|
||||
private:
|
||||
|
||||
Effect m_oAfterEffect;
|
||||
|
||||
bool m_bSaveEffect;
|
||||
Effect m_oTopEffect;
|
||||
CNodeTiming m_oNodeTiming;
|
||||
|
||||
double m_dEffectDuration;
|
||||
TimeArray m_arDurations;
|
||||
TimeArray m_arBeginTimes;
|
||||
|
||||
std::wstring m_ComposeEffectMothionPath;
|
||||
bool m_HaveAfterEffect;
|
||||
|
||||
EffectsMap m_oAnimation;
|
||||
CParagraphBuilds m_oParagraphBuilds;
|
||||
|
||||
std::vector <_INT32> m_arParIndexer;
|
||||
|
||||
// media
|
||||
int m_nMediaID;
|
||||
int m_nMediaShapeID;
|
||||
int m_nMediaPush; // глубина поиска
|
||||
|
||||
std::vector <_INT32> m_arrMedia;
|
||||
};
|
||||
|
||||
|
||||
|
||||
// TODO this struct
|
||||
struct PP9SlideBinaryTagExtension : public CRecordsContainer
|
||||
{
|
||||
public:
|
||||
PP9SlideBinaryTagExtension()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~PP9SlideBinaryTagExtension()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
CUnknownRecord::ReadFromStream(m_oHeader, pStream);
|
||||
}
|
||||
};
|
||||
|
||||
struct PP10SlideBinaryTagExtension : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
PP10SlideBinaryTagExtension ()
|
||||
{
|
||||
extTimeNodeContainer = NULL;
|
||||
buildListContainer = NULL;
|
||||
}
|
||||
|
||||
virtual ~PP10SlideBinaryTagExtension ()
|
||||
{
|
||||
RELEASEOBJECT (extTimeNodeContainer);
|
||||
RELEASEOBJECT (buildListContainer);
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
UINT lCurLen = 0;
|
||||
|
||||
SRecordHeader ReadHeader;
|
||||
|
||||
while ( lCurLen < m_oHeader.RecLen )
|
||||
{
|
||||
if ( ReadHeader.ReadFromStream(pStream) == false)
|
||||
break;
|
||||
|
||||
lCurLen += 8 + ReadHeader.RecLen;
|
||||
|
||||
if (RT_TimeExtTimeNodeContainer == ReadHeader.RecType)
|
||||
{
|
||||
extTimeNodeContainer = new CRecordExtTimeNodeContainer ();
|
||||
if (extTimeNodeContainer)
|
||||
{
|
||||
extTimeNodeContainer->ReadFromStream ( ReadHeader, pStream );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
if (RT_BuildList == ReadHeader.RecType)
|
||||
{
|
||||
buildListContainer = new CRecordBuildListContainer ();
|
||||
if (buildListContainer)
|
||||
{
|
||||
buildListContainer->ReadFromStream ( ReadHeader, pStream );
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
StreamUtils::StreamSkip ( ReadHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
public:
|
||||
|
||||
//Animations::SlideTime10Atom m_oSlideTime10Atom;
|
||||
//Animations::HashCode10Atom m_oHashCode10Atom;
|
||||
|
||||
CRecordExtTimeNodeContainer* extTimeNodeContainer; // ROOT
|
||||
CRecordBuildListContainer* buildListContainer; // OPTIONAL
|
||||
};
|
||||
|
||||
struct PP12SlideBinaryTagExtension : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
PP12SlideBinaryTagExtension()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
~PP12SlideBinaryTagExtension()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
virtual void ReadFromStream ( SRecordHeader & oHeader, POLE::Stream* pStream )
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_oRoundTripHeaderFooterDefaultsAtom.ReadFromStream(m_oHeader, pStream);
|
||||
}
|
||||
|
||||
public:
|
||||
CRecordRoundTripHeaderFooterDefaults12Atom m_oRoundTripHeaderFooterDefaultsAtom;
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
struct SlideProgTagsContainer : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
|
||||
SlideProgTagsContainer ()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
virtual void ReadFromStream (SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
|
||||
LONG lPos = 0;
|
||||
StreamUtils::StreamPosition ( lPos, pStream );
|
||||
|
||||
m_oHeaderChild.ReadFromStream(pStream) ;
|
||||
|
||||
if ( RECORD_PROG_BINARY_TAG == m_oHeaderChild.RecType )
|
||||
{
|
||||
SRecordHeader rgSubRec;
|
||||
|
||||
rgSubRec.ReadFromStream(pStream) ;
|
||||
|
||||
WCHAR Name[9];
|
||||
if (sizeof (wchar_t) == 4)
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
Name[i] = (WCHAR)StreamUtils::ReadWORD(pStream);
|
||||
Name[8] = L'\0';
|
||||
}
|
||||
else
|
||||
{
|
||||
pStream->read ((unsigned char*) Name, 16 );
|
||||
Name[8] = L'\0';
|
||||
}
|
||||
|
||||
|
||||
tagName = std::wstring ( Name );
|
||||
|
||||
if ( std::wstring ( L"___PPT9" ) == tagName )
|
||||
{
|
||||
SRecordHeader rhData;
|
||||
rhData.ReadFromStream(pStream) ;
|
||||
// TODO PP9SlideBinaryTagExtension
|
||||
m_oBinaryTagExtension = new PP9SlideBinaryTagExtension;
|
||||
|
||||
if (rhData.RecType == 0x138B && rhData.RecVersion == 0x0 && rhData.RecInstance == 0x000) // RT_BinaryTagDataBlob - 0x138B
|
||||
{
|
||||
m_oBinaryTagExtension->ReadFromStream (rhData, pStream);
|
||||
|
||||
}
|
||||
} else if ( std::wstring ( L"___PPT10" ) == tagName )
|
||||
{
|
||||
SRecordHeader rhData;
|
||||
rhData.ReadFromStream(pStream) ;
|
||||
m_oBinaryTagExtension = new PP10SlideBinaryTagExtension;
|
||||
|
||||
if (rhData.RecType == 0x138B && rhData.RecVersion == 0x0 && rhData.RecInstance == 0x000) // RT_BinaryTagDataBlob - 0x138B
|
||||
{
|
||||
m_oBinaryTagExtension->ReadFromStream (rhData, pStream);
|
||||
|
||||
}
|
||||
} else if ( std::wstring ( L"___PPT12" ) == tagName )
|
||||
{
|
||||
SRecordHeader rhData;
|
||||
rhData.ReadFromStream(pStream) ;
|
||||
m_oBinaryTagExtension = new PP12SlideBinaryTagExtension;
|
||||
|
||||
if (rhData.RecType == 0x138B && rhData.RecVersion == 0x0 && rhData.RecInstance == 0x000) // RT_BinaryTagDataBlob - 0x138B
|
||||
{
|
||||
m_oBinaryTagExtension->ReadFromStream (rhData, pStream);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
StreamUtils::StreamSeek ( lPos + m_oHeader.RecLen, pStream );
|
||||
}
|
||||
|
||||
inline CSlideTimeLine* GetTimeLine ()
|
||||
{
|
||||
if (tagName == L"___PPT10" and
|
||||
dynamic_cast<PP10SlideBinaryTagExtension*>(m_oBinaryTagExtension)->extTimeNodeContainer)
|
||||
{
|
||||
CSlideTimeLine* pTimeLine = new CSlideTimeLine ();
|
||||
if (pTimeLine)
|
||||
{
|
||||
if (pTimeLine->Build(
|
||||
dynamic_cast<PP10SlideBinaryTagExtension*>
|
||||
(m_oBinaryTagExtension)->extTimeNodeContainer))
|
||||
|
||||
return pTimeLine;
|
||||
|
||||
RELEASEOBJECT (pTimeLine);
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
public:
|
||||
|
||||
std::wstring tagName;
|
||||
|
||||
IRecord* m_oBinaryTagExtension;
|
||||
|
||||
SRecordHeader m_oHeaderChild;
|
||||
};
|
||||
}
|
||||
@ -32,91 +32,91 @@
|
||||
#pragma once
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
class CRecordTextMasterStyle9Atom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
USHORT m_cLevels;
|
||||
//class CRecordTextMasterStyle9Atom : public CUnknownRecord
|
||||
//{
|
||||
//public:
|
||||
// USHORT m_cLevels;
|
||||
|
||||
CRecordTextMasterStyle9Atom()
|
||||
{
|
||||
}
|
||||
// CRecordTextMasterStyle9Atom()
|
||||
// {
|
||||
// }
|
||||
|
||||
~CRecordTextMasterStyle9Atom()
|
||||
{
|
||||
}
|
||||
// ~CRecordTextMasterStyle9Atom()
|
||||
// {
|
||||
// }
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
m_oHeader = oHeader;
|
||||
// virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
// {
|
||||
// m_oHeader = oHeader;
|
||||
|
||||
LONG lPosition = 0;
|
||||
StreamUtils::StreamPosition(lPosition, pStream);
|
||||
// LONG lPosition = 0;
|
||||
// StreamUtils::StreamPosition(lPosition, pStream);
|
||||
|
||||
m_nTextType = m_oHeader.RecInstance;
|
||||
// USHORT m_nTextType = m_oHeader.RecInstance;
|
||||
|
||||
bool bIsLevelsPresent = (0x05 <= m_oHeader.RecInstance);
|
||||
// bool bIsLevelsPresent = (0x05 <= m_oHeader.RecInstance);
|
||||
|
||||
int lLevels = StreamUtils::ReadWORD(pStream);
|
||||
if (0 < lLevels)
|
||||
LoadLevel(0, pStream, bIsLevelsPresent);
|
||||
if (1 < lLevels)
|
||||
LoadLevel(1, pStream, bIsLevelsPresent);
|
||||
if (2 < lLevels)
|
||||
LoadLevel(2, pStream, bIsLevelsPresent);
|
||||
if (3 < lLevels)
|
||||
LoadLevel(3, pStream, bIsLevelsPresent);
|
||||
if (4 < lLevels)
|
||||
LoadLevel(4, pStream, bIsLevelsPresent);
|
||||
// int lLevels = StreamUtils::ReadWORD(pStream);
|
||||
// if (0 < lLevels)
|
||||
// LoadLevel(0, pStream, bIsLevelsPresent);
|
||||
// if (1 < lLevels)
|
||||
// LoadLevel(1, pStream, bIsLevelsPresent);
|
||||
// if (2 < lLevels)
|
||||
// LoadLevel(2, pStream, bIsLevelsPresent);
|
||||
// if (3 < lLevels)
|
||||
// LoadLevel(3, pStream, bIsLevelsPresent);
|
||||
// if (4 < lLevels)
|
||||
// LoadLevel(4, pStream, bIsLevelsPresent);
|
||||
|
||||
// походу нужно делать так: ----------------------------------------------
|
||||
if (m_pLevels[0].is_init())
|
||||
{
|
||||
if (!m_pLevels[1].is_init())
|
||||
m_pLevels[1] = m_pLevels[0].get();
|
||||
else
|
||||
m_pLevels[1]->ApplyBefore(m_pLevels[0].get());
|
||||
}
|
||||
if (m_pLevels[1].is_init())
|
||||
{
|
||||
if (!m_pLevels[2].is_init())
|
||||
m_pLevels[2] = m_pLevels[1].get();
|
||||
else
|
||||
m_pLevels[2]->ApplyBefore(m_pLevels[1].get());
|
||||
}
|
||||
if (m_pLevels[2].is_init())
|
||||
{
|
||||
if (!m_pLevels[3].is_init())
|
||||
m_pLevels[3] = m_pLevels[2].get();
|
||||
else
|
||||
m_pLevels[3]->ApplyBefore(m_pLevels[2].get());
|
||||
}
|
||||
if (m_pLevels[3].is_init())
|
||||
{
|
||||
if (!m_pLevels[4].is_init())
|
||||
m_pLevels[4] = m_pLevels[3].get();
|
||||
else
|
||||
m_pLevels[4]->ApplyBefore(m_pLevels[3].get());
|
||||
}
|
||||
// -----------------------------------------------------------------------
|
||||
// // походу нужно делать так: ----------------------------------------------
|
||||
// if (m_pLevels[0].is_init())
|
||||
// {
|
||||
// if (!m_pLevels[1].is_init())
|
||||
// m_pLevels[1] = m_pLevels[0].get();
|
||||
// else
|
||||
// m_pLevels[1]->ApplyBefore(m_pLevels[0].get());
|
||||
// }
|
||||
// if (m_pLevels[1].is_init())
|
||||
// {
|
||||
// if (!m_pLevels[2].is_init())
|
||||
// m_pLevels[2] = m_pLevels[1].get();
|
||||
// else
|
||||
// m_pLevels[2]->ApplyBefore(m_pLevels[1].get());
|
||||
// }
|
||||
// if (m_pLevels[2].is_init())
|
||||
// {
|
||||
// if (!m_pLevels[3].is_init())
|
||||
// m_pLevels[3] = m_pLevels[2].get();
|
||||
// else
|
||||
// m_pLevels[3]->ApplyBefore(m_pLevels[2].get());
|
||||
// }
|
||||
// if (m_pLevels[3].is_init())
|
||||
// {
|
||||
// if (!m_pLevels[4].is_init())
|
||||
// m_pLevels[4] = m_pLevels[3].get();
|
||||
// else
|
||||
// m_pLevels[4]->ApplyBefore(m_pLevels[3].get());
|
||||
// }
|
||||
// // -----------------------------------------------------------------------
|
||||
|
||||
// это на всякий случай...
|
||||
StreamUtils::StreamSeek(lPosition + m_oHeader.RecLen, pStream);
|
||||
}
|
||||
protected:
|
||||
void LoadLevel(LONG lLevel, POLE::Stream* pStream, bool bIsLevelPresent)
|
||||
{
|
||||
LONG lLevelOld = lLevel;
|
||||
// // это на всякий случай...
|
||||
// StreamUtils::StreamSeek(lPosition + m_oHeader.RecLen, pStream);
|
||||
// }
|
||||
//protected:
|
||||
// void LoadLevel(LONG lLevel, POLE::Stream* pStream, bool bIsLevelPresent)
|
||||
// {
|
||||
// LONG lLevelOld = lLevel;
|
||||
|
||||
if (bIsLevelPresent)
|
||||
lLevel = StreamUtils::ReadSHORT(pStream);
|
||||
// if (bIsLevelPresent)
|
||||
// lLevel = StreamUtils::ReadSHORT(pStream);
|
||||
|
||||
CTextPFRunRecord oPF;
|
||||
CTextCFRunRecord oCF;
|
||||
oPF.LoadFromStream(pStream, false);
|
||||
oCF.LoadFromStream(pStream, false);
|
||||
// CTextPFRunRecord oPF;
|
||||
// CTextCFRunRecord oCF;
|
||||
// oPF.LoadFromStream(pStream, false);
|
||||
// oCF.LoadFromStream(pStream, false);
|
||||
|
||||
m_pLevels[lLevelOld] = new PPT_FORMAT::CTextStyleLevel();
|
||||
m_pLevels[lLevelOld]->m_oPFRun = oPF.m_oRun;
|
||||
m_pLevels[lLevelOld]->m_oCFRun = oCF.m_oRun;
|
||||
}
|
||||
};
|
||||
// m_pLevels[lLevelOld] = new PPT_FORMAT::CTextStyleLevel();
|
||||
// m_pLevels[lLevelOld]->m_oPFRun = oPF.m_oRun;
|
||||
// m_pLevels[lLevelOld]->m_oCFRun = oCF.m_oRun;
|
||||
// }
|
||||
//};
|
||||
|
||||
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
#include "../Reader/Records.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TextMasterStyle9Level
|
||||
{
|
||||
void ReadFromStream(POLE::Stream* pStream){
|
||||
|
||||
}
|
||||
};
|
||||
}
|
||||
@ -31,15 +31,20 @@
|
||||
*/
|
||||
#pragma once
|
||||
#include "../Reader/Records.h"
|
||||
#include "../Structures/PointStruct.h"
|
||||
#include "../Structures/ScalingStruct.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
class CRecordZoomViewInfoAtom : public CUnknownRecord
|
||||
{
|
||||
public:
|
||||
SScalingAtom m_oCurScale;
|
||||
SPointAtom m_nOrigin;
|
||||
ScalingStruct m_oCurScale;
|
||||
PointStruct m_oOrigin;
|
||||
|
||||
BOOL1 m_bUseVarScale;
|
||||
BOOL1 m_bDraftMode;
|
||||
BOOL1 m_fUseVarScale;
|
||||
BOOL1 m_fDraftMode;
|
||||
|
||||
CRecordZoomViewInfoAtom()
|
||||
{
|
||||
@ -51,6 +56,18 @@ public:
|
||||
|
||||
virtual void ReadFromStream(SRecordHeader & oHeader, POLE::Stream* pStream)
|
||||
{
|
||||
return CUnknownRecord::ReadFromStream(oHeader, pStream);
|
||||
m_oHeader = oHeader;
|
||||
|
||||
m_oCurScale.ReadFromStream(pStream);
|
||||
|
||||
StreamUtils::StreamSkip(24, pStream);
|
||||
|
||||
m_oOrigin.ReadFromStream(pStream);
|
||||
|
||||
m_fUseVarScale = StreamUtils::ReadBYTE(pStream);
|
||||
m_fDraftMode = StreamUtils::ReadBYTE(pStream);
|
||||
|
||||
StreamUtils::StreamSkip(2, pStream);
|
||||
}
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
@ -29,21 +29,27 @@
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
#include "../Records/RecordsIncluder.h"
|
||||
|
||||
struct SColorIndex {
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct ColorStruct {
|
||||
|
||||
BYTE m_red;
|
||||
BYTE m_green;
|
||||
BYTE m_blue;
|
||||
BYTE m_index;
|
||||
|
||||
ColorStruct()
|
||||
{
|
||||
clear();
|
||||
}
|
||||
|
||||
void clear()
|
||||
{
|
||||
m_red = m_green = m_blue = 0;
|
||||
m_index = 0xFF; // Color is undefined.
|
||||
}
|
||||
|
||||
void ReadFromStream(POLE::Stream * pStream)
|
||||
@ -51,8 +57,7 @@ struct SColorIndex {
|
||||
m_red = StreamUtils::ReadBYTE(pStream);
|
||||
m_green = StreamUtils::ReadBYTE(pStream);
|
||||
m_blue = StreamUtils::ReadBYTE(pStream);
|
||||
m_index = StreamUtils::ReadBYTE(pStream);
|
||||
StreamUtils::StreamSkip(1, pStream);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
}
|
||||
69
ASCOfficePPTFile/PPTFormatLib/Structures/DateTimeStruct.h
Normal file
69
ASCOfficePPTFile/PPTFormatLib/Structures/DateTimeStruct.h
Normal file
@ -0,0 +1,69 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
|
||||
struct DateTimeStruct : public IStruct
|
||||
{
|
||||
WORD m_wYear;
|
||||
WORD m_wMonth;
|
||||
WORD m_wDayOfWeek;
|
||||
WORD m_wDay;
|
||||
WORD m_wHour;
|
||||
WORD m_wMinute;
|
||||
WORD m_wSecond;
|
||||
WORD m_wMilliseconds;
|
||||
|
||||
DateTimeStruct() :
|
||||
m_wYear(0), m_wMonth(0), m_wDayOfWeek(0), m_wDay(0),
|
||||
m_wHour(0), m_wMinute(0), m_wSecond(0), m_wMilliseconds(0)
|
||||
{}
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_wYear = StreamUtils::ReadWORD(pStream);
|
||||
m_wMonth = StreamUtils::ReadWORD(pStream);
|
||||
m_wDayOfWeek = StreamUtils::ReadWORD(pStream);
|
||||
m_wDay = StreamUtils::ReadWORD(pStream);
|
||||
m_wHour = StreamUtils::ReadWORD(pStream);
|
||||
m_wMinute = StreamUtils::ReadWORD(pStream);
|
||||
m_wSecond = StreamUtils::ReadWORD(pStream);
|
||||
m_wMilliseconds = StreamUtils::ReadWORD(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
41
ASCOfficePPTFile/PPTFormatLib/Structures/IStruct.h
Normal file
41
ASCOfficePPTFile/PPTFormatLib/Structures/IStruct.h
Normal file
@ -0,0 +1,41 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "../../../Common/DocxFormat/Source/Base/Types_32.h"
|
||||
#include "../../../Common/DocxFormat/Source/SystemUtility/File.h"
|
||||
|
||||
namespace PPT_FORMAT {
|
||||
struct IStruct {
|
||||
virtual void ReadFromStream (POLE::Stream* pStream) = 0;
|
||||
};
|
||||
}
|
||||
49
ASCOfficePPTFile/PPTFormatLib/Structures/PointStruct.h
Normal file
49
ASCOfficePPTFile/PPTFormatLib/Structures/PointStruct.h
Normal file
@ -0,0 +1,49 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT {
|
||||
struct PointStruct : public IStruct
|
||||
{
|
||||
_UINT32 m_x;
|
||||
_UINT32 m_y;
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_x = StreamUtils::ReadLONG(pStream);
|
||||
m_y = StreamUtils::ReadLONG(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
51
ASCOfficePPTFile/PPTFormatLib/Structures/RatioStruct.h
Normal file
51
ASCOfficePPTFile/PPTFormatLib/Structures/RatioStruct.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct RatioStruct : public IStruct
|
||||
{
|
||||
LONG m_nNumber;
|
||||
LONG m_nDenom;
|
||||
|
||||
void ReadFromStream(POLE::Stream* pStream) override
|
||||
{
|
||||
m_nNumber = StreamUtils::ReadLONG(pStream);
|
||||
m_nDenom = StreamUtils::ReadLONG(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
55
ASCOfficePPTFile/PPTFormatLib/Structures/RectStruct.h
Normal file
55
ASCOfficePPTFile/PPTFormatLib/Structures/RectStruct.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct RectStruct : public IStruct
|
||||
{
|
||||
_INT32 m_nTop;
|
||||
_INT32 m_nLeft;
|
||||
_INT32 m_nRight;
|
||||
_INT32 m_nBottom;
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_nTop = StreamUtils::ReadLONG(pStream);
|
||||
m_nLeft = StreamUtils::ReadLONG(pStream);
|
||||
m_nRight = StreamUtils::ReadLONG(pStream);
|
||||
m_nBottom = StreamUtils::ReadLONG(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
51
ASCOfficePPTFile/PPTFormatLib/Structures/ScalingStruct.h
Normal file
51
ASCOfficePPTFile/PPTFormatLib/Structures/ScalingStruct.h
Normal file
@ -0,0 +1,51 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
#include "RatioStruct.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct ScalingStruct : public IStruct
|
||||
{
|
||||
RatioStruct m_x;
|
||||
RatioStruct m_y;
|
||||
|
||||
void ReadFromStream(POLE::Stream* pStream) override
|
||||
{
|
||||
m_x.ReadFromStream(pStream);
|
||||
m_y.ReadFromStream(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
54
ASCOfficePPTFile/PPTFormatLib/Structures/SmallRectStruct.h
Normal file
54
ASCOfficePPTFile/PPTFormatLib/Structures/SmallRectStruct.h
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct SmallRectStruct : public IStruct
|
||||
{
|
||||
_INT16 m_nTop;
|
||||
_INT16 m_nLeft;
|
||||
_INT16 m_nRight;
|
||||
_INT16 m_nBottom;
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_nTop = StreamUtils::ReadSHORT(pStream);
|
||||
m_nLeft = StreamUtils::ReadSHORT(pStream);
|
||||
m_nRight = StreamUtils::ReadSHORT(pStream);
|
||||
m_nBottom = StreamUtils::ReadSHORT(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
55
ASCOfficePPTFile/PPTFormatLib/Structures/TmsfTimeStruct.h
Normal file
55
ASCOfficePPTFile/PPTFormatLib/Structures/TmsfTimeStruct.h
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct TmsfTimeStruct : public IStruct
|
||||
{
|
||||
BYTE m_nTrack;
|
||||
BYTE m_nMinute;
|
||||
BYTE m_nSecond;
|
||||
BYTE m_nFrame;
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_nTrack = StreamUtils::ReadBYTE(pStream);
|
||||
m_nMinute = StreamUtils::ReadBYTE(pStream);
|
||||
m_nSecond = StreamUtils::ReadBYTE(pStream);
|
||||
m_nFrame = StreamUtils::ReadBYTE(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
53
ASCOfficePPTFile/PPTFormatLib/Structures/WideColorStruct.h
Normal file
53
ASCOfficePPTFile/PPTFormatLib/Structures/WideColorStruct.h
Normal file
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
#include "IStruct.h"
|
||||
|
||||
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
struct WideColorStruct : IStruct
|
||||
{
|
||||
USHORT m_nRed;
|
||||
USHORT m_nGreen;
|
||||
USHORT m_nBlue;
|
||||
|
||||
void ReadFromStream(POLE::Stream *pStream) override
|
||||
{
|
||||
m_nRed = StreamUtils::ReadWORD(pStream);
|
||||
m_nGreen = StreamUtils::ReadWORD(pStream);
|
||||
m_nBlue = StreamUtils::ReadWORD(pStream);
|
||||
}
|
||||
};
|
||||
}
|
||||
44
ASCOfficePPTFile/PPTFormatLib/Structures/_includer.h
Normal file
44
ASCOfficePPTFile/PPTFormatLib/Structures/_includer.h
Normal file
@ -0,0 +1,44 @@
|
||||
/*
|
||||
* (c) Copyright Ascensio System SIA 2010-2019
|
||||
*
|
||||
* This program is a free software product. You can redistribute it and/or
|
||||
* modify it under the terms of the GNU Affero General Public License (AGPL)
|
||||
* version 3 as published by the Free Software Foundation. In accordance with
|
||||
* Section 7(a) of the GNU AGPL its Section 15 shall be amended to the effect
|
||||
* that Ascensio System SIA expressly excludes the warranty of non-infringement
|
||||
* of any third-party rights.
|
||||
*
|
||||
* This program is distributed WITHOUT ANY WARRANTY; without even the implied
|
||||
* warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. For
|
||||
* details, see the GNU AGPL at: http://www.gnu.org/licenses/agpl-3.0.html
|
||||
*
|
||||
* You can contact Ascensio System SIA at 20A-12 Ernesta Birznieka-Upisha
|
||||
* street, Riga, Latvia, EU, LV-1050.
|
||||
*
|
||||
* The interactive user interfaces in modified source and object code versions
|
||||
* of the Program must display Appropriate Legal Notices, as required under
|
||||
* Section 5 of the GNU AGPL version 3.
|
||||
*
|
||||
* Pursuant to Section 7(b) of the License you must retain the original Product
|
||||
* logo when distributing the program. Pursuant to Section 7(e) we decline to
|
||||
* grant you any rights under trademark law for use of our trademarks.
|
||||
*
|
||||
* All the Product's GUI elements, including illustrations and icon sets, as
|
||||
* well as technical writing content are licensed under the terms of the
|
||||
* Creative Commons Attribution-ShareAlike 4.0 International. See the License
|
||||
* terms at http://creativecommons.org/licenses/by-sa/4.0/legalcode
|
||||
*
|
||||
*/
|
||||
#pragma once
|
||||
|
||||
|
||||
#include "ColorIndex.h"
|
||||
#include "ColorStruct.h"
|
||||
#include "PointStruct.h"
|
||||
#include "WideColorStruct.h"
|
||||
#include "DateTimeStruct.h"
|
||||
#include "RatioStruct.h"
|
||||
#include "RectStruct.h"
|
||||
#include "SmallRectStruct.h"
|
||||
#include "ScalingStruct.h"
|
||||
#include "TmsfTimeStruct.h"
|
||||
@ -31,49 +31,11 @@
|
||||
*/
|
||||
#pragma once
|
||||
#include "Element.h"
|
||||
#include "../../../ASCOfficePPTFile/PPTFormatLib/Enums/_includer.h"
|
||||
|
||||
namespace PPT_FORMAT
|
||||
{
|
||||
enum eSlideSize
|
||||
{
|
||||
SS_Screen = 0,
|
||||
SS_LetterPaper = 1,
|
||||
SS_A4Paper = 2,
|
||||
SS_35mm = 3,
|
||||
SS_Overhead = 4,
|
||||
SS_Banner = 5,
|
||||
SS_Custom = 6
|
||||
};
|
||||
|
||||
enum ePlaceholderType
|
||||
{
|
||||
PT_None = 0,
|
||||
PT_MasterTitle = 1,
|
||||
PT_MasterBody = 2,
|
||||
PT_MasterCenterTitle = 3,
|
||||
PT_MasterSubTitle = 4,
|
||||
PT_MasterNotesSlideImage = 5,
|
||||
PT_MasterNotesBody = 6,
|
||||
PT_MasterDate = 7,
|
||||
PT_MasterSlideNumber = 8,
|
||||
PT_MasterFooter = 9,
|
||||
PT_MasterHeader = 10,
|
||||
PT_NotesSlideImage = 11,
|
||||
PT_NotesBody = 12,
|
||||
PT_Title = 13,
|
||||
PT_Body = 14,
|
||||
PT_CenterTitle = 15,
|
||||
PT_SubTitle = 16,
|
||||
PT_VerticalTitle = 17,
|
||||
PT_VerticalBody = 18,
|
||||
PT_Object = 19,
|
||||
PT_Graph = 20,
|
||||
PT_Table = 21,
|
||||
PT_ClipArt = 22,
|
||||
PT_OrgChart = 23,
|
||||
PT_Media = 24,
|
||||
PT_Body_Empty = 25
|
||||
};
|
||||
|
||||
enum Instances
|
||||
{
|
||||
@ -82,37 +44,7 @@ namespace PPT_FORMAT
|
||||
CollectionOfNotesSlides = 2
|
||||
};
|
||||
|
||||
enum eSlideLayoutType
|
||||
{
|
||||
SL_TitleSlide = 0,
|
||||
SL_TitleBody = 1,
|
||||
SL_MasterTitle = 2,
|
||||
SL_TitleOnly = 7,
|
||||
SL_TwoColumns = 8,
|
||||
SL_TwoRows = 9,
|
||||
SL_ColumnTwoRows = 10,
|
||||
SL_TwoRowsColumn = 11,
|
||||
SL_TwoColumnsRow = 13,
|
||||
SL_FourObjects = 14,
|
||||
SL_BigObject = 15,
|
||||
SL_Blank = 16,
|
||||
SL_VerticalTitleBody = 17,
|
||||
SL_VerticalTwoRows = 18
|
||||
};
|
||||
|
||||
enum eTextType
|
||||
{
|
||||
Tx_TYPE_TITLE = 0,
|
||||
Tx_TYPE_BODY = 1,
|
||||
Tx_TYPE_NOTES = 2,
|
||||
Tx_TYPE_OTHER = 4,
|
||||
Tx_TYPE_CENTERBODY = 5,
|
||||
Tx_TYPE_CENTERTITLE = 6,
|
||||
Tx_TYPE_HALFBODY = 7,
|
||||
Tx_TYPE_QUARTERBODY = 8,
|
||||
|
||||
NoPresent = 0xFF
|
||||
};
|
||||
static void CorrectPlaceholderType(int & type)
|
||||
{
|
||||
switch (type)
|
||||
|
||||
Reference in New Issue
Block a user