Commit 9eb5b1fe authored by Oleg.Korshul's avatar Oleg.Korshul Committed by Alexander Trofimov

git-svn-id:...

git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@52601 954022d7-b5bf-4e40-9824-e11837661b57
parent 67dddee4
......@@ -79,15 +79,6 @@ ASCOfficeOdpFile/Odp2DrawingXML/Release
ASCOfficeOdtFile/Projects/*
ASCOfficePPTXFile/*.suo
ASCOfficePPTXFile/Debug
ASCOfficePPTXFile/PPTX2DrawingXML/Debug
ASCOfficePPTXFile/PPTX2DrawingXML/Release
ASCOfficePPTXFile/PPTX2OfficeDrawing/Debug
ASCOfficePPTXFile/PPTXFormat/!_
ASCOfficePPTXFile/PPTXFormat/_
ASCOfficePPTXFile/PPTXLib/PPTXFormat/*.suo
ASCOfficePPTXFile/PPTXLib/PPTXFormat/PPTXFormat/Debug
ASCOfficePPTXFile/PPTXLib/PPTXFormat/PPTXFormat/Release
ASCOfficePPTXFile/PPTXLib/PPTXFormat/debug
ASCOfficePPTXFile/PPTXLib/Source/!_
ASCOfficePPTXFile/PPTXLib/Source/_
ASCOfficePPTXFile/Release
#pragma once
#include "../stdafx.h"
#include "Structures.h"
#include "../PPTXFormat/Logic/Colors/SrgbClr.h"
#include "../PPTXFormat/Logic/Colors/PrstClr.h"
#include "../PPTXFormat/Logic/Colors/SchemeClr.h"
#include "../PPTXFormat/Logic/Colors/SysClr.h"
#include "PathHelpers.h"
namespace PPTX2EditorAdvanced
{
AVSINLINE LONG GetColorIndexFromStr(const CString& str)
{
if (str == _T("phClr")) return 0;
if (str == _T("bg1")) return 1;
if (str == _T("tx1")) return 2;
if (str == _T("bg2")) return 3;
if (str == _T("tx2")) return 4;
if (str == _T("accent1")) return 5;
if (str == _T("accent2")) return 6;
if (str == _T("accent3")) return 7;
if (str == _T("accent4")) return 8;
if (str == _T("accent5")) return 9;
if (str == _T("accent6")) return 10;
if (str == _T("hlink")) return 11;
if (str == _T("folHlink")) return 12;
if (str == _T("lt1")) return 13;
if (str == _T("dk1")) return 14;
if (str == _T("lt2")) return 15;
if (str == _T("dk2")) return 16;
return 0;
}
void ColorConvert(const PPTX::Logic::UniColor& Source, NSPresentationEditor::CColor& Dest, DWORD BGRA)
{
if(Source.is<PPTX::Logic::SchemeClr>())
{
Dest = Source.GetBGRA(BGRA);
Dest.m_lSchemeIndex = GetColorIndexFromStr(Source.as<PPTX::Logic::SchemeClr>().val.get());
if (0 == Dest.m_lSchemeIndex)
Dest.m_lSchemeIndex = -1;
return;
}
Dest = Source.GetBGRA(BGRA);
}
}
\ No newline at end of file
#pragma once
#include "../stdafx.h"
#include "../PPTXFormat/PPTX.h"
#include "SlideConvert.h"
#ifdef _DEBUG
#define __AVS_PRESENTATION_EXTRACT__ 1
#else
#define __AVS_PRESENTATION_EXTRACT__ 0
#endif
namespace PPTX2EditorAdvanced
{
DWORD Convert(PPTX::Folder& oFolder, NSPresentationEditor::CDocument& lDocument, CString& strDir)
{
CPresentationInfo oPresentation;
oPresentation.m_strDirectory = strDir;
double dDuration = 0.0;
smart_ptr<PPTX::Presentation> presentation = oFolder.get(OOX::FileTypes::Presentation).smart_dynamic_cast<PPTX::Presentation>();
int cx = presentation->sldSz->cx;
int cy = presentation->sldSz->cy;
lDocument.m_oInfo.m_lUnitsHor = cx;
lDocument.m_oInfo.m_lUnitsVer = cy;
lDocument.m_oInfo.m_lMillimetresHor = cx/36000;
lDocument.m_oInfo.m_lMillimetresVer = cy/36000;
if (/*__AVS_PRESENTATION_EXTRACT__*/true)
{
//
size_t nCountMasters = presentation->sldMasterIdLst.GetCount();
for (size_t iTheme = 0; iTheme < nCountMasters; ++iTheme)
{
smart_ptr<PPTX::SlideMaster> slideMaster = ((*presentation)[presentation->sldMasterIdLst[iTheme].rid.get()]).smart_dynamic_cast<PPTX::SlideMaster>();
ThemeConvert(slideMaster, oPresentation);
size_t nCountLayouts = slideMaster->sldLayoutIdLst.GetCount();
for (size_t iLayout = 0; iLayout < nCountLayouts; ++iLayout)
{
smart_ptr<PPTX::SlideLayout> slideLayout = ((*slideMaster)[slideMaster->sldLayoutIdLst[iLayout].rid.get()]).smart_dynamic_cast<PPTX::SlideLayout>();
LayoutConvert(slideLayout, oPresentation);
}
}
}
DWORD sld = 0;
size_t nCount = presentation->sldIdLst.GetCount();
for (size_t i = 0; i < nCount; ++i)
{
smart_ptr<PPTX::Slide> slide = ((*presentation)[presentation->sldIdLst[i].rid.get()]).smart_dynamic_cast<PPTX::Slide>();
SlideConvert(slide, sld, &dDuration, cx, cy, lDocument, oPresentation);
}
size_t nCountThemes = oPresentation.m_arThemes.GetCount();
for (size_t i = 0; i < nCountThemes; ++i)
{
lDocument.m_arThemes.Add(oPresentation.m_arThemes[i]->m_oTheme);
}
lDocument.CalculateEditor(lDocument.m_oInfo);
return 0;
}
DWORD ConvertToVS(PPTX::Folder& oFolder, CString& xml, CString& strDir)
{
NSPresentationEditor::CDocument oDocument;
Convert(oFolder, oDocument, strDir);
xml = oDocument.ToXmlVideoSource2();
return (DWORD)xml.GetLength();
}
DWORD ConvertToEditor(PPTX::Folder& oFolder, CString& xml, CString& strDir)
{
NSPresentationEditor::CDocument oDocument;
Convert(oFolder, oDocument, strDir);
xml = oDocument.ToXmlEditor2();
return (DWORD)xml.GetLength();
}
}
#pragma once
#include "ColorConvert.h"
#include "../PPTXFormat/Logic/Fills/SolidFill.h"
#include "../PPTXFormat/Logic/Fills/NoFill.h"
#include "../PPTXFormat/Logic/Fills/BlipFill.h"
#include "../PPTXFormat/Logic/Fills/GradFill.h"
#include "../PPTXFormat/Logic/Fills/PattFill.h"
//0 -
//255 -
namespace PPTX2EditorAdvanced
{
void FillToBrush(const PPTX::Logic::UniFill& Fill, DWORD BGRA, NSPresentationEditor::CBrush& Brush)
{
if(Fill.is_init())
{
if(Fill.is<PPTX::Logic::NoFill>())
{
Brush.Alpha1 = 0;
Brush.Alpha2 = 0;
}
else if(Fill.is<PPTX::Logic::SolidFill>())
{
const PPTX::Logic::SolidFill& oSolid = Fill.as<PPTX::Logic::SolidFill>();
Brush.Type = (int)NSPresentationEditor::c_BrushTypeSolid;
ColorConvert(oSolid.Color, Brush.Color1, BGRA);
Brush.Color2 = Brush.Color1;
//Brush.Color1 = oSolid.Color.GetBGRA(BGRA);
//Brush.Color2 = oSolid.Color.GetBGRA(BGRA);
Brush.Alpha1 = Brush.Alpha2 = Brush.Color1.A;
}
else if(Fill.is<PPTX::Logic::BlipFill>())
{
const PPTX::Logic::BlipFill& oTexture = Fill.as<PPTX::Logic::BlipFill>();
Brush.Type = (int)NSPresentationEditor::c_BrushTypeTexture;
Brush.TexturePath = oTexture.blip->GetFullPicName();
Brush.TextureMode = oTexture.tile.is_init()?(int)NSPresentationEditor::c_BrushTextureModeTile:(int)NSPresentationEditor::c_BrushTextureModeStretch;
//if(oTexture.srcRect.is_init())
//{
// Brush.m_rcBounds.top =
// Brush.m_rcBounds.left =
// Brush.m_rcBounds.rigth =
// Brush.m_rcBounds.bottom =
//}
}
else if(Fill.is<PPTX::Logic::PattFill>())
{
const PPTX::Logic::PattFill& oPatt = Fill.as<PPTX::Logic::PattFill>();
Brush.Type = GetPattFillValFromStr(Fill.as<PPTX::Logic::PattFill>().prst.get_value_or(_T("horz")));
Brush.Color1 = oPatt.fgClr.GetBGRA(BGRA);
Brush.Color2 = oPatt.bgClr.GetBGRA(BGRA);
Brush.Alpha1 = Brush.Color1.A;
Brush.Alpha2 = Brush.Color2.A;
}
else if(Fill.is<PPTX::Logic::GradFill>())
{
const PPTX::Logic::GradFill& GradFill = Fill.as<PPTX::Logic::GradFill>();
if (GradFill.path.is_init())
{
if (GradFill.path->path.get_value_or(_T("")) == _T("rect"))
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeCenter;
}
else if (GradFill.path->path.get_value_or(_T("")) == _T("circle"))
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeCylinderHor;
}
else Brush.Type = (int)NSPresentationEditor::c_BrushTypeCenter;
size_t nCount = GradFill.GsLst.GetCount();
if (0 == nCount)
{
Brush.Color1 = 0xFF;
Brush.Color2 = 0xFF;
}
else
{
Brush.Color2 = GradFill.GsLst[0].color.GetBGRA(BGRA);
Brush.Color1 = GradFill.GsLst[nCount - 1].color.GetBGRA(BGRA);
}
}
else
{
int ang = 5400000;
if (GradFill.lin.is_init())
{
ang = GradFill.lin->ang.get_value_or(5400000);
}
if(ang <= 1800000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeHorizontal;
}
else if(ang < 3600000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeDiagonal1;
}
else if(ang < 7200000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeVertical;
}
else if(ang < 9000000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeDiagonal2;
}
else if(ang < 12600000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeHorizontal;
}
else if(ang < 14400000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeDiagonal1;
}
else if(ang < 18000000)
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeVertical;
}
else
{
Brush.Type = (int)NSPresentationEditor::c_BrushTypeDiagonal2;
}
size_t nCount = GradFill.GsLst.GetCount();
if (0 == nCount)
{
Brush.Color1 = 0xFF;
Brush.Color2 = 0xFF;
}
else
{
Brush.Color1 = GradFill.GsLst[0].color.GetBGRA(BGRA);
Brush.Color2 = GradFill.GsLst[nCount - 1].color.GetBGRA(BGRA);
}
}
Brush.Alpha1 = Brush.Color1.A;
Brush.Alpha2 = Brush.Color2.A;
}
}
else
{
Brush.Alpha1 = 0;
Brush.Alpha2 = 0;
}
}
}
\ No newline at end of file
#pragma once
#include "../stdafx.h"
#include "ShapeConvert.h"
namespace PPTX2EditorAdvanced
{
LONG LayoutConvert(smart_ptr<PPTX::SlideLayout>& Layout, CPresentationInfo& oPresentation)
{
if (!Layout.IsInit())
return -1;
LONG lIndexTheme = oPresentation.GetIndexTheme(Layout->Master);
if (-1 == lIndexTheme)
{
//
return -1;
}
CPresentationInfo::CThemeInfo* pThemeInfo = oPresentation.m_arThemes[lIndexTheme];
LONG lIndexLayout = pThemeInfo->GetIndexLayout(Layout);
if (-1 != lIndexLayout)
{
//
return lIndexLayout;
}
NSPresentationEditor::CLayout* pLayout = pThemeInfo->AddLayout(Layout);
if (Layout->attrType.is_init())
pLayout->m_strLayoutType = Layout->attrType->get();
else
pLayout->m_strLayoutType = _T("title");
pLayout->m_bShowMasterShapes = true;
if (Layout->showMasterSp.is_init())
pLayout->m_bShowMasterShapes = Layout->showMasterSp.get();
// background
if(Layout->cSld.bg.is_init())
{
pLayout->m_bIsBackground = true;
PPTX::Logic::BgPr bg;
DWORD ARGB = 0;
Layout->cSld.bg->GetBackground(bg, ARGB);
DWORD BGRA = (ARGB & 0xFF) << 24;
BGRA += (ARGB & 0xFF00) << 8;
BGRA += (ARGB & 0xFF0000) >> 8;
BGRA += (ARGB & 0xFF000000) >> 24;
FillToBrush(bg.Fill, BGRA, pLayout->m_oBackground);
}
// colorscheme
if (Layout->clrMapOvr.is_init())
{
if (Layout->clrMapOvr->overrideClrMapping.is_init())
{
pLayout->m_bUseThemeColorScheme = false;
NSPresentationEditor::CColor lColor;
lColor.m_lSchemeIndex = 0;
pLayout->m_arColorScheme.Add(lColor);//phClr
lColor.m_lSchemeIndex = -1;
lColor = Layout->GetBGRAFromMap(_T("bg1"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("tx1"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("bg2"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("tx2"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent1"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent2"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent3"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent4"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent5"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("accent6"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("hlink"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("folHlink"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("lt1"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("dk1"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("lt2"));
pLayout->m_arColorScheme.Add(lColor);
lColor = Layout->GetBGRAFromMap(_T("dk2"));
pLayout->m_arColorScheme.Add(lColor);
}
}
// elements
GroupConvert(Layout->cSld.spTree, pLayout->m_arElements, oPresentation, &pThemeInfo->m_oTheme);
return (LONG)(pThemeInfo->m_oTheme.m_arLayouts.GetCount() - 1);
}
}
\ No newline at end of file
#pragma once
#include "ColorConvert.h"
#include "../PPTXFormat/Logic/Fills/SolidFill.h"
#include "../PPTXFormat/Logic/Fills/NoFill.h"
#include "../PPTXFormat/Logic/Fills/GradFill.h"
#include "../PPTXFormat/Logic/Fills/PattFill.h"
//0 -
//255 -
namespace PPTX2EditorAdvanced
{
AVSINLINE BYTE GetLineEndType(const CString& str)
{
if (str == _T("none")) return 0x10;
if (str == _T("diamond")) return 0x13;
if (str == _T("oval")) return 0x12;
if (str == _T("triangle")) return 0x14;
if (str == _T("arrow")) return 0x14;
if (str == _T("stealth")) return 0x14;
return 0x10;
}
AVSINLINE BYTE GetLineJoinType(const PPTX::Logic::eJoin join)
{
if (join == PPTX::Logic::JoinEmpty) return 0;
if (join == PPTX::Logic::JoinMiter) return 0;
if (join == PPTX::Logic::JoinBevel) return 1;
if (join == PPTX::Logic::JoinRound) return 2;
return 0;
}
AVSINLINE BYTE GetDashStyle(const CString& str)
{
if (str == _T("solid")) return 0;
if (str == _T("dash")) return 1;
if (str == _T("dot")) return 2;
if (str == _T("dashDot")) return 3;
if (str == _T("lgDash")) return 1;
if (str == _T("lgDashDot")) return 3;
if (str == _T("lgDashDotDot")) return 4;
if (str == _T("sysDash")) return 1;
if (str == _T("sysDot")) return 2;
if (str == _T("sysDashDot")) return 3;
if (str == _T("sysDashDotDot")) return 4;
return 0;
}
void LnToPen(const PPTX::Logic::Ln& Line, DWORD BGRA, NSPresentationEditor::CPen& Pen)
{
if(!Line.Fill.is_init())
Pen.Alpha = 0;
else if(Line.Fill.is<PPTX::Logic::NoFill>())
Pen.Alpha = 0;
else if(Line.Fill.is<PPTX::Logic::SolidFill>())
{
ColorConvert(Line.Fill.as<PPTX::Logic::SolidFill>().Color, Pen.Color, BGRA);
//Pen.Color = Line.Fill.as<PPTX::Logic::SolidFill>().Color.GetBGRA(BGRA);
Pen.Alpha = Pen.Color.A;
}
Pen.Size = Line.w.get_value_or(12700)/36000.0;
if(Line.prstDash.is_init())
Pen.DashStyle = GetDashStyle(Line.prstDash->val.get_value_or(_T("solid")));
if(Line.headEnd.is_init())
Pen.LineStartCap = GetLineEndType(Line.headEnd->type.get_value_or(_T("none")));
if(Line.tailEnd.is_init())
Pen.LineEndCap = GetLineEndType(Line.tailEnd->type.get_value_or(_T("none")));
Pen.LineJoin = GetLineJoinType(Line.Join.type);
}
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
#pragma once
#include "../stdafx.h"
#include "Structures.h"
#include "../PPTXFormat/Logic/Tab.h"
namespace PPTX2EditorAdvanced
{
void RunPropertiesConvert(const PPTX::Logic::RunProperties& pRunProps, NSPresentationEditor::CTextCFRun& pCFRun, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
if (pRunProps.b.is_init())
{
if (pRunProps.b.get())
pCFRun.FontBold = TRUE;
else
pCFRun.FontBold = FALSE;
}
if (pRunProps.i.is_init())
{
if (pRunProps.i.get())
pCFRun.FontItalic = TRUE;
else
pCFRun.FontItalic = FALSE;
}
if (pRunProps.u.is_init())
{
if (_T("none") != pRunProps.u->get())
pCFRun.FontUnderline = TRUE;
else
pCFRun.FontUnderline = FALSE;
}
if (pRunProps.strike.is_init())
{
if (_T("noStrike") != pRunProps.strike->get())
pCFRun.FontStrikeout = TRUE;
else
pCFRun.FontStrikeout = FALSE;
}
if (pRunProps.baseline.is_init())
{
pCFRun.BaseLineOffset = (double)pRunProps.baseline.get() / 1000.0;//(baseline / 100000.0) * CFRun.fontSize * (25.4 / 72);
}
if (pRunProps.latin.is_init())
{
CString strTypeface = pRunProps.latin->typeface;
pCFRun.FontProperties = new CFontProperties();
if (strTypeface == _T("+mj-lt"))
{
strTypeface = arFonts[0].Name;
pCFRun.Typeface = (WORD)0;
}
else if (strTypeface == _T("+mn-lt"))
{
strTypeface = arFonts[1].Name;
pCFRun.Typeface = (WORD)1;
}
else if (strTypeface == _T(""))
{
strTypeface = arFonts[1].Name;
pCFRun.Typeface = (WORD)1;
}
else
{
pCFRun.FontProperties->strFontName = strTypeface;
if (pRunProps.latin->panose.is_init())
{
pCFRun.FontProperties->strPanose = pRunProps.latin->panose.get();
}
}
}
if (pRunProps.Fill.is_init())
{
PPTX::Logic::UniColor oColor = pRunProps.GetColor();
pCFRun.Color = new NSPresentationEditor::CColor();
pCFRun.Color.get() = oColor.GetBGRA();
if(oColor.is<PPTX::Logic::SchemeClr>())
{
pCFRun.Color->m_lSchemeIndex = GetColorIndexFromStr(oColor.as<PPTX::Logic::SchemeClr>().val.get());
}
}
if (pRunProps.cap.is_init())
{
CString str = pRunProps.cap->get();
if (_T("all") == str)
pCFRun.Cap = (WORD)1;
else if (_T("small") == str)
pCFRun.Cap = (WORD)2;
else
pCFRun.Cap = (WORD)0;
}
if (pRunProps.sz.is_init())
{
pCFRun.Size = (WORD)((pRunProps.sz.get() + 50) / 100);
}
return;
}
void RunPropertiesConvert(const nullable<PPTX::Logic::RunProperties>& pRunProps, NSPresentationEditor::CTextCFRun& pCFRun, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
if(pRunProps.is_init())
RunPropertiesConvert(*pRunProps, pCFRun, arFonts);
}
void ParagraphPropertiesConvert(const PPTX::Logic::TextParagraphPr& pptxStyle, NSPresentationEditor::CTextPFRun& pStyleLevel, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
if (pptxStyle.lnSpc.is_init())
{
int space = pptxStyle.lnSpc->GetVal();
if(space < 0)
pStyleLevel.lineSpacing = (LONG)(space * 127);
else
pStyleLevel.lineSpacing = (LONG)space;
}
if (pptxStyle.spcBef.is_init())
{
int space = pptxStyle.spcBef->GetVal();
if(space < 0)
pStyleLevel.spaceBefore = (LONG)(space * 127);
else
pStyleLevel.spaceBefore = (LONG)space;
}
if (pptxStyle.spcAft.is_init())
{
int space = pptxStyle.spcAft->GetVal();
if(space < 0)
pStyleLevel.spaceAfter = (LONG)(space * 127);
else
pStyleLevel.spaceAfter = (LONG)space;
}
if (pptxStyle.defTabSz.is_init())
pStyleLevel.defaultTabSize = (LONG)(pptxStyle.defTabSz.get_value_or(376300));
if (pptxStyle.marL.is_init())
pStyleLevel.leftMargin = (LONG)(pptxStyle.marL.get_value_or(0));
if (pptxStyle.indent.is_init())
pStyleLevel.indent = (LONG)(pptxStyle.indent.get_value_or(0));
if (pptxStyle.algn.is_init())
pStyleLevel.textAlignment = (WORD)(GetTextAlignFromStr(pptxStyle.algn.get_value_or(_T("l"))));
if (pptxStyle.rtl.is_init())
pStyleLevel.textDirection = (WORD)((pptxStyle.rtl.get_value_or(false))?1:0);
if (pptxStyle.fontAlgn.is_init())
pStyleLevel.fontAlign = (WORD)GetFontAlignFromStr(pptxStyle.fontAlgn->get());
int defTab = pptxStyle.defTabSz.get_value_or(376300);
size_t nCountTabs = pptxStyle.tabLst.GetCount();
for (size_t i = 0; i < nCountTabs; ++i)
{
pStyleLevel.tabStops.Add((DWORD)(pptxStyle.tabLst[i].pos.get_value_or(defTab)));
}
if (pptxStyle.ParagraphBullet.is_init())
{
pStyleLevel.hasBullet = (BOOL)pptxStyle.ParagraphBullet.has_bullet();
}
if (pptxStyle.buColor.is_init())
{
if (pptxStyle.buColor.is<PPTX::Logic::BuClr>())
{
PPTX::Logic::UniColor oBulletColor = pptxStyle.buColor.as<PPTX::Logic::BuClr>().Color;
pStyleLevel.bulletColor = new CColor();
pStyleLevel.bulletColor.get() = oBulletColor.GetBGRA();
if (oBulletColor.is<PPTX::Logic::SchemeClr>())
{
pStyleLevel.bulletColor->m_lSchemeIndex = GetColorIndexFromStr(oBulletColor.as<PPTX::Logic::SchemeClr>().val.get());
}
}
}
}
void ParagraphPropertiesConvert(const nullable<PPTX::Logic::TextParagraphPr>& pptxStyle, NSPresentationEditor::CTextPFRun& pStyleLevel, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
if (pptxStyle.is_init())
ParagraphPropertiesConvert(*pptxStyle, pStyleLevel, arFonts);
}
void TextStyleLevelConvert(const PPTX::Logic::TextParagraphPr& pptxStyle, NSPresentationEditor::CTextStyleLevel& pStyleLevel, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
ParagraphPropertiesConvert(pptxStyle, pStyleLevel.m_oPFRun, arFonts);
if (pptxStyle.defRPr.is_init())
RunPropertiesConvert(pptxStyle.defRPr.get(), pStyleLevel.m_oCFRun, arFonts);
}
void TextStyleConvert(const PPTX::Logic::TextListStyle& pptxStyle, NSPresentationEditor::CTextStyles& pStyle, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
for (int i = 0; i < 10; i++)
{
if (pptxStyle.levels[i].is_init())
{
if (!pStyle.m_pLevels[i].is_init())
{
pStyle.m_pLevels[i] = new NSPresentationEditor::CTextStyleLevel();
}
TextStyleLevelConvert(pptxStyle.levels[i].get(), pStyle.m_pLevels[i].get(), arFonts);
}
}
}
void TextStyleConvert(const nullable<PPTX::Logic::TextParagraphPr>* pStyles, NSPresentationEditor::CTextStyles& pStyle, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
for (int i = 0; i < 10; i++)
{
if (pStyles[i].is_init())
{
if (!pStyle.m_pLevels[i].is_init())
{
pStyle.m_pLevels[i] = new NSPresentationEditor::CTextStyleLevel();
}
TextStyleLevelConvert(pStyles[i].get(), pStyle.m_pLevels[i].get(), arFonts);
}
}
}
void TextStyleConvert(const nullable<PPTX::Logic::TextListStyle>& pptxStyle, NSPresentationEditor::CTextStyles& pStyle, CAtlArray<NSPresentationEditor::CFont>& arFonts)
{
if (pptxStyle.is_init())
TextStyleConvert(pptxStyle.get(), pStyle, arFonts);
}
void CreateDefaultStyle(NSPresentationEditor::CTextStyles& pStyle, NSPresentationEditor::CTheme* pTheme)
{
for (int i = 0; i < 10; ++i)
{
if (!pStyle.m_pLevels[i].is_init())
pStyle.m_pLevels[i] = new NSPresentationEditor::CTextStyleLevel();
NSPresentationEditor::CTextPFRun* pPF = &pStyle.m_pLevels[i]->m_oPFRun;
NSPresentationEditor::CTextCFRun* pCF = &pStyle.m_pLevels[i]->m_oCFRun;
pPF->textAlignment = (WORD)0;
pPF->leftMargin = (LONG)0;
pPF->indent = (LONG)0;
pPF->defaultTabSize = 376300;
pPF->fontAlign = (WORD)0;
pPF->wrapFlags = (WORD)0x02;
pPF->textDirection = (WORD)0;
pPF->lineSpacing = (LONG)100;
pPF->spaceBefore = (LONG)0;
pPF->spaceAfter = (LONG)0;
pCF->FontBold = FALSE;
pCF->FontItalic = FALSE;
pCF->FontUnderline = FALSE;
pCF->FontStrikeout = FALSE;
pCF->Size = 18;
pCF->BaseLineOffset = (double)0;
pCF->Cap = (WORD)0;
pCF->FontProperties = new NSPresentationEditor::CFontProperties();
pCF->FontProperties->SetFont(pTheme->m_arFonts[0]);
pCF->Color = new NSPresentationEditor::CColor();
}
}
}
\ No newline at end of file
#pragma once
#include "../stdafx.h"
#include "TextStyleConvert.h"
#include "ShapeConvert.h"
namespace PPTX2EditorAdvanced
{
LONG ThemeConvert(smart_ptr<PPTX::SlideMaster>& Master, CPresentationInfo& oPresentation)
{
if (!Master.IsInit())
return -1;
LONG lIndex = oPresentation.GetIndexTheme(Master);
if (-1 != lIndex)
{
// -
return lIndex;
}
CPresentationInfo::CThemeInfo* pThemeInfo = oPresentation.AddTheme(Master);
NSPresentationEditor::CTheme* pTheme = &pThemeInfo->m_oTheme;
// background
if(Master->cSld.bg.is_init())
{
pTheme->m_bIsBackground = true;
PPTX::Logic::BgPr bg;
DWORD ARGB = 0;
Master->cSld.bg->GetBackground(bg, ARGB);
DWORD BGRA = (ARGB & 0xFF) << 24;
BGRA += (ARGB & 0xFF00) << 8;
BGRA += (ARGB & 0xFF0000) >> 8;
BGRA += (ARGB & 0xFF000000) >> 24;
FillToBrush(bg.Fill, BGRA, pTheme->m_oBackground);
}
// brushes
if (FALSE)
{
size_t nCount = Master->Theme->themeElements.fmtScheme.fillStyleLst.GetCount();
for (size_t i = 0; i < nCount; ++i)
{
NSPresentationEditor::CBrush lBrush;
FillToBrush(Master->Theme->themeElements.fmtScheme.fillStyleLst[i], 0, lBrush);
pTheme->m_arBrushes.Add(lBrush);
}
}
// pen
if (FALSE)
{
size_t nCount = Master->Theme->themeElements.fmtScheme.lnStyleLst.GetCount();
for (size_t i = 0; i < nCount; ++i)
{
NSPresentationEditor::CPen lPen;
LnToPen(Master->Theme->themeElements.fmtScheme.lnStyleLst[i], 0, lPen);
pTheme->m_arPens.Add(lPen);
}
}
// colorscheme
NSPresentationEditor::CColor lColor;
lColor.m_lSchemeIndex = 0;
pTheme->m_arColorScheme.Add(lColor);//phClr
lColor.m_lSchemeIndex = -1;
lColor = Master->GetBGRAFromMap(_T("bg1"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("tx1"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("bg2"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("tx2"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent1"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent2"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent3"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent4"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent5"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("accent6"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("hlink"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("folHlink"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("lt1"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("dk1"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("lt2"));
pTheme->m_arColorScheme.Add(lColor);
lColor = Master->GetBGRAFromMap(_T("dk2"));
pTheme->m_arColorScheme.Add(lColor);
// fonts
NSPresentationEditor::CFont lFont;
lFont.Name = Master->Theme->themeElements.fontScheme.majorFont.latin.typeface;
pTheme->m_arFonts.Add(lFont);
lFont.Name = Master->Theme->themeElements.fontScheme.minorFont.latin.typeface;
pTheme->m_arFonts.Add(lFont);
lFont.Name = Master->Theme->themeElements.fontScheme.majorFont.ea.typeface;
pTheme->m_arFonts.Add(lFont);
lFont.Name = Master->Theme->themeElements.fontScheme.minorFont.ea.typeface;
pTheme->m_arFonts.Add(lFont);
lFont.Name = Master->Theme->themeElements.fontScheme.majorFont.cs.typeface;
pTheme->m_arFonts.Add(lFont);
lFont.Name = Master->Theme->themeElements.fontScheme.minorFont.cs.typeface;
pTheme->m_arFonts.Add(lFont);
// textstyles
NSPresentationEditor::CTextStyles lPPTXDefault;
CreateDefaultStyle(lPPTXDefault, pTheme);
NSPresentationEditor::CTextStyles lNoPlaceHoldersStyles;
NSPresentationEditor::CTextStyles lDefaultStyles;
if (Master->Theme.is_init() && Master->Theme->Presentation.is_init())
{
TextStyleConvert(Master->Theme->Presentation->defaultTextStyle, lDefaultStyles, pTheme->m_arFonts);
}
// default
if (Master->txStyles.is_init())
{
TextStyleConvert(Master->txStyles->otherStyle, lNoPlaceHoldersStyles, pTheme->m_arFonts);
lNoPlaceHoldersStyles.ApplyAfter(lDefaultStyles);
}
pTheme->m_pStyles[1] = lDefaultStyles;
pTheme->m_pStyles[2] = lDefaultStyles;
pTheme->m_pStyles[3] = lDefaultStyles;
if (Master->txStyles.is_init())
{
NSPresentationEditor::CTextStyles lTitleStyle;
NSPresentationEditor::CTextStyles lBodyStyle;
NSPresentationEditor::CTextStyles lOtherStyle;
TextStyleConvert(Master->txStyles->titleStyle, lTitleStyle, pTheme->m_arFonts);
TextStyleConvert(Master->txStyles->bodyStyle, lBodyStyle, pTheme->m_arFonts);
TextStyleConvert(Master->txStyles->otherStyle, lOtherStyle, pTheme->m_arFonts);
pTheme->m_pStyles[1].ApplyAfter(lTitleStyle);
pTheme->m_pStyles[2].ApplyAfter(lBodyStyle);
pTheme->m_pStyles[3].ApplyAfter(lOtherStyle);
}
pTheme->m_pStyles[0] = lNoPlaceHoldersStyles;
pTheme->m_pStyles[0].ApplyBefore(lPPTXDefault);
pTheme->m_pStyles[1].ApplyBefore(lPPTXDefault);
pTheme->m_pStyles[2].ApplyBefore(lPPTXDefault);
pTheme->m_pStyles[3].ApplyBefore(lPPTXDefault);
// elements
AddNonPlaceholders(Master->cSld.spTree, pTheme->m_arElements, oPresentation, pTheme);
return (LONG)(oPresentation.m_arThemes.GetCount() - 1);
}
}
\ No newline at end of file
This diff is collapsed.
#pragma once
#include "Structures.h"
#include "../PPTXFormat/Logic/Transitions/EmptyTransition.h"
#include "../PPTXFormat/Logic/Transitions/OrientationTransition.h"
#include "../PPTXFormat/Logic/Transitions/EightDirectionTransition.h"
#include "../PPTXFormat/Logic/Transitions/OptionalBlackTransition.h"
#include "../PPTXFormat/Logic/Transitions/SideDirectionTransition.h"
#include "../PPTXFormat/Logic/Transitions/CornerDirectionTransition.h"
#include "../PPTXFormat/Logic/Transitions/WheelTransition.h"
#include "../PPTXFormat/Logic/Transitions/SplitTransition.h"
#include "../PPTXFormat/Logic/Transitions/ZoomTransition.h"
namespace PPTX2EditorAdvanced
{
AVSINLINE DWORD GetTransitionSpeedFromStr(const CString& str)
{
if (str == _T("fast")) return 250;//2;
if (str == _T("med")) return 500;//1;
if (str == _T("slow")) return 750;//0;
return 250;//2;
}
inline int SetupTransition (const DWORD SldNum, const smart_ptr<PPTX::Slide> oSlide, NSPresentationEditor::CDocument& pDocument, double& ChangeTime)
{
NSPresentationEditor::CTransition oTransition;
oTransition.m_nEffectType = 255;
const PPTX::Logic::Transition pTransition = oSlide->transition.get();
if(pTransition.base.is<PPTX::Logic::EmptyTransition>())
{
const CString name = pTransition.base.as<PPTX::Logic::EmptyTransition>().name;
if(name == _T("random"))
oTransition.m_nEffectType = 1;
else if(name == _T("circle"))
{
oTransition.m_nEffectType = 27;
oTransition.m_nEffectDirection = 0;
}
else if(name == _T("dissolve"))
{
oTransition.m_nEffectType = 5;
oTransition.m_nEffectDirection = 0;
}
else if(name == _T("diamond"))
{
oTransition.m_nEffectType = 17;
oTransition.m_nEffectDirection = 0;
}
else if(name == _T("newsflash"))
{
oTransition.m_nEffectType = 22;
oTransition.m_nEffectDirection = 0;
}
else if(name == _T("plus"))
{
oTransition.m_nEffectType = 18;
oTransition.m_nEffectDirection = 0;
}
else if(name == _T("wedge"))
{
oTransition.m_nEffectType = 19;
oTransition.m_nEffectDirection = 0;
}
}
else if(pTransition.base.is<PPTX::Logic::OrientationTransition>())
{
PPTX::Logic::OrientationTransition trans = pTransition.base.as<PPTX::Logic::OrientationTransition>();
const CString name = trans.name;
const CString dir = trans.dir.get_value_or(_T("horz"));
if (name == _T("blinds"))
oTransition.m_nEffectType = 2;
else if (name == _T("checker"))
oTransition.m_nEffectType = 3;
else if (name == _T("comb"))
oTransition.m_nEffectType = 21;
else if (name == _T("randomBar"))
oTransition.m_nEffectType = 8;
if (dir == _T("horz"))
oTransition.m_nEffectDirection = 0;
else if (dir == _T("vert"))
oTransition.m_nEffectDirection = 1;
}
else if(pTransition.base.is<PPTX::Logic::SideDirectionTransition>())
{
PPTX::Logic::SideDirectionTransition trans = pTransition.base.as<PPTX::Logic::SideDirectionTransition>();
const CString name = trans.name;
const CString dir = trans.dir.get_value_or(_T("l"));
if (name == _T("push"))
oTransition.m_nEffectType = 20;
else if (name == _T("wipe"))
oTransition.m_nEffectType = 10;
if (dir == _T("l"))
oTransition.m_nEffectDirection = 0;
else if (dir == _T("u"))
oTransition.m_nEffectDirection = 1;
else if (dir == _T("r"))
oTransition.m_nEffectDirection = 2;
else if (dir == _T("d"))
oTransition.m_nEffectDirection = 3;
}
else if(pTransition.base.is<PPTX::Logic::EightDirectionTransition>())
{
PPTX::Logic::EightDirectionTransition trans = pTransition.base.as<PPTX::Logic::EightDirectionTransition>();
const CString name = trans.name;
const CString dir = trans.dir.get_value_or(_T("l"));
if (name == _T("cover"))
oTransition.m_nEffectType = 4;
else if (name == _T("pull"))
oTransition.m_nEffectType = 7;
if (dir == _T("l"))
oTransition.m_nEffectDirection = 0;
else if (dir == _T("u"))
oTransition.m_nEffectDirection = 1;
else if (dir == _T("r"))
oTransition.m_nEffectDirection = 2;
else if (dir == _T("d"))
oTransition.m_nEffectDirection = 3;
else if (dir == _T("lu"))
oTransition.m_nEffectDirection = 4;
else if (dir == _T("ru"))
oTransition.m_nEffectDirection = 5;
else if (dir == _T("ld"))
oTransition.m_nEffectDirection = 6;
else if (dir == _T("rd"))
oTransition.m_nEffectDirection = 7;
}
else if(pTransition.base.is<PPTX::Logic::CornerDirectionTransition>())
{
PPTX::Logic::CornerDirectionTransition trans = pTransition.base.as<PPTX::Logic::CornerDirectionTransition>();
const CString name = trans.name;
const CString dir = trans.dir.get_value_or(_T("lu"));
if (name == _T("strips"))
oTransition.m_nEffectType = 9;
if (dir == _T("lu"))
oTransition.m_nEffectDirection = 4;
else if (dir == _T("ru"))
oTransition.m_nEffectDirection = 5;
else if (dir == _T("ld"))
oTransition.m_nEffectDirection = 6;
else if (dir == _T("rd"))
oTransition.m_nEffectDirection = 7;
}
else if(pTransition.base.is<PPTX::Logic::OptionalBlackTransition>())
{
const CString name = pTransition.base.as<PPTX::Logic::OptionalBlackTransition>().name;
if (name == _T("fade"))
{
oTransition.m_nEffectType = 6;
oTransition.m_nEffectDirection = 0;
}
else if (name == _T("cut"))
{
oTransition.m_nEffectType = 0;
oTransition.m_nEffectDirection = pTransition.base.as<PPTX::Logic::OptionalBlackTransition>().thruBlk.get_value_or(false)?1:0;
}
}
else if(pTransition.base.is<PPTX::Logic::WheelTransition>())
{
oTransition.m_nEffectType = 26;
oTransition.m_nEffectDirection = pTransition.base.as<PPTX::Logic::WheelTransition>().spokes.get_value_or(4);
}
else if(pTransition.base.is<PPTX::Logic::SplitTransition>())
{
PPTX::Logic::SplitTransition trans = pTransition.base.as<PPTX::Logic::SplitTransition>();
const CString orient = trans.orient.get_value_or(_T("horz"));
const CString dir = trans.dir.get_value_or(_T("out"));
oTransition.m_nEffectType = 13;
if (orient == _T("horz"))
oTransition.m_nEffectDirection = 0;
else if (orient == _T("vert"))
oTransition.m_nEffectDirection = 2;
if (dir == _T("in"))
oTransition.m_nEffectDirection++;
}
else if(pTransition.base.is<PPTX::Logic::ZoomTransition>())
{
oTransition.m_nEffectType = 11;
oTransition.m_nEffectDirection = (pTransition.base.as<PPTX::Logic::ZoomTransition>().dir.get_value_or(_T("out")) == _T("in"))?1:0;
}
oTransition.m_dSpeed = GetTransitionSpeedFromStr(pTransition.spd.get_value_or(_T("fast")));
if (pTransition.dur.is_init()) //
oTransition.m_dSpeed = pTransition.dur.get();
if (pTransition.advTm.is_init())
ChangeTime = (double)pTransition.advTm.get();
#ifdef _DEBUG
ATLTRACE (_T("transition after : %f, dur : %f\n"), ChangeTime, oTransition.m_dSpeed);
#endif
pDocument.m_arSlides[SldNum].m_oSlideShow.m_oTransition = oTransition;
if (pTransition.sndAc.is_init())
{
if (pTransition.sndAc->stSnd.is_init())
{
CAudioElement* pAudio = new CAudioElement ();
if (pAudio)
{
pAudio->m_strFileName = PathHelpers::ResourceFileSystemPathXml (oSlide->GetLinkFromRId(pTransition.sndAc->stSnd->embed.get()));
CString fileName = PathHelpers::ResourceFileSystemPath (oSlide->GetLinkFromRId(pTransition.sndAc->stSnd->embed.get()));
BSTR bstrFile = fileName.AllocSysString();
VideoFile::IVideoFile3* pVideoFile = NULL;
if (SUCCEEDED(CoCreateInstance(__uuidof(VideoFile::CVideoFile3), NULL, CLSCTX_ALL, __uuidof(VideoFile::IVideoFile3), (void**)(&pVideoFile))))
{
double dDuration = 0;
if (pVideoFile)
{
if (FAILED(pVideoFile->OpenFile(bstrFile)))
{
RELEASEINTERFACE (pVideoFile);
RELEASEOBJECT (pAudio);
return pTransition.advTm.get_value_or(0);
}
pVideoFile->get_audioDuration (&dDuration);
pVideoFile->CloseFile();
SysFreeString(bstrFile);
RELEASEINTERFACE(pVideoFile);
pAudio->m_dStartTime = 0;
pAudio->m_dEndTime = dDuration;
pAudio->m_dClipStartTime = 0.0;
pAudio->m_dClipEndTime = dDuration;
if (pTransition.sndAc->stSnd->loop.is_init())
{
if (pTransition.sndAc->stSnd->loop.get_value_or(false))
pAudio->m_bLoop = TRUE;
}
CAnimationSimple oPlayAudio;
oPlayAudio.m_nEffectType = 6;
oPlayAudio.m_nMediaCMD = 1;
oPlayAudio.m_nBeginTime = -0.0001; //
oPlayAudio.m_nBeginTime = -oTransition.m_dSpeed;
oPlayAudio.m_nDuration = dDuration;
pAudio->m_oAnimations.m_arAnimations.Add (oPlayAudio);
pDocument.m_arSlides[SldNum].m_arElements.Add(pAudio);
}
}
}
}
}
return pTransition.advTm.get_value_or(0);
}
}
\ No newline at end of file
#include "stdafx.h"
#include "./Converter.h"
#include "../../Common/DocxFormat/Source/DocxFormat/FileTypes.h"
namespace PPTX2EditorSimple
{
Converter::Converter()
{
}
Converter::~Converter()
{
}
DWORD Converter::Convert(PPTX::Folder& oFolder, NSPresentationEditor::CDocument& lDocument)
{
//m_Folder = pFolder;
double dDuration = 0.0;
smart_ptr<PPTX::Presentation> presentation = oFolder.get(OOX::FileTypes::Presentation).smart_dynamic_cast<PPTX::Presentation>();
int cx = presentation->sldSz->cx;
int cy = presentation->sldSz->cy;
DWORD sld = 0;
size_t nCount = presentation->sldIdLst.GetCount();
for (size_t i = 0; i < nCount; ++i)
{
smart_ptr<PPTX::Slide> slide = ((*presentation)[presentation->sldIdLst[i].rid.get()]).smart_dynamic_cast<PPTX::Slide>();
SlideConvert(slide, sld, &dDuration, cx, cy, lDocument);
}
return 0;
}
DWORD Converter::ConvertToVS(PPTX::Folder& oFolder, CString& xml)
{
NSPresentationEditor::CDocument oDocument;
Convert(oFolder, oDocument);
oDocument.Calculate();
xml = oDocument.ToXmlVideoSource();
return (DWORD)xml.GetLength();
}
DWORD Converter::ConvertToEditor(PPTX::Folder& oFolder, CString& xml)
{
NSPresentationEditor::CDocument oDocument;
Convert(oFolder, oDocument);
oDocument.Calculate();
xml = oDocument.ToXmlEditor();
return (DWORD)xml.GetLength();
}
} // namespace PPTX2DrawingXML
\ No newline at end of file
#pragma once
#ifndef PPTX2DRAWINGXML_CONVERTER_INCLUDE_H_
#define PPTX2DRAWINGXML_CONVERTER_INCLUDE_H_
#include "../stdafx.h"
#include "../PPTXFormat/PPTX.h"
#include "../../AVSPresentationEditor/OfficeDrawing/Document.h"
#include "Source/Structures.h"
namespace PPTX2EditorSimple
{
const double c_dScaleElements = 1.0 / 36000;
class Converter
{
public:
Converter();
~Converter();
public:
static DWORD Convert(PPTX::Folder& pFolder, NSPresentationEditor::CDocument& oDocument);
static DWORD ConvertToVS(PPTX::Folder& pFolder, CString& strXml);
static DWORD ConvertToEditor(PPTX::Folder& pFolder, CString& strXml);
private:
static OOXMLShapes::ShapeType GetShapeTypeFromStr(const CString& str);
static WORD GetTextAlignFromStr(const CString& str);
static WORD GetTextAnchorFromStr(const CString& str);
static WORD GetFontAlignFromStr(const CString& str);
static WORD GetPattFillValFromStr(const CString& str);
static DWORD GetTransitionSpeedFromStr(const CString& str);
static DWORD GetTLRestartFromStr(const CString& str);
static DWORD GetTLPresetClassFromStr(const CString& str);
static DWORD GetTLNodeTypeFromStr(const CString& str);
static DWORD GetTLCalcModeFromStr(const CString& str);
static DWORD GetTLValueTypeFromStr(const CString& str);
static BYTE GetLineEndType(const CString& str);
static BYTE GetLineJoinType(const PPTX::Logic::eJoin join);
static BYTE GetDashStyle(const CString& str);
static BYTE GetTextStrike(const CString& str);
static void LnToPen(const PPTX::Logic::Ln& Line, DWORD BGRA, NSPresentationEditor::CPen& Pen);
static void FillToBrush(const PPTX::Logic::UniFill& Fill, DWORD BGRA, NSPresentationEditor::CBrush& Brush);
static void SlideConvert(const smart_ptr<PPTX::Slide> Slide, const DWORD SldNum, double* Duration, const int cx, const int cy, NSPresentationEditor::CDocument& oDocument);
static void AddParentPics(const PPTX::Logic::SpTree& Group, NSPresentationEditor::CSlide& oEContainer);
static void GroupConvert(const PPTX::Logic::SpTree& Group, NSPresentationEditor::CSlide& oEContainer);
static void ShapeConvert(const PPTX::Logic::Shape& pShape, NSPresentationEditor::CSlide& oEContainer);
static void TextParse(const PPTX::Logic::TxBody& pShapeText, NSPresentationEditor::CTextAttributesEx& pText, const PPTX::Logic::ShapeProperties& TextProps, double FontScale, double LnSpcReduction);
static void PicConvert(const PPTX::Logic::Pic& pPic, NSPresentationEditor::CSlide& pEContainer);
static void OleConvert(const PPTX::Logic::GraphicFrame& pOle, NSPresentationEditor::CSlide& pEContainer);
static void VideoElementConvert(const PPTX::Logic::Pic& pPic, NSPresentationEditor::CSlide& pEContainer);
static void AudioElementConvert(const PPTX::Logic::Pic& pPic, NSPresentationEditor::CSlide& pEContainer);
static void ConnectorConvert(const PPTX::Logic::CxnSp& pCxn, NSPresentationEditor::CSlide& pEContainer);
static void TableConvert(const PPTX::Logic::GraphicFrame& pOle, NSPresentationEditor::CSlide& pEContainer);
static int TableCellConvert(const PPTX::Logic::TableCell& pTableCell, NSPresentationEditor::CSlide& pEContainer, NSPresentationEditor::CShapeElement& lpShapeElement, const PPTX::Logic::TableStyle& Style, const TableCellData& CellData);
static int TableCellHeight(const PPTX::Logic::TableCell& pTableCell, const TableCellData& CellData, const PPTX::Logic::ShapeProperties& TextProps);
static int TableCellTextHeight(const PPTX::Logic::TableCell& pTableCell, const int WidthInEmu, const PPTX::Logic::ShapeProperties& TextProps);
static int TransitionConvert(const DWORD SLdNum, const smart_ptr<PPTX::Slide> Slide, NSPresentationEditor::CDocument& pDocument);
static void TimingConvert(const DWORD SLdNum, const PPTX::Logic::Timing& pTiming, NSPresentationEditor::CDocument& pDocument);
static void TimeNodeListConvert(const PPTX::Logic::TnLst& tnLst, NSPresentationEditor::CAnimationInfo& tnContainer);
static void TimeNodeBaseConvert(const PPTX::Logic::TimeNodeBase& timeNode, NSPresentationEditor::CAnimationInfo& tnContainer);
static void CTN2TimeNodeAtom(const PPTX::Logic::CTn& cTn, NSPresentationEditor::CAnimationInfo& container);
static void AddCondLst(const PPTX::Logic::CondLst& condLst, NSPresentationEditor::CAnimationInfo& container);
static void CBhvr2TimeBehaviorContainer(const PPTX::Logic::CBhvr& bhvr, NSPresentationEditor::CAnimationInfo& container);
static int ParseTLTime(const CString& str);
//PPTX::Folder m_Folder;
};
} // namespace PPTX2DrawingXML
#endif //PPTX2DRAWINGXML_CONVERTER_INCLUDE_H_
\ No newline at end of file
#pragma once
#include "./Converter.h"
#include "./Converter.cpp"
#include "./Source/FillToBrush.cpp"
#include "./Source/FontAlign.cpp"
#include "./Source/LnToPen.cpp"
#include "./Source/PattFillVal.cpp"
#include "./Source/ShapeConvert.cpp"
#include "./Source/SlideConvert.cpp"
#include "./Source/ShapeType.cpp"
#include "./Source/Structures.h"
#include "./Source/TableConvert.cpp"
#include "./Source/TextAlign.cpp"
#include "./Source/TextAnchor.cpp"
#include "./Source/TextParse.cpp"
#include "./Source/TimingConvert.cpp"
#include "./Source/TransitionConvert.cpp"
#include "./Source/TLCalcMode.cpp"
#include "./Source/TLNodeType.cpp"
#include "./Source/TLPresetClass.cpp"
#include "./Source/TLRestart.cpp"
#include "./Source/TLValueType.cpp"
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
// stdafx.cpp : source file that includes just the standard includes
// PPTX2DrawingXML.pch will be the pre-compiled header
// stdafx.obj will contain the pre-compiled type information
#include "stdafx.h"
// TODO: reference any additional headers you need in STDAFX.H
// and not in this file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment